Hi On Tue, May 18, 2010 at 4:35 PM, Gupta, Ajay Kumar <ajay.gupta@xxxxxx> wrote: > Hi, >> -----Original Message----- >> From: Cliff Cai [mailto:cliffcai.sh@xxxxxxxxx] >> Sent: Tuesday, May 18, 2010 1:51 PM >> To: Gupta, Ajay Kumar >> Cc: Cai, Cliff; linux-usb@xxxxxxxxxxxxxxx; Mike Frysinger; Felipe Balbi; >> uclinux-dist-devel@xxxxxxxxxxxxxxxxxxxx >> Subject: Re: [Uclinux-dist-devel] [PATCH] USB: musb: set NAK limitation >> for control transfers >> >> On Tue, May 18, 2010 at 2:00 PM, Gupta, Ajay Kumar <ajay.gupta@xxxxxx> >> wrote: >> > Hi, >> >> > Dose this patch work for you? >> >> > I tried several different values,and >> >> > It seems that '8' work just fine. >> >> Yes, it works for me. >> >> >> >> I was just thinking of setting limit values based on device speed >> >> so that timeout value in terms of msec is same for all devices. >> >> For HS devices = 8, and for FS/LS devices = 5 for timeout of 16msec. >> >> >> >> - interval = 8; >> >> + interval = (USB_SPEED_HIGH == urb->dev->speed) ? 8 : 5; >> > >> > Another fix (I think a better one) is to disable PING on status phase >> > only, which is allowed as per USB specification. >> > >> > -------------- >> > diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c >> > index 83f482e..f1a3ca7 100644 >> > --- a/drivers/usb/musb/musb_host.c >> > +++ b/drivers/usb/musb/musb_host.c >> > @@ -1068,6 +1068,8 @@ irqreturn_t musb_h_ep0_irq(struct musb *musb) >> > else >> > csr = MUSB_CSR0_H_STATUSPKT >> > | MUSB_CSR0_TXPKTRDY; >> > + /* disable ping token in status phase */ >> > + csr |= MUSB_CSR0_H_DIS_PING; >> > >> > /* flag status stage */ >> > musb->ep0_stage = MUSB_EP0_STATUS; >> > -------------- >> >> >> I got endless massages: "musb_h_ep0_irq 1053: no URB for end 0" with this >> patch. > Then your device doesn't seem to have PING issue. I also noticed this error > message two times with your fix. Not really, our orignal patch also disables PING in some situation. see:http://thread.gmane.org/gmane.linux.hardware.blackfin.kernel.devel/1568/focus=1578 >> also I think disabling PING for all devices doesn't make sense. > > It's only for control endpoint and in status phase alone. > but not all the devices don't reponse to PING. Cliff >> while "interval = (USB_SPEED_HIGH == urb->dev->speed) ? 8 : 5;" >> works for me. > > I think this should be fine to go. > >> >> Thanks >> >> Cliff >> >> >> >> >> > >-----Original Message----- >> >> > >From: Mike Frysinger [mailto:vapier.adi@xxxxxxxxx] >> >> > >Sent: Sunday, May 16, 2010 8:47 AM >> >> > >To: Gupta, Ajay Kumar >> >> > >Cc: linux-usb@xxxxxxxxxxxxxxx; Felipe Balbi; >> >> > >uclinux-dist-devel@xxxxxxxxxxxxxxxxxxxx; Cai, Cliff >> >> > >Subject: Re: [Uclinux-dist-devel] [PATCH] USB: musb: set NAK >> >> > >limitation for control transfers >> >> > > >> >> > >On Fri, May 14, 2010 at 01:42, Gupta, Ajay Kumar wrote: >> >> > >>> Some bad-behaved peripherals (like cheap USB storage devices) >> need >> >> > >>> this in order to recover during configuration time. >> >> > >>> >> >> > >>> diff --git a/drivers/usb/musb/musb_host.c >> >> > >>> b/drivers/usb/musb/musb_host.c index 877d20b..e2667dc 100644 >> >> > >>> --- a/drivers/usb/musb/musb_host.c >> >> > >>> +++ b/drivers/usb/musb/musb_host.c >> >> > >>> @@ -1994,6 +1994,9 @@ static int musb_urb_enqueue( >> >> > >>> /* ISO always uses logarithmic encoding */ >> >> > >>> interval = min_t(u8, epd->bInterval, 16); >> >> > >>> break; >> >> > >>> + case USB_ENDPOINT_XFER_CONTROL: >> >> > >>> + interval = 8; >> >> > >> >> >> > >> Why '8'? Device could be high speed or FS/LS so it comes out to, >> HS >> >> > >> device: 2^7 uf = 128uf = 16 msec FS/LS device: 2^7 f = 128msec >> >> > > >> >> > >it's a value that seems to work in our tests. i'm pretty sure >> >> > >we arent tied to a specific value, so if you want to increase >> >> > >it, that's fine. Cliff can certainly correct me though. >> >> > > >> >> > >> Also, I have seen high speed bad behaved devices not responding to >> >> > >> PING tokens in status phase of control transfers. Are you >> >> > >also getting >> >> > >> this issue ? >> >> > > >> >> > >yes, we had PING problems, and we've posted other patches in >> >> > >the past for that, but this seems to be the most correct >> >> > >version so far. >> >> > > >> >> > >search for like blackfin+ping+musb on some lists if you're >> >> > >interested in the history. >> >> > >-mike >> >> > > >> >> -- >> >> To unsubscribe from this list: send the line "unsubscribe linux-usb" in >> >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > -- >> > To unsubscribe from this list: send the line "unsubscribe linux-usb" in >> > the body of a message to majordomo@xxxxxxxxxxxxxxx >> > More majordomo info at http://vger.kernel.org/majordomo-info.html >> > > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html