forked from Minki/linux
Merge branch 'broadcom-MDIO-turn-around'
Florian Fainelli says: ==================== net: broadcom MDIO support for broken turn-around These two patches update the GENET and UniMAC MDIO controllers to deal with PHYs that are known to have a broken turn-around bug (e.g: BCM53125 and others) This utilizes the infrastructure that code recently added to do that in 'net-next'. Note that the changes look nearly identical and I will try to address the MDIO code duplication between GENET and UniMAC in a future patch series. Changes in v2: - remove brcmphy.h include in mdio-bcm-unimac.c - use the same comment as with GENET's MDIO read function ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
de84725403
@ -47,7 +47,12 @@ static int bcmgenet_mii_read(struct mii_bus *bus, int phy_id, int location)
|
||||
HZ / 100);
|
||||
ret = bcmgenet_umac_readl(priv, UMAC_MDIO_CMD);
|
||||
|
||||
if (ret & MDIO_READ_FAIL)
|
||||
/* Some broken devices are known not to release the line during
|
||||
* turn-around, e.g: Broadcom BCM53125 external switches, so check for
|
||||
* that condition here and ignore the MDIO controller read failure
|
||||
* indication.
|
||||
*/
|
||||
if (!(bus->phy_ignore_ta_mask & 1 << phy_id) && (ret & MDIO_READ_FAIL))
|
||||
return -EIO;
|
||||
|
||||
return ret & 0xffff;
|
||||
|
@ -81,7 +81,13 @@ static int unimac_mdio_read(struct mii_bus *bus, int phy_id, int reg)
|
||||
return -ETIMEDOUT;
|
||||
|
||||
cmd = __raw_readl(priv->base + MDIO_CMD);
|
||||
if (cmd & MDIO_READ_FAIL)
|
||||
|
||||
/* Some broken devices are known not to release the line during
|
||||
* turn-around, e.g: Broadcom BCM53125 external switches, so check for
|
||||
* that condition here and ignore the MDIO controller read failure
|
||||
* indication.
|
||||
*/
|
||||
if (!(bus->phy_ignore_ta_mask & 1 << phy_id) && (cmd & MDIO_READ_FAIL))
|
||||
return -EIO;
|
||||
|
||||
return cmd & 0xffff;
|
||||
|
Loading…
Reference in New Issue
Block a user