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

reset function inside reset_resume solves above bug. We have verified
this issue 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.5
--
To unsubscribe from this list: send the line "unsubscribe netdev" in

Reply via email to