]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
greybus: first framework for the es1 ap controller
authorGreg Kroah-Hartman <greg@kroah.com>
Sun, 31 Aug 2014 00:18:14 +0000 (17:18 -0700)
committerGreg Kroah-Hartman <greg@kroah.com>
Sun, 31 Aug 2014 00:18:14 +0000 (17:18 -0700)
drivers/staging/greybus/es1-ap-usb.c

index 05c724881b07f400d5f619e53f262cd6eb093e7a..991a53846e7907f6a1f0682033cd36b736c02fa8 100644 (file)
@@ -18,17 +18,40 @@ static const struct usb_device_id id_table[] = {
 };
 MODULE_DEVICE_TABLE(usb, id_table);
 
+/*
+ * Hack, we "know" we will only have one of these at any one time, so only
+ * create one static structure pointer.
+ */
+struct es1_ap_dev {
+       struct usb_interface *usb_intf;
+
+} *es1_ap_dev;
+
 
 static int ap_probe(struct usb_interface *interface,
                    const struct usb_device_id *id)
 {
+       if (es1_ap_dev) {
+               dev_err(&interface->dev, "Already have a es1_ap_dev???\n");
+               return -ENODEV;
+       }
+       es1_ap_dev = kzalloc(sizeof(*es1_ap_dev), GFP_KERNEL);
+       if (!es1_ap_dev)
+               return -ENOMEM;
 
+       es1_ap_dev->usb_intf = interface;
+       usb_set_intfdata(interface, es1_ap_dev);
        return 0;
 }
 
 static void ap_disconnect(struct usb_interface *interface)
 {
+       es1_ap_dev = usb_get_intfdata(interface);
+
+       /* Tear down everything! */
 
+       kfree(es1_ap_dev);
+       es1_ap_dev = NULL;
 
 }