usb: gadget: f_tcm: use usb_gstrings_attach
authorAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Fri, 11 Dec 2015 15:06:25 +0000 (16:06 +0100)
committerNicholas Bellinger <nab@linux-iscsi.org>
Mon, 21 Dec 2015 03:40:43 +0000 (19:40 -0800)
Do not directly use file static strings definitions in instances of f_tcm.
Instead use usb_gstrings_attach.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/usb/gadget/function/f_tcm.c

index b33738a8eea204311243d72069e0cd4aeda7e580..4a004634dafed307ac67e65a67be6b5cb38a4df1 100644 (file)
@@ -2028,6 +2028,7 @@ static struct usb_gadget_strings *tcm_strings[] = {
 static int tcm_bind(struct usb_configuration *c, struct usb_function *f)
 {
        struct f_uas            *fu = to_f_uas(f);
+       struct usb_string       *us;
        struct usb_gadget       *gadget = c->cdev->gadget;
        struct usb_ep           *ep;
        struct f_tcm_opts       *opts;
@@ -2042,16 +2043,12 @@ static int tcm_bind(struct usb_configuration *c, struct usb_function *f)
                return -ENODEV;
        }
        mutex_unlock(&opts->dep_lock);
-
-       if (tcm_us_strings[0].id == 0) {
-               ret = usb_string_ids_tab(c->cdev, tcm_us_strings);
-               if (ret < 0)
-                       return ret;
-
-               bot_intf_desc.iInterface = tcm_us_strings[USB_G_STR_INT_BBB].id;
-               uasp_intf_desc.iInterface =
-                       tcm_us_strings[USB_G_STR_INT_UAS].id;
-       }
+       us = usb_gstrings_attach(c->cdev, tcm_strings,
+               ARRAY_SIZE(tcm_us_strings));
+       if (IS_ERR(us))
+               return PTR_ERR(us);
+       bot_intf_desc.iInterface = us[USB_G_STR_INT_BBB].id;
+       uasp_intf_desc.iInterface = us[USB_G_STR_INT_UAS].id;
 
        iface = usb_interface_id(c, f);
        if (iface < 0)
@@ -2300,7 +2297,6 @@ static struct usb_function *tcm_alloc(struct usb_function_instance *fi)
        fu->function.set_alt = tcm_set_alt;
        fu->function.setup = tcm_setup;
        fu->function.disable = tcm_disable;
-       fu->function.strings = tcm_strings;
        fu->function.free_func = tcm_free;
        fu->tpg = tpg_instances[i].tpg;
        mutex_unlock(&tpg_instances_lock);