]> err.no Git - linux-2.6/blobdiff - drivers/usb/misc/ldusb.c
Merge ../linux-2.6
[linux-2.6] / drivers / usb / misc / ldusb.c
index 11580e81e2c633b0163214680342334105b64dc8..189a9db035090fb35cf4c320d6dffd5a0d63c8db 100644 (file)
@@ -63,9 +63,6 @@
 #define USB_DEVICE_ID_VERNIER_CYCLOPS  0x0004
 #define USB_DEVICE_ID_VERNIER_LCSPEC   0x0006
 
-#define USB_VENDOR_ID_MICROCHIP                0x04d8
-#define USB_DEVICE_ID_PICDEM           0x000c
-
 #ifdef CONFIG_USB_DYNAMIC_MINORS
 #define USB_LD_MINOR_BASE      0
 #else
@@ -92,7 +89,6 @@ static struct usb_device_id ld_usb_table [] = {
        { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_GOTEMP) },
        { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_SKIP) },
        { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_CYCLOPS) },
-       { USB_DEVICE(USB_VENDOR_ID_MICROCHIP, USB_DEVICE_ID_PICDEM) },
        { USB_DEVICE(USB_VENDOR_ID_VERNIER, USB_DEVICE_ID_VERNIER_LCSPEC) },
        { }                                     /* Terminating entry */
 };
@@ -148,7 +144,7 @@ MODULE_PARM_DESC(min_interrupt_out_interval, "Minimum interrupt out interval in
 
 /* Structure to hold all of our device specific stuff */
 struct ld_usb {
-       struct semaphore        sem;            /* locks this structure */
+       struct mutex            mutex;          /* locks this structure */
        struct usb_interface*   intf;           /* save off the usb interface pointer */
 
        int                     open_count;     /* number of times this port has been opened */
@@ -319,7 +315,7 @@ static int ld_usb_open(struct inode *inode, struct file *file)
                return -ENODEV;
 
        /* lock this device */
-       if (down_interruptible(&dev->sem))
+       if (mutex_lock_interruptible(&dev->mutex))
                return -ERESTARTSYS;
 
        /* allow opening only once */
@@ -358,7 +354,7 @@ static int ld_usb_open(struct inode *inode, struct file *file)
        file->private_data = dev;
 
 unlock_exit:
-       up(&dev->sem);
+       mutex_unlock(&dev->mutex);
 
        return retval;
 }
@@ -378,7 +374,7 @@ static int ld_usb_release(struct inode *inode, struct file *file)
                goto exit;
        }
 
-       if (down_interruptible(&dev->sem)) {
+       if (mutex_lock_interruptible(&dev->mutex)) {
                retval = -ERESTARTSYS;
                goto exit;
        }
@@ -389,7 +385,7 @@ static int ld_usb_release(struct inode *inode, struct file *file)
        }
        if (dev->intf == NULL) {
                /* the device was unplugged before the file was released */
-               up(&dev->sem);
+               mutex_unlock(&dev->mutex);
                /* unlock here as ld_usb_delete frees dev */
                ld_usb_delete(dev);
                goto exit;
@@ -402,7 +398,7 @@ static int ld_usb_release(struct inode *inode, struct file *file)
        dev->open_count = 0;
 
 unlock_exit:
-       up(&dev->sem);
+       mutex_unlock(&dev->mutex);
 
 exit:
        return retval;
@@ -448,7 +444,7 @@ static ssize_t ld_usb_read(struct file *file, char __user *buffer, size_t count,
                goto exit;
 
        /* lock this object */
-       if (down_interruptible(&dev->sem)) {
+       if (mutex_lock_interruptible(&dev->mutex)) {
                retval = -ERESTARTSYS;
                goto exit;
        }
@@ -505,7 +501,7 @@ static ssize_t ld_usb_read(struct file *file, char __user *buffer, size_t count,
 
 unlock_exit:
        /* unlock the device */
-       up(&dev->sem);
+       mutex_unlock(&dev->mutex);
 
 exit:
        return retval;
@@ -528,7 +524,7 @@ static ssize_t ld_usb_write(struct file *file, const char __user *buffer,
                goto exit;
 
        /* lock this object */
-       if (down_interruptible(&dev->sem)) {
+       if (mutex_lock_interruptible(&dev->mutex)) {
                retval = -ERESTARTSYS;
                goto exit;
        }
@@ -602,7 +598,7 @@ static ssize_t ld_usb_write(struct file *file, const char __user *buffer,
 
 unlock_exit:
        /* unlock the device */
-       up(&dev->sem);
+       mutex_unlock(&dev->mutex);
 
 exit:
        return retval;
@@ -651,7 +647,7 @@ static int ld_usb_probe(struct usb_interface *intf, const struct usb_device_id *
                dev_err(&intf->dev, "Out of memory\n");
                goto exit;
        }
-       init_MUTEX(&dev->sem);
+       mutex_init(&dev->mutex);
        spin_lock_init(&dev->rbsl);
        dev->intf = intf;
        init_waitqueue_head(&dev->read_wait);
@@ -765,15 +761,15 @@ static void ld_usb_disconnect(struct usb_interface *intf)
        /* give back our minor */
        usb_deregister_dev(intf, &ld_usb_class);
 
-       down(&dev->sem);
+       mutex_lock(&dev->mutex);
 
        /* if the device is not opened, then we clean up right now */
        if (!dev->open_count) {
-               up(&dev->sem);
+               mutex_unlock(&dev->mutex);
                ld_usb_delete(dev);
        } else {
                dev->intf = NULL;
-               up(&dev->sem);
+               mutex_unlock(&dev->mutex);
        }
 
        dev_info(&intf->dev, "LD USB Device #%d now disconnected\n",