net: bcmgenet: workaround initial read failures for integrated PHYs
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 26 Jun 2015 17:39:05 +0000 (10:39 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 29 Jun 2015 03:28:20 +0000 (20:28 -0700)
commit7b635da86821005cd131369b7a4268df8067cc6c
tree80e2c8d5e756a9d632cd4b1ca0cb6d9927376dad
parent8e346e1594bab6c06b6b4d2938c881729b03041d
net: bcmgenet: workaround initial read failures for integrated PHYs

All BCM7xxx integrated Gigabit PHYs have an issue in their MDIO
management controller which will make the initial read or write to them
to fail and return 0xffff. This is a real issue as the typical first
thing we do is read from MII_PHYSID1 and MII_PHYSID2 from get_phy_id()
to register a driver for these PHYs.

Coupled with the workaround in drivers/net/phy/bcm7xxx.c, this
workaround for the MDIO bus controller consists in scanning the list of
PHYs to do this initial read workaround for as part of the MDIO bus
reset routine which is invoked prior to mdiobus_scan().

Once we have a proper PHY driver/device registered, all workarounds are
located there (e.g: power management suspend/resume calls).

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/genet/bcmgenet.h
drivers/net/ethernet/broadcom/genet/bcmmii.c