]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/usb/gadget/hid.c
Merge tag 'v2.6.37' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / usb / gadget / hid.c
index 735495bf8411b81c5ee7ff1ab4a38177dadd78dc..2523e54097bd3529dce275c9a8ef1f0cebff57c9 100644 (file)
@@ -127,7 +127,7 @@ static struct usb_gadget_strings *dev_strings[] = {
 
 /****************************** Configurations ******************************/
 
-static int __ref do_config(struct usb_configuration *c)
+static int __init do_config(struct usb_configuration *c)
 {
        struct hidg_func_node *e;
        int func = 0, status = 0;
@@ -148,7 +148,6 @@ static int __ref do_config(struct usb_configuration *c)
 
 static struct usb_configuration config_driver = {
        .label                  = "HID Gadget",
-       .bind                   = do_config,
        .bConfigurationValue    = 1,
        /* .iConfiguration = DYNAMIC */
        .bmAttributes           = USB_CONFIG_ATT_SELFPOWER,
@@ -156,7 +155,7 @@ static struct usb_configuration config_driver = {
 
 /****************************** Gadget Bind ******************************/
 
-static int __ref hid_bind(struct usb_composite_dev *cdev)
+static int __init hid_bind(struct usb_composite_dev *cdev)
 {
        struct usb_gadget *gadget = cdev->gadget;
        struct list_head *tmp;
@@ -201,7 +200,7 @@ static int __ref hid_bind(struct usb_composite_dev *cdev)
        device_desc.iProduct = status;
 
        /* register our configuration */
-       status = usb_add_config(cdev, &config_driver);
+       status = usb_add_config(cdev, &config_driver, do_config);
        if (status < 0)
                return status;
 
@@ -256,7 +255,6 @@ static struct usb_composite_driver hidg_driver = {
        .name           = "g_hid",
        .dev            = &device_desc,
        .strings        = dev_strings,
-       .bind           = hid_bind,
        .unbind         = __exit_p(hid_unbind),
 };
 
@@ -282,7 +280,7 @@ static int __init hidg_init(void)
        if (status < 0)
                return status;
 
-       status = usb_composite_register(&hidg_driver);
+       status = usb_composite_probe(&hidg_driver, hid_bind);
        if (status < 0)
                platform_driver_unregister(&hidg_plat_driver);