mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 02:46:46 +07:00
net: bcmgenet: abort suspend on error
If an error occurs during suspension of the driver the driver should
restore the hardware configuration and return an error to force the
system to resume.
Fixes: 0db55093b5
("net: bcmgenet: return correct value 'ret' from bcmgenet_power_down")
Signed-off-by: Doug Berger <opendmb@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a94cbf03eb
commit
c5a54bbcec
@ -3717,6 +3717,9 @@ static int bcmgenet_suspend(struct device *d)
|
|||||||
/* Turn off the clocks */
|
/* Turn off the clocks */
|
||||||
clk_disable_unprepare(priv->clk);
|
clk_disable_unprepare(priv->clk);
|
||||||
|
|
||||||
|
if (ret)
|
||||||
|
bcmgenet_resume(d);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_PM_SLEEP */
|
#endif /* CONFIG_PM_SLEEP */
|
||||||
|
@ -186,9 +186,15 @@ void bcmgenet_wol_power_up_cfg(struct bcmgenet_priv *priv,
|
|||||||
}
|
}
|
||||||
|
|
||||||
reg = bcmgenet_umac_readl(priv, UMAC_MPD_CTRL);
|
reg = bcmgenet_umac_readl(priv, UMAC_MPD_CTRL);
|
||||||
|
if (!(reg & MPD_EN))
|
||||||
|
return; /* already powered up so skip the rest */
|
||||||
reg &= ~MPD_EN;
|
reg &= ~MPD_EN;
|
||||||
bcmgenet_umac_writel(priv, reg, UMAC_MPD_CTRL);
|
bcmgenet_umac_writel(priv, reg, UMAC_MPD_CTRL);
|
||||||
|
|
||||||
|
reg = bcmgenet_hfb_reg_readl(priv, HFB_CTRL);
|
||||||
|
reg &= ~(RBUF_HFB_EN | RBUF_ACPI_EN);
|
||||||
|
bcmgenet_hfb_reg_writel(priv, reg, HFB_CTRL);
|
||||||
|
|
||||||
/* Disable CRC Forward */
|
/* Disable CRC Forward */
|
||||||
reg = bcmgenet_umac_readl(priv, UMAC_CMD);
|
reg = bcmgenet_umac_readl(priv, UMAC_CMD);
|
||||||
reg &= ~CMD_CRC_FWD;
|
reg &= ~CMD_CRC_FWD;
|
||||||
|
Loading…
Reference in New Issue
Block a user