|
@@ -1714,6 +1714,18 @@ static int smsc95xx_resume(struct usb_interface *intf)
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static int smsc95xx_reset_resume(struct usb_interface *intf)
|
|
|
|
+{
|
|
|
|
+ struct usbnet *dev = usb_get_intfdata(intf);
|
|
|
|
+ int ret;
|
|
|
|
+
|
|
|
|
+ ret = smsc95xx_reset(dev);
|
|
|
|
+ if (ret < 0)
|
|
|
|
+ return ret;
|
|
|
|
+
|
|
|
|
+ return smsc95xx_resume(intf);
|
|
|
|
+}
|
|
|
|
+
|
|
static void smsc95xx_rx_csum_offload(struct sk_buff *skb)
|
|
static void smsc95xx_rx_csum_offload(struct sk_buff *skb)
|
|
{
|
|
{
|
|
skb->csum = *(u16 *)(skb_tail_pointer(skb) - 2);
|
|
skb->csum = *(u16 *)(skb_tail_pointer(skb) - 2);
|
|
@@ -2004,7 +2016,7 @@ static struct usb_driver smsc95xx_driver = {
|
|
.probe = usbnet_probe,
|
|
.probe = usbnet_probe,
|
|
.suspend = smsc95xx_suspend,
|
|
.suspend = smsc95xx_suspend,
|
|
.resume = smsc95xx_resume,
|
|
.resume = smsc95xx_resume,
|
|
- .reset_resume = smsc95xx_resume,
|
|
|
|
|
|
+ .reset_resume = smsc95xx_reset_resume,
|
|
.disconnect = usbnet_disconnect,
|
|
.disconnect = usbnet_disconnect,
|
|
.disable_hub_initiated_lpm = 1,
|
|
.disable_hub_initiated_lpm = 1,
|
|
.supports_autosuspend = 1,
|
|
.supports_autosuspend = 1,
|