Skip to content
Snippets Groups Projects
Commit ad5f9778 authored by Heiko Schocher's avatar Heiko Schocher Committed by Marek Vasut
Browse files

usb, dfu gadget: switch to dfu mode in dfu_bind

- set in to_dfu_mode() f_dfu->dfu_state = DFU_STATE_dfuIDLE
  as after every to_dfu_mode call this is done, so move
  this into to_dfu_mode
- switch in dfu_bind() into dfu mode:
  This fixes wrong "dfu-util -l" output, when calling
  "dfu-util -l" after a board reset, without doing a
  download before. See also discussion here:

http://lists.denx.de/pipermail/u-boot/2013-June/157272.html



Signed-off-by: default avatarHeiko Schocher <hs@denx.de>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
Cc: Tom Rini <trini@ti.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Marek Vasut <marex@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
Cc: Samuel Egli <samuel.egli@siemens.com>
Acked-by: default avatarLukasz Majewski <l.majewski@samsung.com>
Tested-by: default avatarLukasz Majewski <l.majewski@samsung.com>
parent 12595e99
No related branches found
No related tags found
No related merge requests found
...@@ -183,6 +183,7 @@ static inline void to_dfu_mode(struct f_dfu *f_dfu) ...@@ -183,6 +183,7 @@ static inline void to_dfu_mode(struct f_dfu *f_dfu)
{ {
f_dfu->usb_function.strings = dfu_strings; f_dfu->usb_function.strings = dfu_strings;
f_dfu->usb_function.hs_descriptors = f_dfu->function; f_dfu->usb_function.hs_descriptors = f_dfu->function;
f_dfu->dfu_state = DFU_STATE_dfuIDLE;
} }
static inline void to_runtime_mode(struct f_dfu *f_dfu) static inline void to_runtime_mode(struct f_dfu *f_dfu)
...@@ -233,7 +234,6 @@ static int state_app_idle(struct f_dfu *f_dfu, ...@@ -233,7 +234,6 @@ static int state_app_idle(struct f_dfu *f_dfu,
case USB_REQ_DFU_DETACH: case USB_REQ_DFU_DETACH:
f_dfu->dfu_state = DFU_STATE_appDETACH; f_dfu->dfu_state = DFU_STATE_appDETACH;
to_dfu_mode(f_dfu); to_dfu_mode(f_dfu);
f_dfu->dfu_state = DFU_STATE_dfuIDLE;
value = RET_ZLP; value = RET_ZLP;
break; break;
default: default:
...@@ -653,6 +653,8 @@ static int dfu_bind(struct usb_configuration *c, struct usb_function *f) ...@@ -653,6 +653,8 @@ static int dfu_bind(struct usb_configuration *c, struct usb_function *f)
->iInterface = id; ->iInterface = id;
} }
to_dfu_mode(f_dfu);
stringtab_dfu.strings = f_dfu->strings; stringtab_dfu.strings = f_dfu->strings;
cdev->req->context = f_dfu; cdev->req->context = f_dfu;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment