On Tue, 24 Jan 2012, Nikolai Zhubr wrote: > Hello Alan, > 24.01.2012 19:45, Alan Stern: > [trim] > > Does this mean that the hardware has only one FIFO? Or only one for > > each direction? That's a pretty limited design. > > Well EPs do have separate FIFOs, at least that's how the driver see it, > but it looks like they are somehow not fully independent actually. > > [trim] > > It's even possible that the host will want to receive one packet from > > one endpoint (presumably the FIFO can hold more than one packet's > > worth?) followed by one packet from another endpoint. Judging by your > > description, it is impossible for the device to fulfill such requests. > > > > You will simply have to live with mismatches. There's nothing wrong > > them, so long as the device responds to a mismatch with NAK. > > Ok, so you mean that it would be correct to just allow mismatches happen > as much as they will and consider handling them (that is, resubmitting > data) as a normal workflow? I don't know how this controller works. But there's no way to avoid mismatches, so you have to let them happen. And if the device can't send any data for the endpoint the host wants, the device has to send a NAK. It's not clear why mismatches should count as errors (i.e., cause interrupts). They aren't, as far as I can see. And it's not clear why any sort of resubmission should be necessary, either. Just wait for the host to get around to asking for the data that the device is currently primed to send. 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