usb: Assign new functions to legacy gadget 11/172911/5
authorPaweł Szewczyk <p.szewczyk@samsung.com>
Thu, 15 Mar 2018 17:51:51 +0000 (18:51 +0100)
committerPaweł Szewczyk <p.szewczyk@samsung.com>
Thu, 22 Mar 2018 10:19:10 +0000 (11:19 +0100)
Change-Id: I86df0d0db29813781c8b49dc111f726b24b82041
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
hw/usb_client/usb_client.c

index 824e562..0f1effe 100644 (file)
@@ -278,6 +278,7 @@ static int legacy_read_config(struct usb_gadget *gadget,
        char *sep = LEGACY_FUNC_SEP;
        int i, f_cnt;
        int f_idx;
+       int g_f_idx;
        int ret;
 
        ret = sys_get_str(cpath, buf, sizeof(buf));
@@ -301,6 +302,8 @@ static int legacy_read_config(struct usb_gadget *gadget,
        if (ret)
                return ret;
 
+       for (g_f_idx = 0; gadget->funcs[g_f_idx]; ++g_f_idx);
+
        f_idx = 0;
        for (fname = strsep(&begin, sep); fname; fname = strsep(&begin, sep)) {
                struct usb_function *func;
@@ -311,6 +314,8 @@ static int legacy_read_config(struct usb_gadget *gadget,
                        ret = legacy_alloc_new_func(gadget, fname, &func);
                        if (ret)
                                goto free_config;
+
+                       gadget->funcs[g_f_idx++] = func;
                }
 
                config->funcs[f_idx++] = func;