Merge branch 'fix/asoc' into for-linus
[cascardo/linux.git] / drivers / usb / gadget / ether.c
index 114fa02..1690c9d 100644 (file)
@@ -237,7 +237,7 @@ static u8 hostaddr[ETH_ALEN];
  * the first one present.  That's to make Microsoft's drivers happy,
  * and to follow DOCSIS 1.0 (cable modem standard).
  */
-static int __ref rndis_do_config(struct usb_configuration *c)
+static int __init rndis_do_config(struct usb_configuration *c)
 {
        /* FIXME alloc iConfiguration string, set it in c->strings */
 
@@ -251,7 +251,6 @@ static int __ref rndis_do_config(struct usb_configuration *c)
 
 static struct usb_configuration rndis_config_driver = {
        .label                  = "RNDIS",
-       .bind                   = rndis_do_config,
        .bConfigurationValue    = 2,
        /* .iConfiguration = DYNAMIC */
        .bmAttributes           = USB_CONFIG_ATT_SELFPOWER,
@@ -270,7 +269,7 @@ MODULE_PARM_DESC(use_eem, "use CDC EEM mode");
 /*
  * We _always_ have an ECM, CDC Subset, or EEM configuration.
  */
-static int __ref eth_do_config(struct usb_configuration *c)
+static int __init eth_do_config(struct usb_configuration *c)
 {
        /* FIXME alloc iConfiguration string, set it in c->strings */
 
@@ -289,7 +288,6 @@ static int __ref eth_do_config(struct usb_configuration *c)
 
 static struct usb_configuration eth_config_driver = {
        /* .label = f(hardware) */
-       .bind                   = eth_do_config,
        .bConfigurationValue    = 1,
        /* .iConfiguration = DYNAMIC */
        .bmAttributes           = USB_CONFIG_ATT_SELFPOWER,
@@ -297,7 +295,7 @@ static struct usb_configuration eth_config_driver = {
 
 /*-------------------------------------------------------------------------*/
 
-static int __ref eth_bind(struct usb_composite_dev *cdev)
+static int __init eth_bind(struct usb_composite_dev *cdev)
 {
        int                     gcnum;
        struct usb_gadget       *gadget = cdev->gadget;
@@ -373,12 +371,13 @@ static int __ref eth_bind(struct usb_composite_dev *cdev)
 
        /* register our configuration(s); RNDIS first, if it's used */
        if (has_rndis()) {
-               status = usb_add_config(cdev, &rndis_config_driver);
+               status = usb_add_config(cdev, &rndis_config_driver,
+                               rndis_do_config);
                if (status < 0)
                        goto fail;
        }
 
-       status = usb_add_config(cdev, &eth_config_driver);
+       status = usb_add_config(cdev, &eth_config_driver, eth_do_config);
        if (status < 0)
                goto fail;
 
@@ -402,7 +401,6 @@ static struct usb_composite_driver eth_driver = {
        .name           = "g_ether",
        .dev            = &device_desc,
        .strings        = dev_strings,
-       .bind           = eth_bind,
        .unbind         = __exit_p(eth_unbind),
 };
 
@@ -412,7 +410,7 @@ MODULE_LICENSE("GPL");
 
 static int __init init(void)
 {
-       return usb_composite_register(&eth_driver);
+       return usb_composite_probe(&eth_driver, eth_bind);
 }
 module_init(init);