[U-Boot] [PATCH] usb: ehci-mx6: allow board_ehci_hcd_init to fail

Stefan Agner stefan at agner.ch
Fri May 6 18:12:57 CEST 2016


On 2016-05-05 17:39, Marek Vasut wrote:
> On 05/06/2016 01:59 AM, Stefan Agner wrote:
>> There could be runtime determined board specific reason why a EHCI
>> initialization fails (e.g. ENODEV if a Port is not available). In
>> this case, properly return the error code.
>> While at it, that function (board_ehci_hcd_init) has actually two
>> documentation blocks... Use the correct function name for the
>> documentation block of board_usb_phy_mode.
>>
>> Signed-off-by: Stefan Agner <stefan at agner.ch>
>> ---
>>  drivers/usb/host/ehci-mx6.c | 7 +++++--
>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/usb/host/ehci-mx6.c b/drivers/usb/host/ehci-mx6.c
>> index a981b50..bb48d0d 100644
>> --- a/drivers/usb/host/ehci-mx6.c
>> +++ b/drivers/usb/host/ehci-mx6.c
>> @@ -254,7 +254,7 @@ static void usb_oc_config(int index)
>>  }
>>
>>  /**
>> - * board_ehci_hcd_init - override usb phy mode
>> + * board_usb_phy_mode - override usb phy mode
>>   * @port:	usb host/otg port
>>   *
>>   * Target board specific, override usb_phy_mode.
>> @@ -310,6 +310,7 @@ int ehci_hcd_init(int index, enum usb_init_type init,
>>  #endif
>>  	struct usb_ehci *ehci = (struct usb_ehci *)(USB_BASE_ADDR +
>>  		(controller_spacing * index));
>> +	int ret;
>>
>>  	if (index > 3)
>>  		return -EINVAL;
>> @@ -317,7 +318,9 @@ int ehci_hcd_init(int index, enum usb_init_type init,
>>  	mdelay(1);
>>
>>  	/* Do board specific initialization */
>> -	board_ehci_hcd_init(index);
>> +	ret = board_ehci_hcd_init(index);
>> +	if (ret)
>> +		return ret;
> 
> Shouldn't this disable the OH3 clock , which were enabled a few lines above?

Hm, not sure, the clock does not take a controller index... I guess if
the second instance is returning an error, that would disable the clock
also for the first controller...

--
Stefan

> 
> Otherwise this is nice, thanks.
> 
>>  	usb_power_config(index);
>>  	usb_oc_config(index);
>>


More information about the U-Boot mailing list