diff options
Diffstat (limited to 'drivers/net/phy/mdio-bitbang.c')
| -rw-r--r-- | drivers/net/phy/mdio-bitbang.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/phy/mdio-bitbang.c b/drivers/net/phy/mdio-bitbang.c index daec9b05d168..61a543c788cc 100644 --- a/drivers/net/phy/mdio-bitbang.c +++ b/drivers/net/phy/mdio-bitbang.c | |||
| @@ -165,8 +165,11 @@ static int mdiobb_read(struct mii_bus *bus, int phy, int reg) | |||
| 165 | 165 | ||
| 166 | ctrl->ops->set_mdio_dir(ctrl, 0); | 166 | ctrl->ops->set_mdio_dir(ctrl, 0); |
| 167 | 167 | ||
| 168 | /* check the turnaround bit: the PHY should be driving it to zero */ | 168 | /* check the turnaround bit: the PHY should be driving it to zero, if this |
| 169 | if (mdiobb_get_bit(ctrl) != 0) { | 169 | * PHY is listed in phy_ignore_ta_mask as having broken TA, skip that |
| 170 | */ | ||
| 171 | if (mdiobb_get_bit(ctrl) != 0 && | ||
| 172 | !(bus->phy_ignore_ta_mask & (1 << phy))) { | ||
| 170 | /* PHY didn't drive TA low -- flush any bits it | 173 | /* PHY didn't drive TA low -- flush any bits it |
| 171 | * may be trying to send. | 174 | * may be trying to send. |
| 172 | */ | 175 | */ |
