aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/inode.c')
-rw-r--r--drivers/usb/gadget/inode.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/usb/gadget/inode.c b/drivers/usb/gadget/inode.c
index fc35406fc80c..a56876aaf76c 100644
--- a/drivers/usb/gadget/inode.c
+++ b/drivers/usb/gadget/inode.c
@@ -33,7 +33,6 @@
33#include <linux/sched.h> 33#include <linux/sched.h>
34#include <linux/slab.h> 34#include <linux/slab.h>
35#include <linux/poll.h> 35#include <linux/poll.h>
36#include <linux/smp_lock.h>
37 36
38#include <linux/device.h> 37#include <linux/device.h>
39#include <linux/moduleparam.h> 38#include <linux/moduleparam.h>
@@ -387,8 +386,10 @@ ep_read (struct file *fd, char __user *buf, size_t len, loff_t *ptr)
387 386
388 /* halt any endpoint by doing a "wrong direction" i/o call */ 387 /* halt any endpoint by doing a "wrong direction" i/o call */
389 if (usb_endpoint_dir_in(&data->desc)) { 388 if (usb_endpoint_dir_in(&data->desc)) {
390 if (usb_endpoint_xfer_isoc(&data->desc)) 389 if (usb_endpoint_xfer_isoc(&data->desc)) {
390 mutex_unlock(&data->lock);
391 return -EINVAL; 391 return -EINVAL;
392 }
392 DBG (data->dev, "%s halt\n", data->name); 393 DBG (data->dev, "%s halt\n", data->name);
393 spin_lock_irq (&data->dev->lock); 394 spin_lock_irq (&data->dev->lock);
394 if (likely (data->ep != NULL)) 395 if (likely (data->ep != NULL))
@@ -430,8 +431,10 @@ ep_write (struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
430 431
431 /* halt any endpoint by doing a "wrong direction" i/o call */ 432 /* halt any endpoint by doing a "wrong direction" i/o call */
432 if (!usb_endpoint_dir_in(&data->desc)) { 433 if (!usb_endpoint_dir_in(&data->desc)) {
433 if (usb_endpoint_xfer_isoc(&data->desc)) 434 if (usb_endpoint_xfer_isoc(&data->desc)) {
435 mutex_unlock(&data->lock);
434 return -EINVAL; 436 return -EINVAL;
437 }
435 DBG (data->dev, "%s halt\n", data->name); 438 DBG (data->dev, "%s halt\n", data->name);
436 spin_lock_irq (&data->dev->lock); 439 spin_lock_irq (&data->dev->lock);
437 if (likely (data->ep != NULL)) 440 if (likely (data->ep != NULL))
@@ -1775,7 +1778,6 @@ static struct usb_gadget_driver gadgetfs_driver = {
1775 .speed = USB_SPEED_FULL, 1778 .speed = USB_SPEED_FULL,
1776#endif 1779#endif
1777 .function = (char *) driver_desc, 1780 .function = (char *) driver_desc,
1778 .bind = gadgetfs_bind,
1779 .unbind = gadgetfs_unbind, 1781 .unbind = gadgetfs_unbind,
1780 .setup = gadgetfs_setup, 1782 .setup = gadgetfs_setup,
1781 .disconnect = gadgetfs_disconnect, 1783 .disconnect = gadgetfs_disconnect,
@@ -1798,7 +1800,6 @@ static int gadgetfs_probe (struct usb_gadget *gadget)
1798 1800
1799static struct usb_gadget_driver probe_driver = { 1801static struct usb_gadget_driver probe_driver = {
1800 .speed = USB_SPEED_HIGH, 1802 .speed = USB_SPEED_HIGH,
1801 .bind = gadgetfs_probe,
1802 .unbind = gadgetfs_nop, 1803 .unbind = gadgetfs_nop,
1803 .setup = (void *)gadgetfs_nop, 1804 .setup = (void *)gadgetfs_nop,
1804 .disconnect = gadgetfs_nop, 1805 .disconnect = gadgetfs_nop,
@@ -1908,7 +1909,7 @@ dev_config (struct file *fd, const char __user *buf, size_t len, loff_t *ptr)
1908 1909
1909 /* triggers gadgetfs_bind(); then we can enumerate. */ 1910 /* triggers gadgetfs_bind(); then we can enumerate. */
1910 spin_unlock_irq (&dev->lock); 1911 spin_unlock_irq (&dev->lock);
1911 value = usb_gadget_register_driver (&gadgetfs_driver); 1912 value = usb_gadget_probe_driver(&gadgetfs_driver, gadgetfs_bind);
1912 if (value != 0) { 1913 if (value != 0) {
1913 kfree (dev->buf); 1914 kfree (dev->buf);
1914 dev->buf = NULL; 1915 dev->buf = NULL;
@@ -1994,6 +1995,7 @@ gadgetfs_make_inode (struct super_block *sb,
1994 struct inode *inode = new_inode (sb); 1995 struct inode *inode = new_inode (sb);
1995 1996
1996 if (inode) { 1997 if (inode) {
1998 inode->i_ino = get_next_ino();
1997 inode->i_mode = mode; 1999 inode->i_mode = mode;
1998 inode->i_uid = default_uid; 2000 inode->i_uid = default_uid;
1999 inode->i_gid = default_gid; 2001 inode->i_gid = default_gid;
@@ -2047,7 +2049,7 @@ gadgetfs_fill_super (struct super_block *sb, void *opts, int silent)
2047 return -ESRCH; 2049 return -ESRCH;
2048 2050
2049 /* fake probe to determine $CHIP */ 2051 /* fake probe to determine $CHIP */
2050 (void) usb_gadget_register_driver (&probe_driver); 2052 (void) usb_gadget_probe_driver(&probe_driver, gadgetfs_probe);
2051 if (!CHIP) 2053 if (!CHIP)
2052 return -ENODEV; 2054 return -ENODEV;
2053 2055
@@ -2099,11 +2101,11 @@ enomem0:
2099} 2101}
2100 2102
2101/* "mount -t gadgetfs path /dev/gadget" ends up here */ 2103/* "mount -t gadgetfs path /dev/gadget" ends up here */
2102static int 2104static struct dentry *
2103gadgetfs_get_sb (struct file_system_type *t, int flags, 2105gadgetfs_mount (struct file_system_type *t, int flags,
2104 const char *path, void *opts, struct vfsmount *mnt) 2106 const char *path, void *opts)
2105{ 2107{
2106 return get_sb_single (t, flags, opts, gadgetfs_fill_super, mnt); 2108 return mount_single (t, flags, opts, gadgetfs_fill_super);
2107} 2109}
2108 2110
2109static void 2111static void
@@ -2121,7 +2123,7 @@ gadgetfs_kill_sb (struct super_block *sb)
2121static struct file_system_type gadgetfs_type = { 2123static struct file_system_type gadgetfs_type = {
2122 .owner = THIS_MODULE, 2124 .owner = THIS_MODULE,
2123 .name = shortname, 2125 .name = shortname,
2124 .get_sb = gadgetfs_get_sb, 2126 .mount = gadgetfs_mount,
2125 .kill_sb = gadgetfs_kill_sb, 2127 .kill_sb = gadgetfs_kill_sb,
2126}; 2128};
2127 2129