[U-Boot] [PATCH] usb: ehci-mx5: Fix bus enumeration for DM case

Lukasz Majewski lukma at denx.de
Wed Feb 26 10:16:28 CET 2020


Dear Marek,

> On 2/24/20 4:28 PM, Lukasz Majewski wrote:
> > Hi Marek,  
> 
> Hi,
> 
> >> On Thu, 20 Jun 2019 22:53:58 +0200
> >> Marek Vasut <marex at denx.de> wrote:
> >>  
> >>> It is likely that the DM conversion of EHCI iMX5 driver was a
> >>> derivative of EHCI VF, however the conversion is incomplete and is
> >>> missing the bind workaround, which updates dev->seq number.
> >>> Without this, all controllers have dev->seq number 0 . Add this
> >>> bind workaround into EHCI iMX5 driver as well.
> >>>
> >>> Signed-off-by: Marek Vasut <marex at denx.de>
> >>> Cc: Abel Vesa <abel.vesa at nxp.com>
> >>> Cc: Adam Ford <aford173 at gmail.com>
> >>> Cc: Fabio Estevam <festevam at gmail.com>
> >>> Cc: Ludwig Zenz <lzenz at dh-electronics.com>
> >>> Cc: Peng Fan <peng.fan at nxp.com>
> >>> Cc: Stefano Babic <sbabic at denx.de>
> >>> Cc: Vagrant Cascadian <vagrant at debian.org>
> >>> ---
> >>>  drivers/usb/host/ehci-mx5.c | 17 +++++++++++++++++
> >>>  1 file changed, 17 insertions(+)
> >>>
> >>> diff --git a/drivers/usb/host/ehci-mx5.c
> >>> b/drivers/usb/host/ehci-mx5.c index 0b32728c57..4db513f4e5 100644
> >>> --- a/drivers/usb/host/ehci-mx5.c
> >>> +++ b/drivers/usb/host/ehci-mx5.c
> >>> @@ -301,6 +301,22 @@ static int ehci_usb_ofdata_to_platdata(struct
> >>> udevice *dev) return 0;
> >>>  }
> >>>  
> >>> +static int ehci_usb_bind(struct udevice *dev)
> >>> +{
> >>> +	static int num_controllers;
> >>> +
> >>> +	/*
> >>> +	 * Without this hack, if we return ENODEV for USB
> >>> Controller 0, on
> >>> +	 * probe for the next controller, USB Controller 1 will
> >>> be given a
> >>> +	 * sequence number of 0. This conflicts with our
> >>> requirement of
> >>> +	 * sequence numbers while initialising the peripherals.
> >>> +	 */
> >>> +	dev->req_seq = num_controllers;
> >>> +	num_controllers++;
> >>> +
> >>> +	return 0;
> >>> +}
> >>> +
> >>>  static int ehci_usb_probe(struct udevice *dev)
> >>>  {
> >>>  	struct usb_platdata *plat = dev_get_platdata(dev);
> >>> @@ -362,6 +378,7 @@ U_BOOT_DRIVER(usb_mx5) = {
> >>>  	.id	= UCLASS_USB,
> >>>  	.of_match = mx5_usb_ids,
> >>>  	.ofdata_to_platdata = ehci_usb_ofdata_to_platdata,
> >>> +	.bind	= ehci_usb_bind,
> >>>  	.probe	= ehci_usb_probe,
> >>>  	.remove = ehci_deregister,
> >>>  	.ops	= &ehci_usb_ops,    
> >>
> >> Tested-by: Lukasz Majewski <lukma at denx.de>
> >>
> >> Tested on HSC|DDC i.MX53 board (usb start works as previously).
> >>  
> > 
> > Gentle ping on this patch :-)  
> 
> I think this approach doesn't work, 
> there was a discussion about this
> under a patch like this for ehci-mx6.c . Take a look at the patches
> for the ehci-mx6.c in mainline and replicate the approach

The code for ehci-mx5 DM/DTS conversion was based on ehci-mx6. There is
a patch developed by you - SHA1:
501547cec1f7f0438cae388a104ff60f18576c01 which provides a partial DT
conversion. 

On top of that is another patch - SHA1:
1198a104d37b10064cd90f36d472787d549eda02 developed by Igor, which adds
even more hacks for i.MX7.

That is what we do have now in-tree for iMX6/iMX7.



Since the last ping for this patch (6+ months) we do have a regression
(just not usable USB) for some iMX53 boards. This patch fixes them.

Why are you reluctant to accept the fix? It is similar to what was
added for iMX7.

> , or even
> better, solve the TODO there altogether.

Please correct me if I did not understood you correctly:

To fix regression on i.MX53 boards (with applying this patch) you do
recommend to look for out of tree patches for i.MX6/i.MX7 and solve the
TODO for i.MX6/i.MX7?


> 
> [...]




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 at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200226/2550f1cb/attachment.sig>


More information about the U-Boot mailing list