Hi, On Tuesday 19 August 2014 02:23 PM, Lukasz Majewski wrote: > Hi Kishon, > >> Since there can be multiple USB controllers in the system, >> usb_gadget_handle_interrupts should take controller index as >> arguments. > > The controller index is passed in the ums/dfu/thor command. Then PHY > subsystem is properly configured. > Since we only handle one USB controller transmission at a time (u-boot > doesn't use interrupts - we only pool) the > usb_gadget_handle_interrupts() was enough for our purpose.
yeah, if we have only one USB controller in the system, controller index is not needed. -Kishon > > To start transmission from other usb controller you need to end current > transmission and then invoke modified command with different controller > number. > > It would be enough to extend > usb_gadget_handle_interrupts() to accept controller index argument > (only six boards use it - it shall be easy to modify them all). > >> However such an API can only be added in board file so >> added board_usb_gadget_handle_interrupts(). >> usb_gadget_handle_interrupts() should be deprecated. >> >> Signed-off-by: Kishon Vijay Abraham I <[email protected]> >> --- >> common/cmd_dfu.c | 1 + >> include/usb.h | 7 +++++++ >> 2 files changed, 8 insertions(+) >> >> diff --git a/common/cmd_dfu.c b/common/cmd_dfu.c >> index 1e7d50c..f27ba52 100644 >> --- a/common/cmd_dfu.c >> +++ b/common/cmd_dfu.c >> @@ -52,6 +52,7 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int >> argc, char * const argv[]) goto exit; >> >> usb_gadget_handle_interrupts(); >> + board_usb_gadget_handle_interrupts(controller_index); > > NAK, for the reason stated above. > >> } >> exit: >> g_dnl_unregister(); >> diff --git a/include/usb.h b/include/usb.h >> index d9fedee..26c6462 100644 >> --- a/include/usb.h >> +++ b/include/usb.h >> @@ -197,6 +197,13 @@ int board_usb_init(int index, enum usb_init_type >> init); */ >> int board_usb_cleanup(int index, enum usb_init_type init); >> >> +/* >> + * Can be use to handle interrupts from a specific controller. >> + * >> + * @index index of the USB controller >> + */ >> +int board_usb_gadget_handle_interrupts(int index); >> + >> #ifdef CONFIG_USB_STORAGE >> >> #define USB_MAX_STOR_DEV 5 > > > _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

