MAINLINE usb: dfu: add static alt num count in dfu_config_entities()
authorPrzemyslaw Marczak <p.marczak@samsung.com>
Fri, 7 Feb 2014 11:00:48 +0000 (12:00 +0100)
committerLukasz Majewski <l.majewski@samsung.com>
Mon, 10 Mar 2014 09:14:00 +0000 (10:14 +0100)
Thanks to this multiple call of function dfu_config_entities() give continuous
dfu alt numbering until call dfu_free_entities().

This allows to store dfu entities in multiple variables.

Change-Id: Ibca7e785bfca9f53b64d3dff0490185b06841b54
Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
drivers/dfu/dfu.c

index 07011e9..c8c2137 100644 (file)
@@ -19,6 +19,7 @@
 static bool dfu_reset_request;
 static LIST_HEAD(dfu_list);
 static int dfu_alt_num;
+static int alt_num_count;
 
 bool dfu_reset(void)
 {
@@ -377,6 +378,8 @@ void dfu_free_entities(void)
        if (t)
                free(t);
        INIT_LIST_HEAD(&dfu_list);
+
+       alt_num_count = 0;
 }
 
 int dfu_config_entities(char *env, char *interface, int num)
@@ -394,11 +397,12 @@ int dfu_config_entities(char *env, char *interface, int num)
        for (i = 0; i < dfu_alt_num; i++) {
 
                s = strsep(&env, ";");
-               ret = dfu_fill_entity(&dfu[i], s, i, interface, num);
+               ret = dfu_fill_entity(&dfu[i], s, alt_num_count, interface, num);
                if (ret)
                        return -1;
 
                list_add_tail(&dfu[i].list, &dfu_list);
+               alt_num_count++;
        }
 
        return 0;