Without reset functionality in reset_resume, iperf connection
does not establish after suspend/resume however ping works at
the same time. iperf connection fails by giving checksum error
in tcpdump.

reset function inside reset_resume solves above bug.
We have verified it on ASIX based ST Lab, Cadyce dongle.

Signed-off-by: Vivek Kumar Bhagat <vivek.bha...@samsung.com>
Signed-off-by: Praveen Kumar <praveen....@samsung.com>

---
 drivers/net/usb/ax88179_178a.c |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c
index e6338c1..00928c0 100644
--- a/drivers/net/usb/ax88179_178a.c
+++ b/drivers/net/usb/ax88179_178a.c
@@ -1630,6 +1630,18 @@ static int ax88179_stop(struct usbnet *dev)
        return 0;
 }
 
+static int ax88179_reset_resume(struct usb_interface *intf)
+{
+       struct usbnet *dev = usb_get_intfdata(intf);
+       int ret;
+
+       ret = ax88179_reset(dev);
+       if (ret < 0)
+               return ret;
+
+       return  ax88179_resume(intf);
+}
+
 static const struct driver_info ax88179_info = {
        .description = "ASIX AX88179 USB 3.0 Gigabit Ethernet",
        .bind = ax88179_bind,
@@ -1744,7 +1756,7 @@ static struct usb_driver ax88179_178a_driver = {
        .probe =        usbnet_probe,
        .suspend =      ax88179_suspend,
        .resume =       ax88179_resume,
-       .reset_resume = ax88179_resume,
+       .reset_resume = ax88179_reset_resume,
        .disconnect =   usbnet_disconnect,
        .supports_autosuspend = 1,
        .disable_hub_initiated_lpm = 1,
-- 
1.7.9.5N�����r��y����b�X��ǧv�^�)޺{.n�+���z�^�)����w*jg��������ݢj/���z�ޖ��2�ޙ����&�)ߡ�a�����G���h��j:+v���w��٥

Reply via email to