Refactoring config's string 87/228787/3
authorINSUN PYO <insun.pyo@samsung.com>
Wed, 25 Mar 2020 11:52:33 +0000 (20:52 +0900)
committerINSUN PYO <insun.pyo@samsung.com>
Thu, 26 Mar 2020 02:26:14 +0000 (02:26 +0000)
The usb gadget's config uses only one string information.
So instead of dynamically creating string information, only use one fixed.

Change-Id: Ie7e5bb198a429c8ac766002711f6add47d06fa1e

hw/usb_cfs_client_common.c
hw/usb_client_common.c
hw/usb_gadget.h
hw/usb_gadget_common.c

index db6b781..e9d4135 100644 (file)
@@ -400,8 +400,8 @@ static int cfs_set_gadget_config(struct cfs_client *cfs_client, int config_id, s
        if (ret)
                return ret;
 
-       for (i = 0; usb_config->strs && usb_config->strs[i].lang_code; ++i) {
-               ret = usbg_set_config_string(config, usb_config->strs[i].lang_code, usb_config->strs[i].config_str);
+       if (usb_config->strs.config_str) {
+               ret = usbg_set_config_string(config, usb_config->strs.lang_code, usb_config->strs.config_str);
                if (ret)
                        return ret;
        }
index f0e4e1f..3020cda 100644 (file)
@@ -92,9 +92,6 @@ static bool legacy_is_gadget_supported(struct usb_client *usb,
        for (j = 0; gadget->configs[j]; ++j) {
                struct usb_configuration *config = gadget->configs[j];
 
-               if (config->strs && config->strs[0].lang_code)
-                       return false;
-
                if (!config->funcs)
                        return false;
 
index 95ad859..4dd3be9 100644 (file)
@@ -103,7 +103,7 @@ struct usb_configuration_strings {
 
 struct usb_configuration {
        struct usb_configuration_attributes attrs;
-       struct usb_configuration_strings *strs;
+       struct usb_configuration_strings strs;
        struct usb_function **funcs;
 };
 
index 17393ec..c27d065 100644 (file)
@@ -34,17 +34,10 @@ static struct usb_function *_available_funcs[];
 
 static void simple_cleanup_config(struct usb_configuration *config)
 {
-       int i;
-
        if (!config)
                return;
 
-       if (config->strs) {
-               for (i = 0; config->strs[i].lang_code; ++i)
-                       free(config->strs[i].config_str);
-
-               free(config->strs);
-       }
+       free(config->strs.config_str);
 
        if (config->funcs)
                free(config->funcs);
@@ -82,23 +75,16 @@ static int alloc_default_config(struct usb_configuration **_config)
 
        config = calloc(1, sizeof(*config));
        if (!config)
-               goto out;
-
-       config->strs = calloc(1, sizeof(*config->strs));
-       if (!config->strs)
-               goto free_config;
+               return -ENOMEM;
 
        config->attrs.bmAttributs = DEFAULT_BMATTRIBUTES;
        config->attrs.MaxPower = DEFAULT_MAX_POWER;
 
+       /* TODO. Here is where to set the string used in config of configfs */
+
        *_config = config;
 
        return 0;
-
-free_config:
-       free(config);
-out:
-       return -ENOMEM;
 }
 
 static int get_device_serial(char **out)