]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/usb/usb-skeleton.c
USB: Move private hub declarations out of public header file
[mv-sheeva.git] / drivers / usb / usb-skeleton.c
index 9b542a6ba978923de924d36105a0ca6dfce2cd9f..296b091cf168c7e460ec70db19ac7dcc18a777c1 100644 (file)
@@ -90,6 +90,11 @@ static int skel_open(struct inode *inode, struct file *file)
                goto exit;
        }
 
+       /* prevent the device from being autosuspended */
+       retval = usb_autopm_get_interface(interface);
+       if (retval)
+               goto exit;
+
        /* increment our usage count for the device */
        kref_get(&dev->kref);
 
@@ -108,6 +113,12 @@ static int skel_release(struct inode *inode, struct file *file)
        if (dev == NULL)
                return -ENODEV;
 
+       /* allow the device to be autosuspended */
+       mutex_lock(&dev->io_mutex);
+       if (dev->interface)
+               usb_autopm_put_interface(dev->interface);
+       mutex_unlock(&dev->io_mutex);
+
        /* decrement the count on our device */
        kref_put(&dev->kref, skel_delete);
        return 0;
@@ -147,7 +158,7 @@ exit:
        return retval;
 }
 
-static void skel_write_bulk_callback(struct urb *urb, struct pt_regs *regs)
+static void skel_write_bulk_callback(struct urb *urb)
 {
        struct usb_skel *dev;