diff mbox series

[U-Boot] usb: udc-uclass: Fixed problem when no alias is defined in DT

Message ID 20190124144453.15973-1-jjhiblot@ti.com
State Accepted
Commit e81d9de531fb4c7f14344736bd7568c954e64e14
Delegated to: Lukasz Majewski
Headers show
Series [U-Boot] usb: udc-uclass: Fixed problem when no alias is defined in DT | expand

Commit Message

Jean-Jacques Hiblot Jan. 24, 2019, 2:44 p.m. UTC
commit 801f1fa442 "dm: usb: udc: Use SEQ_ALIAS to index the USB gadget
ports" changed the way the udevice if found. It uses the alias to find
a udevice for a given USB port number. In the commit log it was stated
that if no alias is provided, the bind order will be used instead. However
it doesn't work. Fixing this by adding a call to uclass_get_device() if
uclass_get_device_by_seq() fails.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
---
 drivers/usb/gadget/udc/udc-uclass.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

Comments

Raghavendra, Vignesh Feb. 26, 2019, 9:37 a.m. UTC | #1
Hi Lukasz,

On 24/01/19 8:14 PM, Jean-Jacques Hiblot wrote:
> commit 801f1fa442 "dm: usb: udc: Use SEQ_ALIAS to index the USB gadget
> ports" changed the way the udevice if found. It uses the alias to find
> a udevice for a given USB port number. In the commit log it was stated
> that if no alias is provided, the bind order will be used instead. However
> it doesn't work. Fixing this by adding a call to uclass_get_device() if
> uclass_get_device_by_seq() fails.
> 
> Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
> ---

This fixes DFU gadget failing to find USB device on DRA7xx/AM57xx
platforms. Since, this patch fixes a regression, could this be picked up
for next -rc?

Tested-by: Vignesh R <vigneshr@ti.com>

>  drivers/usb/gadget/udc/udc-uclass.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/gadget/udc/udc-uclass.c b/drivers/usb/gadget/udc/udc-uclass.c
> index 8d7864797a..3053ccf7d9 100644
> --- a/drivers/usb/gadget/udc/udc-uclass.c
> +++ b/drivers/usb/gadget/udc/udc-uclass.c
> @@ -23,8 +23,11 @@ int usb_gadget_initialize(int index)
>  		return 0;
>  	ret = uclass_get_device_by_seq(UCLASS_USB_GADGET_GENERIC, index, &dev);
>  	if (!dev || ret) {
> -		pr_err("No USB device found\n");
> -		return -ENODEV;
> +		ret = uclass_get_device(UCLASS_USB_GADGET_GENERIC, index, &dev);
> +		if (!dev || ret) {
> +			pr_err("No USB device found\n");
> +			return -ENODEV;
> +		}
>  	}
>  	dev_array[index] = dev;
>  	return 0;
>
Lukasz Majewski Feb. 26, 2019, 10:15 a.m. UTC | #2
Hi Vignesh,

> Hi Lukasz,
> 
> On 24/01/19 8:14 PM, Jean-Jacques Hiblot wrote:
> > commit 801f1fa442 "dm: usb: udc: Use SEQ_ALIAS to index the USB
> > gadget ports" changed the way the udevice if found. It uses the
> > alias to find a udevice for a given USB port number. In the commit
> > log it was stated that if no alias is provided, the bind order will
> > be used instead. However it doesn't work. Fixing this by adding a
> > call to uclass_get_device() if uclass_get_device_by_seq() fails.
> > 
> > Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
> > ---  
> 
> This fixes DFU gadget failing to find USB device on DRA7xx/AM57xx
> platforms. Since, this patch fixes a regression, could this be picked
> up for next -rc?

Yes, I will pick it up. Sorry for delay.

> 
> Tested-by: Vignesh R <vigneshr@ti.com>
> 
> >  drivers/usb/gadget/udc/udc-uclass.c | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/usb/gadget/udc/udc-uclass.c
> > b/drivers/usb/gadget/udc/udc-uclass.c index 8d7864797a..3053ccf7d9
> > 100644 --- a/drivers/usb/gadget/udc/udc-uclass.c
> > +++ b/drivers/usb/gadget/udc/udc-uclass.c
> > @@ -23,8 +23,11 @@ int usb_gadget_initialize(int index)
> >  		return 0;
> >  	ret = uclass_get_device_by_seq(UCLASS_USB_GADGET_GENERIC,
> > index, &dev); if (!dev || ret) {
> > -		pr_err("No USB device found\n");
> > -		return -ENODEV;
> > +		ret = uclass_get_device(UCLASS_USB_GADGET_GENERIC,
> > index, &dev);
> > +		if (!dev || ret) {
> > +			pr_err("No USB device found\n");
> > +			return -ENODEV;
> > +		}
> >  	}
> >  	dev_array[index] = dev;
> >  	return 0;
> >   
> 




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
diff mbox series

Patch

diff --git a/drivers/usb/gadget/udc/udc-uclass.c b/drivers/usb/gadget/udc/udc-uclass.c
index 8d7864797a..3053ccf7d9 100644
--- a/drivers/usb/gadget/udc/udc-uclass.c
+++ b/drivers/usb/gadget/udc/udc-uclass.c
@@ -23,8 +23,11 @@  int usb_gadget_initialize(int index)
 		return 0;
 	ret = uclass_get_device_by_seq(UCLASS_USB_GADGET_GENERIC, index, &dev);
 	if (!dev || ret) {
-		pr_err("No USB device found\n");
-		return -ENODEV;
+		ret = uclass_get_device(UCLASS_USB_GADGET_GENERIC, index, &dev);
+		if (!dev || ret) {
+			pr_err("No USB device found\n");
+			return -ENODEV;
+		}
 	}
 	dev_array[index] = dev;
 	return 0;