From 801f1fa44275e274e33bdfc7fb76535cc6118d61 Mon Sep 17 00:00:00 2001 From: Jean-Jacques Hiblot Date: Sat, 15 Dec 2018 17:43:27 +0100 Subject: [PATCH] dm: usb: udc: Use SEQ_ALIAS to index the USB gadget ports dfu, fastbot and other usb gadget commands take the USB port index as a parameter. Currently this index is assigned in the order of the driver bindings. Changing this behavior using the SEQ_ALIAS feature. This option assign to the device a SEQ number based on its alias (if it exists) To use it we must set the DM_UC_FLAG_SEQ_ALIAS flag and follow the existing naming convention: use "usb" for the name of the gadget UCLASS_DRIVER (same as for the UCLASS_USB). If no alias is provided, then the index falls back to the order in which the bindings took place. Signed-off-by: Jean-Jacques Hiblot Reported-by: Sam Protsenko Reviewed-by: Sam Protsenko Tested-by: Sam Protsenko --- drivers/usb/gadget/udc/udc-uclass.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/usb/gadget/udc/udc-uclass.c b/drivers/usb/gadget/udc/udc-uclass.c index 062051857a..e9f8f5f246 100644 --- a/drivers/usb/gadget/udc/udc-uclass.c +++ b/drivers/usb/gadget/udc/udc-uclass.c @@ -20,7 +20,7 @@ int usb_gadget_initialize(int index) return -EINVAL; if (dev_array[index]) return 0; - ret = uclass_get_device(UCLASS_USB_GADGET_GENERIC, index, &dev); + ret = uclass_get_device_by_seq(UCLASS_USB_GADGET_GENERIC, index, &dev); if (!dev || ret) { pr_err("No USB device found\n"); return -ENODEV; @@ -54,5 +54,6 @@ int usb_gadget_handle_interrupts(int index) UCLASS_DRIVER(usb_gadget_generic) = { .id = UCLASS_USB_GADGET_GENERIC, - .name = "usb_gadget_generic", + .name = "usb", + .flags = DM_UC_FLAG_SEQ_ALIAS, };