Re: [PATCH net-next] net: phy: broadcom: Implement suspend/resume for AC131 and BCM5241

From: Florian Fainelli
Date: Mon Aug 15 2022 - 14:09:20 EST


On 8/15/22 11:00, Russell King (Oracle) wrote:
On Mon, Aug 15, 2022 at 10:43:56AM -0700, Florian Fainelli wrote:
+ /* We cannot use a read/modify/write here otherwise the PHY continues
+ * to drive LEDs which defeats the purpose of low power mode.
+ */
...
+ /* Set standby mode */
+ reg = phy_read(phydev, MII_BRCM_FET_SHDW_AUXMODE4);
+ if (reg < 0) {
+ err = reg;
+ goto done;
+ }
+
+ reg |= MII_BRCM_FET_SHDW_AM4_STANDBY;
+
+ err = phy_write(phydev, MII_BRCM_FET_SHDW_AUXMODE4, reg);

Does the read-modify-write problem extend to this register? Why would
the PHY behave differently whether you used phy_modify() here or not?
On the mdio bus, it should be exactly the same - the only difference
is that we're guaranteed to hold the lock over the sequence whereas
this drops and re-acquires the lock.

What read-modify-write problem are you referring to, that is, are you talking about my statement about setting BMCR.PDOWN only or something else?

I could use phy_modify(), sure.
--
Florian