X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=kernel%2Fdrivers%2Fnet%2Fphy%2Fmdio-bitbang.c;fp=kernel%2Fdrivers%2Fnet%2Fphy%2Fmdio-bitbang.c;h=61a543c788cc1b67fafe3eceab17b2b4d20af413;hb=e09b41010ba33a20a87472ee821fa407a5b8da36;hp=daec9b05d168ca4f0f103f3638fcc3259e9ea304;hpb=f93b97fd65072de626c074dbe099a1fff05ce060;p=kvmfornfv.git diff --git a/kernel/drivers/net/phy/mdio-bitbang.c b/kernel/drivers/net/phy/mdio-bitbang.c index daec9b05d..61a543c78 100644 --- a/kernel/drivers/net/phy/mdio-bitbang.c +++ b/kernel/drivers/net/phy/mdio-bitbang.c @@ -165,8 +165,11 @@ static int mdiobb_read(struct mii_bus *bus, int phy, int reg) ctrl->ops->set_mdio_dir(ctrl, 0); - /* check the turnaround bit: the PHY should be driving it to zero */ - if (mdiobb_get_bit(ctrl) != 0) { + /* check the turnaround bit: the PHY should be driving it to zero, if this + * PHY is listed in phy_ignore_ta_mask as having broken TA, skip that + */ + if (mdiobb_get_bit(ctrl) != 0 && + !(bus->phy_ignore_ta_mask & (1 << phy))) { /* PHY didn't drive TA low -- flush any bits it * may be trying to send. */