[U-Boot] [PATCH 3/4] dfu: Find DFU alt setting number by passing its name

Lukasz Majewski
2013-09-10T13:29:24Z

New function - dfu_get_alt() has been added to dfu core. If proper
alt setting is present, this function returns its number
corresponding to passed name.

Change-Id: Icd75f3aa3a6f6e306c77b28cabe620e4e6a253ea
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
---
drivers/dfu/dfu.c | 12 ++++++++++++
include/dfu.h | 1 +
2 files changed, 13 insertions(+)

diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c
index 2f1e2af..180d083 100644
--- a/drivers/dfu/dfu.c
+++ b/drivers/dfu/dfu.c
@@ -414,3 +414,15 @@ struct dfu_entity *dfu_get_entity(int alt)

return NULL;
}
+
+int dfu_get_alt(const char *name)
+{
+ struct dfu_entity *dfu;
+
+ list_for_each_entry(dfu, &dfu_list, list) {
+ if (!strncmp(dfu->name, name, strlen(dfu->name)))
+ return dfu->alt;
+ }
+
+ return -ENODEV;
+}
diff --git a/include/dfu.h b/include/dfu.h
index 7779710..8838f9c 100644
--- a/include/dfu.h
+++ b/include/dfu.h
@@ -112,6 +112,7 @@ const char *dfu_get_layout(enum dfu_layout l);
struct dfu_entity *dfu_get_entity(int alt);
char *dfu_extract_token(char** e, int *n);
void dfu_trigger_reset(void);
+int dfu_get_alt(const char *name);
bool dfu_reset(void);

int dfu_read(struct dfu_entity *de, void *buf, int size, int blk_seq_num);
--
1.7.10.4