From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Agner Date: Fri, 06 May 2016 10:11:22 -0700 Subject: [U-Boot] [PATCH] usb: ehci-mx6: allow board_ehci_hcd_init to fail In-Reply-To: <572CC6A9.8030907@denx.de> References: <1462492752-27815-1-git-send-email-stefan@agner.ch> <572BE7A8.3000902@denx.de> <69a96c4077bc1f3b6001296149040e20@agner.ch> <572CC6A9.8030907@denx.de> Message-ID: <21ca9946c64d3598b94d461fcaeee736@agner.ch> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 2016-05-06 09:30, Marek Vasut wrote: > On 05/06/2016 06:12 PM, Stefan Agner wrote: >> 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 >>>> --- >>>> 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... > > Siiiiiiigh! All right, that sucks and we absolutely have no time for > reworking the whole clock framework on imx for this release. You want > this stuff in for this release, right ? Wasn't that urgent as the board which will use this is not upstream yet anyway... But still, nice to have it in. Btw, I really like the new 2 month release cycle. -- Stefan