On 11/29/2017 08:49 PM, Chris Brandt wrote:
> It is better to use an existing wait loop implementation.
> 
> Signed-off-by: Chris Brandt <chris.bra...@renesas.com>

Applied, thanks

> ---
> v2:
>  * return -ETIMEDOUT instead of -1
> ---
>  drivers/usb/host/r8a66597-hcd.c | 13 +++++--------
>  1 file changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c
> index 28d2bc8454..e0ca2cb0d4 100644
> --- a/drivers/usb/host/r8a66597-hcd.c
> +++ b/drivers/usb/host/r8a66597-hcd.c
> @@ -10,6 +10,7 @@
>  #include <console.h>
>  #include <usb.h>
>  #include <asm/io.h>
> +#include <linux/iopoll.h>
>  
>  #include "r8a66597.h"
>  
> @@ -297,7 +298,6 @@ static int send_setup_packet(struct r8a66597 *r8a66597, 
> struct usb_device *dev,
>       int timeout = 3000;
>  #if defined(CONFIG_RZA_USB)
>       u16 dcpctr;
> -     int timeout2 = 10000;
>  #endif
>       u16 devsel = setup->request == USB_REQ_SET_ADDRESS ? 0 : dev->devnum;
>  
> @@ -308,13 +308,10 @@ static int send_setup_packet(struct r8a66597 *r8a66597, 
> struct usb_device *dev,
>  #if defined(CONFIG_RZA_USB)
>       dcpctr = r8a66597_read(r8a66597, DCPCTR);
>       if ((dcpctr & PID) == PID_BUF) {
> -             timeout2 = 10000;
> -             while (!(dcpctr & BSTS)) {
> -                     dcpctr = r8a66597_read(r8a66597, DCPCTR);
> -                     if (timeout2-- < 0) {
> -                             printf("DCPCTR clear timeout!\n");
> -                             break;
> -                     }
> +             if (readw_poll_timeout(r8a66597->reg + DCPCTR, dcpctr,
> +                                    dcpctr & BSTS, 1000) < 0) {
> +                     printf("DCPCTR BSTS timeout!\n");
> +                     return -ETIMEDOUT;
>               }
>       }
>  #endif
> 


-- 
Best regards,
Marek Vasut
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to