diff options
Diffstat (limited to 'drivers/usb/misc/legousbtower.c')
| -rw-r--r-- | drivers/usb/misc/legousbtower.c | 303 | 
1 files changed, 118 insertions, 185 deletions
diff --git a/drivers/usb/misc/legousbtower.c b/drivers/usb/misc/legousbtower.c index 23061f1526b4..ab4b98b04115 100644 --- a/drivers/usb/misc/legousbtower.c +++ b/drivers/usb/misc/legousbtower.c @@ -157,19 +157,19 @@ MODULE_PARM_DESC(interrupt_out_interval, "Interrupt out interval in ms");  #define LEGO_USB_TOWER_REQUEST_GET_VERSION	0xFD  struct tower_reset_reply { -	__le16 size;		/* little-endian */ +	__le16 size;  	__u8 err_code;  	__u8 spare; -} __attribute__ ((packed)); +};  struct tower_get_version_reply { -	__le16 size;		/* little-endian */ +	__le16 size;  	__u8 err_code;  	__u8 spare;  	__u8 major;  	__u8 minor; -	__le16 build_no;		/* little-endian */ -} __attribute__ ((packed)); +	__le16 build_no; +};  /* table of devices that work with this driver */ @@ -178,7 +178,7 @@ static const struct usb_device_id tower_table[] = {  	{ }					/* Terminating entry */  }; -MODULE_DEVICE_TABLE (usb, tower_table); +MODULE_DEVICE_TABLE(usb, tower_table);  #define LEGO_USB_TOWER_MINOR_BASE	160 @@ -186,13 +186,13 @@ MODULE_DEVICE_TABLE (usb, tower_table);  /* Structure to hold all of our device specific stuff */  struct lego_usb_tower {  	struct mutex		lock;		/* locks this structure */ -	struct usb_device*	udev;		/* save off the usb device pointer */ +	struct usb_device	*udev;		/* save off the usb device pointer */  	unsigned char		minor;		/* the starting minor number for this device */  	int			open_count;	/* number of times this port has been opened */  	unsigned long		disconnected:1; -	char*			read_buffer; +	char			*read_buffer;  	size_t			read_buffer_length; /* this much came in */  	size_t			read_packet_length; /* this much will be returned on read */  	spinlock_t		read_buffer_lock; @@ -202,16 +202,15 @@ struct lego_usb_tower {  	wait_queue_head_t	read_wait;  	wait_queue_head_t	write_wait; -	char*			interrupt_in_buffer; -	struct usb_endpoint_descriptor* interrupt_in_endpoint; -	struct urb*		interrupt_in_urb; +	char			*interrupt_in_buffer; +	struct usb_endpoint_descriptor *interrupt_in_endpoint; +	struct urb		*interrupt_in_urb;  	int			interrupt_in_interval; -	int			interrupt_in_running;  	int			interrupt_in_done; -	char*			interrupt_out_buffer; -	struct usb_endpoint_descriptor* interrupt_out_endpoint; -	struct urb*		interrupt_out_urb; +	char			*interrupt_out_buffer; +	struct usb_endpoint_descriptor *interrupt_out_endpoint; +	struct urb		*interrupt_out_urb;  	int			interrupt_out_interval;  	int			interrupt_out_busy; @@ -219,21 +218,20 @@ struct lego_usb_tower {  /* local function prototypes */ -static ssize_t tower_read	(struct file *file, char __user *buffer, size_t count, loff_t *ppos); -static ssize_t tower_write	(struct file *file, const char __user *buffer, size_t count, loff_t *ppos); -static inline void tower_delete (struct lego_usb_tower *dev); -static int tower_open		(struct inode *inode, struct file *file); -static int tower_release	(struct inode *inode, struct file *file); -static __poll_t tower_poll	(struct file *file, poll_table *wait); -static loff_t tower_llseek	(struct file *file, loff_t off, int whence); +static ssize_t tower_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos); +static ssize_t tower_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos); +static inline void tower_delete(struct lego_usb_tower *dev); +static int tower_open(struct inode *inode, struct file *file); +static int tower_release(struct inode *inode, struct file *file); +static __poll_t tower_poll(struct file *file, poll_table *wait); +static loff_t tower_llseek(struct file *file, loff_t off, int whence); -static void tower_abort_transfers (struct lego_usb_tower *dev); -static void tower_check_for_read_packet (struct lego_usb_tower *dev); -static void tower_interrupt_in_callback (struct urb *urb); -static void tower_interrupt_out_callback (struct urb *urb); +static void tower_check_for_read_packet(struct lego_usb_tower *dev); +static void tower_interrupt_in_callback(struct urb *urb); +static void tower_interrupt_out_callback(struct urb *urb); -static int  tower_probe	(struct usb_interface *interface, const struct usb_device_id *id); -static void tower_disconnect	(struct usb_interface *interface); +static int  tower_probe(struct usb_interface *interface, const struct usb_device_id *id); +static void tower_disconnect(struct usb_interface *interface);  /* file operations needed when we register this driver */ @@ -288,23 +286,23 @@ static inline void lego_usb_tower_debug_data(struct device *dev,  /**   *	tower_delete   */ -static inline void tower_delete (struct lego_usb_tower *dev) +static inline void tower_delete(struct lego_usb_tower *dev)  {  	/* free data structures */  	usb_free_urb(dev->interrupt_in_urb);  	usb_free_urb(dev->interrupt_out_urb); -	kfree (dev->read_buffer); -	kfree (dev->interrupt_in_buffer); -	kfree (dev->interrupt_out_buffer); +	kfree(dev->read_buffer); +	kfree(dev->interrupt_in_buffer); +	kfree(dev->interrupt_out_buffer);  	usb_put_dev(dev->udev); -	kfree (dev); +	kfree(dev);  }  /**   *	tower_open   */ -static int tower_open (struct inode *inode, struct file *file) +static int tower_open(struct inode *inode, struct file *file)  {  	struct lego_usb_tower *dev = NULL;  	int subminor; @@ -314,7 +312,6 @@ static int tower_open (struct inode *inode, struct file *file)  	int result;  	reset_reply = kmalloc(sizeof(*reset_reply), GFP_KERNEL); -  	if (!reset_reply) {  		retval = -ENOMEM;  		goto exit; @@ -323,8 +320,7 @@ static int tower_open (struct inode *inode, struct file *file)  	nonseekable_open(inode, file);  	subminor = iminor(inode); -	interface = usb_find_interface (&tower_driver, subminor); - +	interface = usb_find_interface(&tower_driver, subminor);  	if (!interface) {  		pr_err("error, can't find device for minor %d\n", subminor);  		retval = -ENODEV; @@ -351,15 +347,15 @@ static int tower_open (struct inode *inode, struct file *file)  	}  	/* reset the tower */ -	result = usb_control_msg (dev->udev, -				  usb_rcvctrlpipe(dev->udev, 0), -				  LEGO_USB_TOWER_REQUEST_RESET, -				  USB_TYPE_VENDOR | USB_DIR_IN | USB_RECIP_DEVICE, -				  0, -				  0, -				  reset_reply, -				  sizeof(*reset_reply), -				  1000); +	result = usb_control_msg(dev->udev, +				 usb_rcvctrlpipe(dev->udev, 0), +				 LEGO_USB_TOWER_REQUEST_RESET, +				 USB_TYPE_VENDOR | USB_DIR_IN | USB_RECIP_DEVICE, +				 0, +				 0, +				 reset_reply, +				 sizeof(*reset_reply), +				 1000);  	if (result < 0) {  		dev_err(&dev->udev->dev,  			"LEGO USB Tower reset control request failed\n"); @@ -370,24 +366,22 @@ static int tower_open (struct inode *inode, struct file *file)  	/* initialize in direction */  	dev->read_buffer_length = 0;  	dev->read_packet_length = 0; -	usb_fill_int_urb (dev->interrupt_in_urb, -			  dev->udev, -			  usb_rcvintpipe(dev->udev, dev->interrupt_in_endpoint->bEndpointAddress), -			  dev->interrupt_in_buffer, -			  usb_endpoint_maxp(dev->interrupt_in_endpoint), -			  tower_interrupt_in_callback, -			  dev, -			  dev->interrupt_in_interval); - -	dev->interrupt_in_running = 1; +	usb_fill_int_urb(dev->interrupt_in_urb, +			 dev->udev, +			 usb_rcvintpipe(dev->udev, dev->interrupt_in_endpoint->bEndpointAddress), +			 dev->interrupt_in_buffer, +			 usb_endpoint_maxp(dev->interrupt_in_endpoint), +			 tower_interrupt_in_callback, +			 dev, +			 dev->interrupt_in_interval); +  	dev->interrupt_in_done = 0;  	mb(); -	retval = usb_submit_urb (dev->interrupt_in_urb, GFP_KERNEL); +	retval = usb_submit_urb(dev->interrupt_in_urb, GFP_KERNEL);  	if (retval) {  		dev_err(&dev->udev->dev,  			"Couldn't submit interrupt_in_urb %d\n", retval); -		dev->interrupt_in_running = 0;  		goto unlock_exit;  	} @@ -407,13 +401,12 @@ exit:  /**   *	tower_release   */ -static int tower_release (struct inode *inode, struct file *file) +static int tower_release(struct inode *inode, struct file *file)  {  	struct lego_usb_tower *dev;  	int retval = 0;  	dev = file->private_data; -  	if (dev == NULL) {  		retval = -ENODEV;  		goto exit; @@ -421,56 +414,32 @@ static int tower_release (struct inode *inode, struct file *file)  	mutex_lock(&dev->lock); -	if (dev->open_count != 1) { -		dev_dbg(&dev->udev->dev, "%s: device not opened exactly once\n", -			__func__); -		retval = -ENODEV; -		goto unlock_exit; -	} -  	if (dev->disconnected) {  		/* the device was unplugged before the file was released */  		/* unlock here as tower_delete frees dev */  		mutex_unlock(&dev->lock); -		tower_delete (dev); +		tower_delete(dev);  		goto exit;  	}  	/* wait until write transfer is finished */  	if (dev->interrupt_out_busy) { -		wait_event_interruptible_timeout (dev->write_wait, !dev->interrupt_out_busy, 2 * HZ); +		wait_event_interruptible_timeout(dev->write_wait, !dev->interrupt_out_busy, +						 2 * HZ);  	} -	tower_abort_transfers (dev); + +	/* shutdown transfers */ +	usb_kill_urb(dev->interrupt_in_urb); +	usb_kill_urb(dev->interrupt_out_urb); +  	dev->open_count = 0; -unlock_exit:  	mutex_unlock(&dev->lock);  exit:  	return retval;  } - -/** - *	tower_abort_transfers - *      aborts transfers and frees associated data structures - */ -static void tower_abort_transfers (struct lego_usb_tower *dev) -{ -	if (dev == NULL) -		return; - -	/* shutdown transfer */ -	if (dev->interrupt_in_running) { -		dev->interrupt_in_running = 0; -		mb(); -		usb_kill_urb(dev->interrupt_in_urb); -	} -	if (dev->interrupt_out_busy) -		usb_kill_urb(dev->interrupt_out_urb); -} - -  /**   *	tower_check_for_read_packet   * @@ -479,23 +448,23 @@ static void tower_abort_transfers (struct lego_usb_tower *dev)   *      until it has been there unchanged for at least   *      dev->packet_timeout_jiffies, or until the buffer is full.   */ -static void tower_check_for_read_packet (struct lego_usb_tower *dev) +static void tower_check_for_read_packet(struct lego_usb_tower *dev)  { -	spin_lock_irq (&dev->read_buffer_lock); +	spin_lock_irq(&dev->read_buffer_lock);  	if (!packet_timeout  	    || time_after(jiffies, dev->read_last_arrival + dev->packet_timeout_jiffies)  	    || dev->read_buffer_length == read_buffer_size) {  		dev->read_packet_length = dev->read_buffer_length;  	}  	dev->interrupt_in_done = 0; -	spin_unlock_irq (&dev->read_buffer_lock); +	spin_unlock_irq(&dev->read_buffer_lock);  }  /**   *	tower_poll   */ -static __poll_t tower_poll (struct file *file, poll_table *wait) +static __poll_t tower_poll(struct file *file, poll_table *wait)  {  	struct lego_usb_tower *dev;  	__poll_t mask = 0; @@ -509,12 +478,10 @@ static __poll_t tower_poll (struct file *file, poll_table *wait)  	poll_wait(file, &dev->write_wait, wait);  	tower_check_for_read_packet(dev); -	if (dev->read_packet_length > 0) { +	if (dev->read_packet_length > 0)  		mask |= EPOLLIN | EPOLLRDNORM; -	} -	if (!dev->interrupt_out_busy) { +	if (!dev->interrupt_out_busy)  		mask |= EPOLLOUT | EPOLLWRNORM; -	}  	return mask;  } @@ -523,7 +490,7 @@ static __poll_t tower_poll (struct file *file, poll_table *wait)  /**   *	tower_llseek   */ -static loff_t tower_llseek (struct file *file, loff_t off, int whence) +static loff_t tower_llseek(struct file *file, loff_t off, int whence)  {  	return -ESPIPE;		/* unseekable */  } @@ -532,7 +499,7 @@ static loff_t tower_llseek (struct file *file, loff_t off, int whence)  /**   *	tower_read   */ -static ssize_t tower_read (struct file *file, char __user *buffer, size_t count, loff_t *ppos) +static ssize_t tower_read(struct file *file, char __user *buffer, size_t count, loff_t *ppos)  {  	struct lego_usb_tower *dev;  	size_t bytes_to_read; @@ -551,7 +518,6 @@ static ssize_t tower_read (struct file *file, char __user *buffer, size_t count,  	/* verify that the device wasn't unplugged */  	if (dev->disconnected) {  		retval = -ENODEV; -		pr_err("No device or device unplugged %d\n", retval);  		goto unlock_exit;  	} @@ -561,21 +527,19 @@ static ssize_t tower_read (struct file *file, char __user *buffer, size_t count,  		goto unlock_exit;  	} -	if (read_timeout) { +	if (read_timeout)  		timeout = jiffies + msecs_to_jiffies(read_timeout); -	}  	/* wait for data */ -	tower_check_for_read_packet (dev); +	tower_check_for_read_packet(dev);  	while (dev->read_packet_length == 0) {  		if (file->f_flags & O_NONBLOCK) {  			retval = -EAGAIN;  			goto unlock_exit;  		}  		retval = wait_event_interruptible_timeout(dev->read_wait, dev->interrupt_in_done, dev->packet_timeout_jiffies); -		if (retval < 0) { +		if (retval < 0)  			goto unlock_exit; -		}  		/* reset read timeout during read or write activity */  		if (read_timeout @@ -583,28 +547,27 @@ static ssize_t tower_read (struct file *file, char __user *buffer, size_t count,  			timeout = jiffies + msecs_to_jiffies(read_timeout);  		}  		/* check for read timeout */ -		if (read_timeout && time_after (jiffies, timeout)) { +		if (read_timeout && time_after(jiffies, timeout)) {  			retval = -ETIMEDOUT;  			goto unlock_exit;  		} -		tower_check_for_read_packet (dev); +		tower_check_for_read_packet(dev);  	}  	/* copy the data from read_buffer into userspace */  	bytes_to_read = min(count, dev->read_packet_length); -	if (copy_to_user (buffer, dev->read_buffer, bytes_to_read)) { +	if (copy_to_user(buffer, dev->read_buffer, bytes_to_read)) {  		retval = -EFAULT;  		goto unlock_exit;  	} -	spin_lock_irq (&dev->read_buffer_lock); +	spin_lock_irq(&dev->read_buffer_lock);  	dev->read_buffer_length -= bytes_to_read;  	dev->read_packet_length -= bytes_to_read; -	for (i=0; i<dev->read_buffer_length; i++) { +	for (i = 0; i < dev->read_buffer_length; i++)  		dev->read_buffer[i] = dev->read_buffer[i+bytes_to_read]; -	} -	spin_unlock_irq (&dev->read_buffer_lock); +	spin_unlock_irq(&dev->read_buffer_lock);  	retval = bytes_to_read; @@ -620,7 +583,7 @@ exit:  /**   *	tower_write   */ -static ssize_t tower_write (struct file *file, const char __user *buffer, size_t count, loff_t *ppos) +static ssize_t tower_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos)  {  	struct lego_usb_tower *dev;  	size_t bytes_to_write; @@ -637,7 +600,6 @@ static ssize_t tower_write (struct file *file, const char __user *buffer, size_t  	/* verify that the device wasn't unplugged */  	if (dev->disconnected) {  		retval = -ENODEV; -		pr_err("No device or device unplugged %d\n", retval);  		goto unlock_exit;  	} @@ -653,10 +615,10 @@ static ssize_t tower_write (struct file *file, const char __user *buffer, size_t  			retval = -EAGAIN;  			goto unlock_exit;  		} -		retval = wait_event_interruptible (dev->write_wait, !dev->interrupt_out_busy); -		if (retval) { +		retval = wait_event_interruptible(dev->write_wait, +						  !dev->interrupt_out_busy); +		if (retval)  			goto unlock_exit; -		}  	}  	/* write the data into interrupt_out_buffer from userspace */ @@ -664,7 +626,7 @@ static ssize_t tower_write (struct file *file, const char __user *buffer, size_t  	dev_dbg(&dev->udev->dev, "%s: count = %zd, bytes_to_write = %zd\n",  		__func__, count, bytes_to_write); -	if (copy_from_user (dev->interrupt_out_buffer, buffer, bytes_to_write)) { +	if (copy_from_user(dev->interrupt_out_buffer, buffer, bytes_to_write)) {  		retval = -EFAULT;  		goto unlock_exit;  	} @@ -682,7 +644,7 @@ static ssize_t tower_write (struct file *file, const char __user *buffer, size_t  	dev->interrupt_out_busy = 1;  	wmb(); -	retval = usb_submit_urb (dev->interrupt_out_urb, GFP_KERNEL); +	retval = usb_submit_urb(dev->interrupt_out_urb, GFP_KERNEL);  	if (retval) {  		dev->interrupt_out_busy = 0;  		dev_err(&dev->udev->dev, @@ -703,7 +665,7 @@ exit:  /**   *	tower_interrupt_in_callback   */ -static void tower_interrupt_in_callback (struct urb *urb) +static void tower_interrupt_in_callback(struct urb *urb)  {  	struct lego_usb_tower *dev = urb->context;  	int status = urb->status; @@ -729,9 +691,9 @@ static void tower_interrupt_in_callback (struct urb *urb)  	if (urb->actual_length > 0) {  		spin_lock_irqsave(&dev->read_buffer_lock, flags);  		if (dev->read_buffer_length + urb->actual_length < read_buffer_size) { -			memcpy (dev->read_buffer + dev->read_buffer_length, -				dev->interrupt_in_buffer, -				urb->actual_length); +			memcpy(dev->read_buffer + dev->read_buffer_length, +			       dev->interrupt_in_buffer, +			       urb->actual_length);  			dev->read_buffer_length += urb->actual_length;  			dev->read_last_arrival = jiffies;  			dev_dbg(&dev->udev->dev, "%s: received %d bytes\n", @@ -744,25 +706,21 @@ static void tower_interrupt_in_callback (struct urb *urb)  	}  resubmit: -	/* resubmit if we're still running */ -	if (dev->interrupt_in_running) { -		retval = usb_submit_urb (dev->interrupt_in_urb, GFP_ATOMIC); -		if (retval) -			dev_err(&dev->udev->dev, -				"%s: usb_submit_urb failed (%d)\n", -				__func__, retval); +	retval = usb_submit_urb(dev->interrupt_in_urb, GFP_ATOMIC); +	if (retval) { +		dev_err(&dev->udev->dev, "%s: usb_submit_urb failed (%d)\n", +			__func__, retval);  	} -  exit:  	dev->interrupt_in_done = 1; -	wake_up_interruptible (&dev->read_wait); +	wake_up_interruptible(&dev->read_wait);  }  /**   *	tower_interrupt_out_callback   */ -static void tower_interrupt_out_callback (struct urb *urb) +static void tower_interrupt_out_callback(struct urb *urb)  {  	struct lego_usb_tower *dev = urb->context;  	int status = urb->status; @@ -790,48 +748,27 @@ static void tower_interrupt_out_callback (struct urb *urb)   *	Called by the usb core when a new device is connected that it thinks   *	this driver might be interested in.   */ -static int tower_probe (struct usb_interface *interface, const struct usb_device_id *id) +static int tower_probe(struct usb_interface *interface, const struct usb_device_id *id)  {  	struct device *idev = &interface->dev;  	struct usb_device *udev = interface_to_usbdev(interface); -	struct lego_usb_tower *dev = NULL; +	struct lego_usb_tower *dev;  	struct tower_get_version_reply *get_version_reply = NULL;  	int retval = -ENOMEM;  	int result;  	/* allocate memory for our device state and initialize it */ - -	dev = kmalloc (sizeof(struct lego_usb_tower), GFP_KERNEL); - +	dev = kzalloc(sizeof(*dev), GFP_KERNEL);  	if (!dev)  		goto exit;  	mutex_init(&dev->lock); -  	dev->udev = usb_get_dev(udev); -	dev->open_count = 0; -	dev->disconnected = 0; - -	dev->read_buffer = NULL; -	dev->read_buffer_length = 0; -	dev->read_packet_length = 0; -	spin_lock_init (&dev->read_buffer_lock); +	spin_lock_init(&dev->read_buffer_lock);  	dev->packet_timeout_jiffies = msecs_to_jiffies(packet_timeout);  	dev->read_last_arrival = jiffies; - -	init_waitqueue_head (&dev->read_wait); -	init_waitqueue_head (&dev->write_wait); - -	dev->interrupt_in_buffer = NULL; -	dev->interrupt_in_endpoint = NULL; -	dev->interrupt_in_urb = NULL; -	dev->interrupt_in_running = 0; -	dev->interrupt_in_done = 0; - -	dev->interrupt_out_buffer = NULL; -	dev->interrupt_out_endpoint = NULL; -	dev->interrupt_out_urb = NULL; -	dev->interrupt_out_busy = 0; +	init_waitqueue_head(&dev->read_wait); +	init_waitqueue_head(&dev->write_wait);  	result = usb_find_common_endpoints_reverse(interface->cur_altsetting,  			NULL, NULL, @@ -843,16 +780,16 @@ static int tower_probe (struct usb_interface *interface, const struct usb_device  		goto error;  	} -	dev->read_buffer = kmalloc (read_buffer_size, GFP_KERNEL); +	dev->read_buffer = kmalloc(read_buffer_size, GFP_KERNEL);  	if (!dev->read_buffer)  		goto error; -	dev->interrupt_in_buffer = kmalloc (usb_endpoint_maxp(dev->interrupt_in_endpoint), GFP_KERNEL); +	dev->interrupt_in_buffer = kmalloc(usb_endpoint_maxp(dev->interrupt_in_endpoint), GFP_KERNEL);  	if (!dev->interrupt_in_buffer)  		goto error;  	dev->interrupt_in_urb = usb_alloc_urb(0, GFP_KERNEL);  	if (!dev->interrupt_in_urb)  		goto error; -	dev->interrupt_out_buffer = kmalloc (write_buffer_size, GFP_KERNEL); +	dev->interrupt_out_buffer = kmalloc(write_buffer_size, GFP_KERNEL);  	if (!dev->interrupt_out_buffer)  		goto error;  	dev->interrupt_out_urb = usb_alloc_urb(0, GFP_KERNEL); @@ -862,22 +799,21 @@ static int tower_probe (struct usb_interface *interface, const struct usb_device  	dev->interrupt_out_interval = interrupt_out_interval ? interrupt_out_interval : dev->interrupt_out_endpoint->bInterval;  	get_version_reply = kmalloc(sizeof(*get_version_reply), GFP_KERNEL); -  	if (!get_version_reply) {  		retval = -ENOMEM;  		goto error;  	}  	/* get the firmware version and log it */ -	result = usb_control_msg (udev, -				  usb_rcvctrlpipe(udev, 0), -				  LEGO_USB_TOWER_REQUEST_GET_VERSION, -				  USB_TYPE_VENDOR | USB_DIR_IN | USB_RECIP_DEVICE, -				  0, -				  0, -				  get_version_reply, -				  sizeof(*get_version_reply), -				  1000); +	result = usb_control_msg(udev, +				 usb_rcvctrlpipe(udev, 0), +				 LEGO_USB_TOWER_REQUEST_GET_VERSION, +				 USB_TYPE_VENDOR | USB_DIR_IN | USB_RECIP_DEVICE, +				 0, +				 0, +				 get_version_reply, +				 sizeof(*get_version_reply), +				 1000);  	if (result != sizeof(*get_version_reply)) {  		if (result >= 0)  			result = -EIO; @@ -892,10 +828,9 @@ static int tower_probe (struct usb_interface *interface, const struct usb_device  		 le16_to_cpu(get_version_reply->build_no));  	/* we can register the device now, as it is ready */ -	usb_set_intfdata (interface, dev); - -	retval = usb_register_dev (interface, &tower_class); +	usb_set_intfdata(interface, dev); +	retval = usb_register_dev(interface, &tower_class);  	if (retval) {  		/* something prevented us from registering this driver */  		dev_err(idev, "Not able to get a minor for this device.\n"); @@ -924,17 +859,17 @@ error:   *   *	Called by the usb core when the device is removed from the system.   */ -static void tower_disconnect (struct usb_interface *interface) +static void tower_disconnect(struct usb_interface *interface)  {  	struct lego_usb_tower *dev;  	int minor; -	dev = usb_get_intfdata (interface); +	dev = usb_get_intfdata(interface);  	minor = dev->minor;  	/* give back our minor and prevent further open() */ -	usb_deregister_dev (interface, &tower_class); +	usb_deregister_dev(interface, &tower_class);  	/* stop I/O */  	usb_poison_urb(dev->interrupt_in_urb); @@ -945,7 +880,7 @@ static void tower_disconnect (struct usb_interface *interface)  	/* if the device is not opened, then we clean up right now */  	if (!dev->open_count) {  		mutex_unlock(&dev->lock); -		tower_delete (dev); +		tower_delete(dev);  	} else {  		dev->disconnected = 1;  		/* wake up pollers */ @@ -962,6 +897,4 @@ module_usb_driver(tower_driver);  MODULE_AUTHOR(DRIVER_AUTHOR);  MODULE_DESCRIPTION(DRIVER_DESC); -#ifdef MODULE_LICENSE  MODULE_LICENSE("GPL"); -#endif  |