phy: Replace genphy_update_link() call with phy_read_status()
Subsystems (3)
PATCH 1/1 phy: Replace genphy_update_link() call with phy_read_status()
From: Alexander Sverdlin <[email protected]>
Replace genphy_update_link() call with phy_read_status()
Code in phy.c should not call genphy_*() functions directly, this breaks PHY layer abstraction. Some drivers may re-implement "read_status" callback and it's not being called in one place of PHY state machine, where genphy_update_link() is called instead. So fix it.
For drivers that rely on genphy_* implementation nothing changed, as genphy_read_status() calls genphy_update_link() anyway.
--- drivers/net/phy/phy.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/net/phy/phy.c +1 -1
@@ -839,7 +839,7 @@ void phy_state_machine(struct work_struct *work) }break ;case PHY_FORCING : - err =genphy_update_link (phydev); + err =phy_read_status (phydev);if (err)break ;
David Miller
maintainerFrom: Alexander Sverdlin <[email protected]>
Date: Thu, 13 Sep 2012 09:20:43 +0200
Quoted 11 lines
From: Alexander Sverdlin <[email protected]>
Replace
genphy_update_link()call withphy_read_status()Code in
phy.cshould not call genphy_*() functions directly, this breaks PHY layer abstraction. Some drivers may re-implement "read_status" callback and it's not being called in one place of PHY state machine, wheregenphy_update_link()is called instead. So fix it.
For drivers that rely on genphy_* implementation nothing changed, asgenphy_read_status()callsgenphy_update_link()anyway.Signed-off-by Alexander Sverdlin <[email protected]>
This is a behavioral change, not just a change to make sure the right interfaces are used.
genphy_update_link() does only a small subset of the operations performed by the generic read_status callback.
I'm not applying this patch, because all of those extra operations might be unexpected in some situations and break some configurations.