diff options
Diffstat (limited to 'drivers/usb/misc/idmouse.c')
| -rw-r--r-- | drivers/usb/misc/idmouse.c | 38 | 
1 files changed, 8 insertions, 30 deletions
diff --git a/drivers/usb/misc/idmouse.c b/drivers/usb/misc/idmouse.c index 20b0f91a5d9b..e9437a176518 100644 --- a/drivers/usb/misc/idmouse.c +++ b/drivers/usb/misc/idmouse.c @@ -56,11 +56,10 @@ static const struct usb_device_id idmouse_table[] = {  #define FTIP_SCROLL  0x24  #define ftip_command(dev, command, value, index) \ -	usb_control_msg (dev->udev, usb_sndctrlpipe (dev->udev, 0), command, \ +	usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), command, \  	USB_TYPE_VENDOR | USB_RECIP_ENDPOINT | USB_DIR_OUT, value, index, NULL, 0, 1000)  MODULE_DEVICE_TABLE(usb, idmouse_table); -static DEFINE_MUTEX(open_disc_mutex);  /* structure to hold all of our device specific stuff */  struct usb_idmouse { @@ -158,8 +157,8 @@ static int idmouse_create_image(struct usb_idmouse *dev)  	/* loop over a blocking bulk read to get data from the device */  	while (bytes_read < IMGSIZE) { -		result = usb_bulk_msg (dev->udev, -				usb_rcvbulkpipe (dev->udev, dev->bulk_in_endpointAddr), +		result = usb_bulk_msg(dev->udev, +				usb_rcvbulkpipe(dev->udev, dev->bulk_in_endpointAddr),  				dev->bulk_in_buffer + bytes_read,  				dev->bulk_in_size, &bulk_read, 5000);  		if (result < 0) { @@ -223,21 +222,17 @@ static int idmouse_open(struct inode *inode, struct file *file)  	int result;  	/* get the interface from minor number and driver information */ -	interface = usb_find_interface (&idmouse_driver, iminor (inode)); +	interface = usb_find_interface(&idmouse_driver, iminor(inode));  	if (!interface)  		return -ENODEV; -	mutex_lock(&open_disc_mutex);  	/* get the device information block from the interface */  	dev = usb_get_intfdata(interface); -	if (!dev) { -		mutex_unlock(&open_disc_mutex); +	if (!dev)  		return -ENODEV; -	}  	/* lock this device */  	mutex_lock(&dev->lock); -	mutex_unlock(&open_disc_mutex);  	/* check if already open */  	if (dev->open) { @@ -251,7 +246,7 @@ static int idmouse_open(struct inode *inode, struct file *file)  		result = usb_autopm_get_interface(interface);  		if (result)  			goto error; -		result = idmouse_create_image (dev); +		result = idmouse_create_image(dev);  		usb_autopm_put_interface(interface);  		if (result)  			goto error; @@ -280,27 +275,17 @@ static int idmouse_release(struct inode *inode, struct file *file)  	if (dev == NULL)  		return -ENODEV; -	mutex_lock(&open_disc_mutex);  	/* lock our device */  	mutex_lock(&dev->lock); -	/* are we really open? */ -	if (dev->open <= 0) { -		mutex_unlock(&dev->lock); -		mutex_unlock(&open_disc_mutex); -		return -ENODEV; -	} -  	--dev->open;  	if (!dev->present) {  		/* the device was unplugged before the file was released */  		mutex_unlock(&dev->lock); -		mutex_unlock(&open_disc_mutex);  		idmouse_delete(dev);  	} else {  		mutex_unlock(&dev->lock); -		mutex_unlock(&open_disc_mutex);  	}  	return 0;  } @@ -337,7 +322,7 @@ static int idmouse_probe(struct usb_interface *interface,  	int result;  	/* check if we have gotten the data or the hid interface */ -	iface_desc = &interface->altsetting[0]; +	iface_desc = interface->cur_altsetting;  	if (iface_desc->desc.bInterfaceClass != 0x0A)  		return -ENODEV; @@ -379,7 +364,6 @@ static int idmouse_probe(struct usb_interface *interface,  	if (result) {  		/* something prevented us from registering this device */  		dev_err(&interface->dev, "Unable to allocate minor number.\n"); -		usb_set_intfdata(interface, NULL);  		idmouse_delete(dev);  		return result;  	} @@ -392,19 +376,13 @@ static int idmouse_probe(struct usb_interface *interface,  static void idmouse_disconnect(struct usb_interface *interface)  { -	struct usb_idmouse *dev; - -	/* get device structure */ -	dev = usb_get_intfdata(interface); +	struct usb_idmouse *dev = usb_get_intfdata(interface);  	/* give back our minor */  	usb_deregister_dev(interface, &idmouse_class); -	mutex_lock(&open_disc_mutex); -	usb_set_intfdata(interface, NULL);  	/* lock the device */  	mutex_lock(&dev->lock); -	mutex_unlock(&open_disc_mutex);  	/* prevent device read, write and ioctl */  	dev->present = 0;  |