net: phy: at803x: disable vddio regulator
The probe() might enable a VDDIO regulator, which needs to be disabled
again before calling regulator_put(). Add a remove() function.
Fixes: 2f664823a4 ("net: phy: at803x: add device tree binding")
Signed-off-by: Michael Walle <michael@walle.cc>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
2e1bf3a765
commit
2318ca8aef
@@ -489,6 +489,14 @@ static int at803x_probe(struct phy_device *phydev)
|
|||||||
return at803x_parse_dt(phydev);
|
return at803x_parse_dt(phydev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void at803x_remove(struct phy_device *phydev)
|
||||||
|
{
|
||||||
|
struct at803x_priv *priv = phydev->priv;
|
||||||
|
|
||||||
|
if (priv->vddio)
|
||||||
|
regulator_disable(priv->vddio);
|
||||||
|
}
|
||||||
|
|
||||||
static int at803x_clk_out_config(struct phy_device *phydev)
|
static int at803x_clk_out_config(struct phy_device *phydev)
|
||||||
{
|
{
|
||||||
struct at803x_priv *priv = phydev->priv;
|
struct at803x_priv *priv = phydev->priv;
|
||||||
@@ -711,6 +719,7 @@ static struct phy_driver at803x_driver[] = {
|
|||||||
.name = "Qualcomm Atheros AR8035",
|
.name = "Qualcomm Atheros AR8035",
|
||||||
.phy_id_mask = AT803X_PHY_ID_MASK,
|
.phy_id_mask = AT803X_PHY_ID_MASK,
|
||||||
.probe = at803x_probe,
|
.probe = at803x_probe,
|
||||||
|
.remove = at803x_remove,
|
||||||
.config_init = at803x_config_init,
|
.config_init = at803x_config_init,
|
||||||
.set_wol = at803x_set_wol,
|
.set_wol = at803x_set_wol,
|
||||||
.get_wol = at803x_get_wol,
|
.get_wol = at803x_get_wol,
|
||||||
@@ -726,6 +735,7 @@ static struct phy_driver at803x_driver[] = {
|
|||||||
.name = "Qualcomm Atheros AR8030",
|
.name = "Qualcomm Atheros AR8030",
|
||||||
.phy_id_mask = AT803X_PHY_ID_MASK,
|
.phy_id_mask = AT803X_PHY_ID_MASK,
|
||||||
.probe = at803x_probe,
|
.probe = at803x_probe,
|
||||||
|
.remove = at803x_remove,
|
||||||
.config_init = at803x_config_init,
|
.config_init = at803x_config_init,
|
||||||
.link_change_notify = at803x_link_change_notify,
|
.link_change_notify = at803x_link_change_notify,
|
||||||
.set_wol = at803x_set_wol,
|
.set_wol = at803x_set_wol,
|
||||||
@@ -741,6 +751,7 @@ static struct phy_driver at803x_driver[] = {
|
|||||||
.name = "Qualcomm Atheros AR8031/AR8033",
|
.name = "Qualcomm Atheros AR8031/AR8033",
|
||||||
.phy_id_mask = AT803X_PHY_ID_MASK,
|
.phy_id_mask = AT803X_PHY_ID_MASK,
|
||||||
.probe = at803x_probe,
|
.probe = at803x_probe,
|
||||||
|
.remove = at803x_remove,
|
||||||
.config_init = at803x_config_init,
|
.config_init = at803x_config_init,
|
||||||
.set_wol = at803x_set_wol,
|
.set_wol = at803x_set_wol,
|
||||||
.get_wol = at803x_get_wol,
|
.get_wol = at803x_get_wol,
|
||||||
|
|||||||
Reference in New Issue
Block a user