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