usb: dfu: add static alt num count in dfu_config_entities()
authorPrzemyslaw Marczak <p.marczak@samsung.com>
Fri, 28 Feb 2014 17:53:37 +0000 (18:53 +0100)
committerChanho Park <chanho61.park@samsung.com>
Fri, 24 Jul 2015 07:29:52 +0000 (16:29 +0900)
Thanks to this multiple call of function dfu_config_entities()
gives continuous dfu alt numbering until call dfu_free_entities().

This allows to store dfu entities in multiple variables.

Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
Acked-by: Ɓukasz Majewski <l.majewski@samsung.com>
Tested-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
drivers/dfu/dfu.c

index 9ed66be697dd93d18e9711e4c2e95227ad3566aa..8f52f0dd9407371b64354e89435671635ddd0910 100644 (file)
@@ -31,6 +31,7 @@
 static bool dfu_reset_request;
 static LIST_HEAD(dfu_list);
 static int dfu_alt_num;
+static int alt_num_cnt;
 
 bool dfu_reset(void)
 {
@@ -389,6 +390,8 @@ void dfu_free_entities(void)
        if (t)
                free(t);
        INIT_LIST_HEAD(&dfu_list);
+
+       alt_num_cnt = 0;
 }
 
 int dfu_config_entities(char *env, char *interface, int num)
@@ -406,11 +409,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_cnt, interface, num);
                if (ret)
                        return -1;
 
                list_add_tail(&dfu[i].list, &dfu_list);
+               alt_num_cnt++;
        }
 
        return 0;