On Tue, 4 Jan 2011, Nitin Arora wrote: > Hello, > > I am trying to stream audio from usb audio device to my embedded host > through USB 2.0. > My host system is arm based . > device is configured as audio device and using USB Audio class driver > in Isochronous mode. > > Every thing is working fine but suddenly while audio is being streamed > we get an USB error > EOVERFLOW and host controller doesn't detect the device any more. > I have checked the "Current Connect Status" bit (bit-0) in PORTSC > register according to EHCI specification. > Its value is 0. > Which means that after EOVERFLOW error occurs connection is broken > either from device side or host side. > > I observed USB analyser traces, it shows a failed USB transaction > wherein it shows a packet of size > 1042 arriving from device to Host whereas the max packet size in > isochronous mode is 1024 > (Most probable reason for overflow). > > I am a beginer in USB and my question is that > > 1. Where should this error be handled, At host controller (h/w) level, > HCD level, USB Protocol Level or device firmware . It should be handled at all those levels. The host controller should recognize that it received a packet that was too long, the HCD should recognize that the transaction failed, the protocol specifies that the transaction should not be retried, and the firmware should avoid generating those bad packets in the first place. > 2. What type of error it is h/w, s/w. Either the device's hardware or the device's firmware. Not an error in the host. > 3. I tried to ignore overflow error for that particular micro frame > and keep on processing successive uframes > but because the "current connect status" is already 0 > (disconnected). No use of doing that. That isn't a question. > Please suggest me how can I prevent or recover from this error at > software level. You have to fix the device's hardware or firmware. Changing the host won't help. Alan Stern -- 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