[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <df29df7d0799cd22c6e30ced02e7c760@yo2urs.ro>
Date: Mon, 20 Dec 2021 23:28:52 +0200
From: Gabriel Hojda <ghojda@...urs.ro>
To: Andrew Lunn <andrew@...n.ch>
Cc: Martyn Welch <martyn.welch@...labora.com>,
netdev <netdev@...r.kernel.org>
Subject: Re: Issues with smsc95xx driver since a049a30fc27c
On 2021-12-20 10:53, Andrew Lunn wrote:
>>> next, when i have time and if there's still no progress, i think i
>>> should
>> try to insert:
>>
>> ret = smsc95xx_reset(dev);
>> if (ret)
>> goto free_pdata;
>>
>> before
>>
>> ret = phy_connect_direct(dev->net, pdata->phydev,
>> &smsc95xx_handle_link_change,
>> PHY_INTERFACE_MODE_MII);
>>
>> in smsc95xx_bind() to try to emulate the old behavior for the first
>> call to
>> start_phy().
>
> Yes, that will be in interesting experiment. Something in
> smsc95xx_reset() is required.
>
> Andrew
since the above experiment did not work, i studied usbnet_open() in
usbnet.c which really tries to reset() and then check_connect() ...
after that i tried following patch which restored network functionality:
-----------------------------------------------------------------------------
--- a/drivers/net/usb/smsc95xx.c 2021-12-17 11:30:17.000000000
+0200
+++ b/drivers/net/usb/smsc95xx.c 2021-12-20 22:47:30.401385947
+0200
@@ -1961,7 +1961,8 @@
.bind = smsc95xx_bind,
.unbind = smsc95xx_unbind,
.link_reset = smsc95xx_link_reset,
- .reset = smsc95xx_start_phy,
+ .reset = smsc95xx_reset,
+ .check_connect = smsc95xx_start_phy,
.stop = smsc95xx_stop,
.rx_fixup = smsc95xx_rx_fixup,
.tx_fixup = smsc95xx_tx_fixup,
-----------------------------------------------------------------------------
i guess a call to smsc95xx_reset() is needed before phy_start() ...
Gabriel
Powered by blists - more mailing lists