On Sunday, September 25, 2011 07:25:08 PM Jana Rapava wrote: > Add callback to ehci_fixup to prepare > for solving the problem with VBUS reset on Efika. > > Signed-off-by: Jana Rapava <ferma...@gmail.com> > Cc: Marek Vasut <marek.va...@gmail.com> > Cc: Remy Bohmer <li...@bohmer.net> > Cc: Stefano Babic <sba...@denx.de> > --- > Changes for v2: > - changed to proper patch > Changes for v3: > - merged other USB patches from u-boot-pxa/efikasb > - offset-based access changed to struct-based access > - use {clrset,clr,set}bits_le32() calls > - CodingStyle and naming cleanup > Changes for v4: > - split into patchset > - add callback ehci_fixup > > drivers/usb/host/ehci-hcd.c | 12 ++++++++++-- > 1 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c > index bdadd46..8d31921 100644 > --- a/drivers/usb/host/ehci-hcd.c > +++ b/drivers/usb/host/ehci-hcd.c > @@ -26,6 +26,7 @@ > #include <asm/io.h> > #include <malloc.h> > #include <watchdog.h> > +#include <usb/ehci-fsl.h> > > #include <usb/ehci.h> > > @@ -536,6 +537,14 @@ static inline int min3(int a, int b, int c) > return a; > } > > +inline void __ehci_fixup(uint32_t *status_reg, uint32_t *reg_ref) > +{ > + wait_ms(50); > +} > + > +void ehci_fixup(uint32_t *status_reg, uint32_t *reg_ref) > + __attribute__((weak, alias("__ehci_fixup"))); > + > int > ehci_submit_root(struct usb_device *dev, unsigned long pipe, void *buffer, > int length, struct devrequest *req) > @@ -709,8 +718,7 @@ ehci_submit_root(struct usb_device *dev, unsigned long > pipe, void *buffer, * usb 2.0 specification say 50 ms resets on > * root > */ > - wait_ms(50); > - /* terminate the reset */ > + ehci_fixup(status_reg, ®); > ehci_writel(status_reg, reg & ~EHCI_PS_PR); > /* > * A host controller must terminate the reset
Dear Jana Rapava, please document this properly and don't drop comments. Cheers _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot