Skip to content

Commit

Permalink
net: stmmac: using pm_runtime_resume_and_get instead of pm_runtime_ge…
Browse files Browse the repository at this point in the history
…t_sync

Using pm_runtime_resume_and_get is more appropriate
for simplifing code

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn>
Link: https://lore.kernel.org/r/20220408081250.2494588-1-chi.minghao@zte.com.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Minghao Chi authored and Jakub Kicinski committed Apr 12, 2022
1 parent 1cb9d3b commit e2d0acd
Showing 1 changed file with 8 additions and 16 deletions.
24 changes: 8 additions & 16 deletions drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,11 +88,9 @@ static int stmmac_xgmac2_mdio_read(struct mii_bus *bus, int phyaddr, int phyreg)
u32 tmp, addr, value = MII_XGMAC_BUSY;
int ret;

ret = pm_runtime_get_sync(priv->device);
if (ret < 0) {
pm_runtime_put_noidle(priv->device);
ret = pm_runtime_resume_and_get(priv->device);
if (ret < 0)
return ret;
}

/* Wait until any existing MII operation is complete */
if (readl_poll_timeout(priv->ioaddr + mii_data, tmp,
Expand Down Expand Up @@ -156,11 +154,9 @@ static int stmmac_xgmac2_mdio_write(struct mii_bus *bus, int phyaddr,
u32 addr, tmp, value = MII_XGMAC_BUSY;
int ret;

ret = pm_runtime_get_sync(priv->device);
if (ret < 0) {
pm_runtime_put_noidle(priv->device);
ret = pm_runtime_resume_and_get(priv->device);
if (ret < 0)
return ret;
}

/* Wait until any existing MII operation is complete */
if (readl_poll_timeout(priv->ioaddr + mii_data, tmp,
Expand Down Expand Up @@ -229,11 +225,9 @@ static int stmmac_mdio_read(struct mii_bus *bus, int phyaddr, int phyreg)
int data = 0;
u32 v;

data = pm_runtime_get_sync(priv->device);
if (data < 0) {
pm_runtime_put_noidle(priv->device);
data = pm_runtime_resume_and_get(priv->device);
if (data < 0)
return data;
}

value |= (phyaddr << priv->hw->mii.addr_shift)
& priv->hw->mii.addr_mask;
Expand Down Expand Up @@ -297,11 +291,9 @@ static int stmmac_mdio_write(struct mii_bus *bus, int phyaddr, int phyreg,
u32 value = MII_BUSY;
u32 v;

ret = pm_runtime_get_sync(priv->device);
if (ret < 0) {
pm_runtime_put_noidle(priv->device);
ret = pm_runtime_resume_and_get(priv->device);
if (ret < 0)
return ret;
}

value |= (phyaddr << priv->hw->mii.addr_shift)
& priv->hw->mii.addr_mask;
Expand Down

0 comments on commit e2d0acd

Please sign in to comment.