lkml.org 
[lkml]   [2011]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/5] net-next:asix: poll in asix_get_phyid in case phy not ready
    Date
    Sometimes the phy isn't ready after reset...poll and pray it will be soon.

    Signed-off-by: Freddy Xin <freddy@asix.com.tw>
    Signed-off-by: Grant Grundler <grundler@chromium.org>
    ---
    drivers/net/usb/asix.c | 12 ++++++++++--
    1 files changed, 10 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
    index 873860d..b4675e8 100644
    --- a/drivers/net/usb/asix.c
    +++ b/drivers/net/usb/asix.c
    @@ -652,9 +652,17 @@ static u32 asix_get_phyid(struct usbnet *dev)
    {
    int phy_reg;
    u32 phy_id;
    + int i;

    - phy_reg = asix_mdio_read(dev->net, dev->mii.phy_id, MII_PHYSID1);
    - if (phy_reg < 0)
    + /* Poll for the rare case the FW or phy isn't ready yet. */
    + for (i = 0; i < 100; i++) {
    + phy_reg = asix_mdio_read(dev->net, dev->mii.phy_id, MII_PHYSID1);
    + if (phy_reg != 0 && phy_reg != 0xFFFF)
    + break;
    + mdelay(1);
    + }
    +
    + if (phy_reg <= 0 || phy_reg == 0xFFFF)
    return 0;

    phy_id = (phy_reg & 0xffff) << 16;
    --
    1.7.3.1


    \
     
     \ /
      Last update: 2011-11-15 00:25    [W:0.020 / U:62.940 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site