On Wednesday 17 December 2008, Michael Trimarchi wrote:
> USB ehci code cleanup. Use handshake instead of infinite while loop
> to check the STD_ASS status
>
> Signed-off-by: Michael Trimarchi <trimarchimich...@yahoo.it>
>
> ---
>  drivers/usb/usb_ehci_core.c |   53
> ++++++++++++++++++++++--------------------- 1 files changed, 27
> insertions(+), 26 deletions(-)
>
> diff --git a/drivers/usb/usb_ehci_core.c b/drivers/usb/usb_ehci_core.c
> index 07e9a6b..21fd7d0 100644
> --- a/drivers/usb/usb_ehci_core.c
> +++ b/drivers/usb/usb_ehci_core.c
> @@ -28,7 +28,7 @@
>  #include "usb_ehci.h"
>
>  int rootdev;
> -struct ehci_hccr *hccr;              /* R/O registers, not need for volatile 
> */
> +struct ehci_hccr *hccr;      /* R/O registers, not need for volatile */
>  volatile struct ehci_hcor *hcor;
>
>  static uint16_t portreset;
> @@ -106,20 +106,19 @@ static struct descriptor {
>  #define ehci_is_TDI()        (0)
>  #endif
>
> -static int handshake(uint32_t *ptr, uint32_t mask, uint32_t done, int
> msec) +static int handshake(uint32_t *ptr, uint32_t mask, uint32_t done,
> int usec) {
>       uint32_t result;
>       do {
>               result = ehci_readl(ptr);
> -             debug("handshake read reg(%x)=%x\n", (uint32_t)ptr, result);
>               if (result == ~(uint32_t)0)
>                       return -1;
>               result &= mask;
>               if (result == done)
>                       return 0;
> -             wait_ms(1);
> -             msec--;
> -     } while (msec > 0);
> +             udelay(1);
> +             usec--;
> +     } while (usec > 0);
>       return -1;
>  }
>
> @@ -138,21 +137,21 @@ static int ehci_reset(void)
>       cmd = ehci_readl(&hcor->or_usbcmd);
>       cmd |= CMD_RESET;
>       ehci_writel(&hcor->or_usbcmd, cmd);
> -     ret = handshake((uint32_t *)&hcor->or_usbcmd, CMD_RESET, 0, 250);
> +     ret = handshake((uint32_t *)&hcor->or_usbcmd, CMD_RESET, 0, 250 * 1000);
>       if (ret < 0) {
>               printf("EHCI fail to reset\n");
>               goto out;
>       }
>
> -#if defined(CONFIG_EHCI_IS_TDI)
> -     reg_ptr = (uint32_t *)((u8 *)hcor + USBMODE);
> -     tmp = ehci_readl(reg_ptr);
> -     tmp |= USBMODE_CM_HC;
> -#if defined(CONFIG_EHCI_MMIO_BIG_ENDIAN)
> -     tmp |= USBMODE_BE;
> -#endif
> -     ehci_writel(reg_ptr, tmp);
> -#endif
> +     if (ehci_is_TDI()) {
> +             reg_ptr = (uint32_t *)((u8 *)hcor + USBMODE);
> +             tmp = ehci_readl(reg_ptr);
> +             tmp |= USBMODE_CM_HC;
> +             #if defined(CONFIG_EHCI_MMIO_BIG_ENDIAN)

I prefer that the "#if" stays in column 0. 

> +                     tmp |= USBMODE_BE;

Indentation problem.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: off...@denx.de
=====================================================================
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to