From: Przemyslaw Marczak Date: Fri, 28 Feb 2014 17:53:37 +0000 (+0100) Subject: usb: dfu: add static alt num count in dfu_config_entities() X-Git-Tag: v2014.04~25^2~4^2 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=b627eb461bb281a00b543e72e74edc197b5f7b5e;p=oweals%2Fu-boot.git usb: dfu: add static alt num count in dfu_config_entities() 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 Acked-by: Ɓukasz Majewski Tested-by: Heiko Schocher Signed-off-by: Minkyu Kang --- diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c index 07011e99a8..56e69fd231 100644 --- a/drivers/dfu/dfu.c +++ b/drivers/dfu/dfu.c @@ -19,6 +19,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) { @@ -377,6 +378,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) @@ -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_cnt, interface, num); if (ret) return -1; list_add_tail(&dfu[i].list, &dfu_list); + alt_num_cnt++; } return 0;