Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux...
[pandora-kernel.git] / drivers / usb / gadget / cdc2.c
index 1f5ba2f..2720ab0 100644 (file)
@@ -129,7 +129,7 @@ static u8 hostaddr[ETH_ALEN];
 /*
  * We _always_ have both CDC ECM and CDC ACM functions.
  */
-static int __ref cdc_do_config(struct usb_configuration *c)
+static int __init cdc_do_config(struct usb_configuration *c)
 {
        int     status;
 
@@ -151,7 +151,6 @@ static int __ref cdc_do_config(struct usb_configuration *c)
 
 static struct usb_configuration cdc_config_driver = {
        .label                  = "CDC Composite (ECM + ACM)",
-       .bind                   = cdc_do_config,
        .bConfigurationValue    = 1,
        /* .iConfiguration = DYNAMIC */
        .bmAttributes           = USB_CONFIG_ATT_SELFPOWER,
@@ -159,7 +158,7 @@ static struct usb_configuration cdc_config_driver = {
 
 /*-------------------------------------------------------------------------*/
 
-static int __ref cdc_bind(struct usb_composite_dev *cdev)
+static int __init cdc_bind(struct usb_composite_dev *cdev)
 {
        int                     gcnum;
        struct usb_gadget       *gadget = cdev->gadget;
@@ -218,7 +217,7 @@ static int __ref cdc_bind(struct usb_composite_dev *cdev)
        device_desc.iProduct = status;
 
        /* register our configuration */
-       status = usb_add_config(cdev, &cdc_config_driver);
+       status = usb_add_config(cdev, &cdc_config_driver, cdc_do_config);
        if (status < 0)
                goto fail1;
 
@@ -245,7 +244,6 @@ static struct usb_composite_driver cdc_driver = {
        .name           = "g_cdc",
        .dev            = &device_desc,
        .strings        = dev_strings,
-       .bind           = cdc_bind,
        .unbind         = __exit_p(cdc_unbind),
 };
 
@@ -255,7 +253,7 @@ MODULE_LICENSE("GPL");
 
 static int __init init(void)
 {
-       return usb_composite_register(&cdc_driver);
+       return usb_composite_probe(&cdc_driver, cdc_bind);
 }
 module_init(init);