Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36235239 authored by Doug Berger's avatar Doug Berger Committed by Greg Kroah-Hartman
Browse files

net: bcmgenet: abort suspend on error



[ Upstream commit c5a54bbcececa36852807c36157a86d808b62310 ]

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: 0db55093b566 ("net: bcmgenet: return correct value 'ret' from bcmgenet_power_down")
Signed-off-by: default avatarDoug Berger <opendmb@gmail.com>
Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent fb12b3e6
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -3722,6 +3722,9 @@ static int bcmgenet_suspend(struct device *d)
	/* Turn off the clocks */
	clk_disable_unprepare(priv->clk);

	if (ret)
		bcmgenet_resume(d);

	return ret;
}
#endif /* CONFIG_PM_SLEEP */
+6 −0
Original line number Diff line number Diff line
@@ -186,9 +186,15 @@ void bcmgenet_wol_power_up_cfg(struct bcmgenet_priv *priv,
	}

	reg = bcmgenet_umac_readl(priv, UMAC_MPD_CTRL);
	if (!(reg & MPD_EN))
		return;	/* already powered up so skip the rest */
	reg &= ~MPD_EN;
	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 */
	reg = bcmgenet_umac_readl(priv, UMAC_CMD);
	reg &= ~CMD_CRC_FWD;