Messages in this thread | | | Date | Tue, 3 Jul 2012 12:14:10 +0530 | Subject | Re: [PATCH 1/1] usb: gadget: s3c-hsotg: fix core reset timeout failure | From | "ABRAHAM, KISHON VIJAY" <> |
| |
Hi,
On Tue, Jul 3, 2012 at 7:33 AM, Du, Changbin <changbin.du@gmail.com> wrote: > The timeout values were 1000 and timeout issue occured many times on my > s3c6410 Soc based board (mostly when booting whith USB cable not > connected). This patch increase the values to 10000 to guarantee the > success of reset. > > Having set timeout to 10000, I printed the remained timeout values > which can cause timeout issue before this change (tested several times): > the first timeout value remained: > timeout = 8079 > timeout = 8079 > timeout = 8078 > timeout = 8081 > the second timeout value remained: > timeout = 7940 > timeout = 7945 > timeout = 7940 > timeout = 7938 > Seeing from above values, I think 10000 is big enough. > > Signed-off-by: Du, Changbin <changbin.du@gmail.com> > --- > drivers/usb/gadget/s3c-hsotg.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c > index f4abb0e..f3e2234 100644 > --- a/drivers/usb/gadget/s3c-hsotg.c > +++ b/drivers/usb/gadget/s3c-hsotg.c > @@ -2215,7 +2215,7 @@ static int s3c_hsotg_corereset(struct s3c_hsotg > *hsotg) > /* issue soft reset */ > writel(GRSTCTL_CSftRst, hsotg->regs + GRSTCTL); > > - timeout = 1000; > + timeout = 10000; > do { > grstctl = readl(hsotg->regs + GRSTCTL); > } while ((grstctl & GRSTCTL_CSftRst) && timeout-- > 0);
how about msleep inside the loop?
Thanks Kishon
| |