Re: [PATCH net-next v3 1/2] net: phy: marvell10g: implement suspend/resume callbacks
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: 2019-03-26 18:43:38
Also in:
lkml
On 26.03.2019 15:53, Antoine Tenart wrote:
This patch adds the suspend/resume callbacks for Marvell 10G PHYs. The three PCS (base-t, base-r and 1000base-x) are set in low power (the PCS are powered down) when the PHY isn't used.
At least for the 3310 the datasheet mentions that via VEND2.f001.11 the port can be powered down completely. As this would simplify the code, did you test this?
quoted hunk ↗ jump to hunk
Signed-off-by: Antoine Tenart <redacted> Reviewed-by: Andrew Lunn <andrew@lunn.ch> --- drivers/net/phy/marvell10g.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)diff --git a/drivers/net/phy/marvell10g.c b/drivers/net/phy/marvell10g.c index 100b401b1f4a..b56cd35182d5 100644 --- a/drivers/net/phy/marvell10g.c +++ b/drivers/net/phy/marvell10g.c@@ -226,11 +226,25 @@ static int mv3310_probe(struct phy_device *phydev) static int mv3310_suspend(struct phy_device *phydev) { + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_T + MDIO_CTRL1, + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER); + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_R + MDIO_CTRL1, + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER); + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_1000BASEX + MDIO_CTRL1, + MDIO_CTRL1_LPOWER, MDIO_CTRL1_LPOWER); + return 0; } static int mv3310_resume(struct phy_device *phydev) { + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_T + MDIO_CTRL1, + MDIO_CTRL1_LPOWER, 0); + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_BASE_R + MDIO_CTRL1, + MDIO_CTRL1_LPOWER, 0); + phy_modify_mmd(phydev, MDIO_MMD_PCS, MV_PCS_1000BASEX + MDIO_CTRL1, + MDIO_CTRL1_LPOWER, 0); + return mv3310_hwmon_config(phydev, true); }