]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/usb/cdc_subset.c
Merge tag 'nfs-for-3.17-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[karo-tx-linux.git] / drivers / net / usb / cdc_subset.c
index 91f0919fe27891cd4993e63488fa3094f19fc197..6ea98cff2d3bf8df13d5e8deee032b971b81d0dd 100644 (file)
@@ -85,14 +85,28 @@ static int always_connected (struct usbnet *dev)
  *
  *-------------------------------------------------------------------------*/
 
+static void m5632_recover(struct usbnet *dev)
+{
+       struct usb_device       *udev = dev->udev;
+       struct usb_interface    *intf = dev->intf;
+       int r;
+
+       r = usb_lock_device_for_reset(udev, intf);
+       if (r < 0)
+               return;
+
+       usb_reset_device(udev);
+       usb_unlock_device(udev);
+}
+
 static const struct driver_info        ali_m5632_info = {
        .description =  "ALi M5632",
        .flags       = FLAG_POINTTOPOINT,
+       .recover     = m5632_recover,
 };
 
 #endif
 
-\f
 #ifdef CONFIG_USB_AN2720
 #define        HAVE_HARDWARE
 
@@ -326,12 +340,23 @@ static const struct usb_device_id products [] = {
 MODULE_DEVICE_TABLE(usb, products);
 
 /*-------------------------------------------------------------------------*/
+static int dummy_prereset(struct usb_interface *intf)
+{
+        return 0;
+}
+
+static int dummy_postreset(struct usb_interface *intf)
+{
+        return 0;
+}
 
 static struct usb_driver cdc_subset_driver = {
        .name =         "cdc_subset",
        .probe =        usbnet_probe,
        .suspend =      usbnet_suspend,
        .resume =       usbnet_resume,
+       .pre_reset =    dummy_prereset,
+       .post_reset =   dummy_postreset,
        .disconnect =   usbnet_disconnect,
        .id_table =     products,
        .disable_hub_initiated_lpm = 1,