On Tue, Feb 08, 2011 at 08:21:29PM +0300, Sergei Shtylyov wrote: > Hello. > > Sebastian Andrzej Siewior wrote: > >> The document says: >> |2.1 Problem description >> | When at least two USB devices are simultaneously running, it is observed that >> | sometimes the INT corresponding to one of the USB devices stops occurring. This may >> | be observed sometimes with USB-to-serial or USB-to-network devices. >> | The problem is not noticed when only USB mass storage devices are running. >> |2.2 Implication >> | This issue is because of the clearing of the respective Done Map bit on reading the ATL >> | PTD Done Map register when an INT is generated by another PTD completion, but is not >> | found set on that read access. In this situation, the respective Done Map bit will remain >> | reset and no further INT will be asserted so the data transfer corresponding to that USB >> | device will stop. >> |2.3 Workaround >> | An SOF INT can be used instead of an ATL INT with polling on Done bits. A time-out can >> | be implemented and if a certain Done bit is never set, verification of the PTD completion >> | can be done by reading PTD contents (valid bit). >> | This is a proven workaround implemented in software. > >> Russell King run into this with an USB-to-serial converter. This patch >> implements his suggestion to enable the high frequent SOF interrupt only >> at the time we have ATL packages queued. It goes even one step further >> and enables the SOF interrupt only if we have more than one ATL packet >> queued at the same time. > >> Cc: <stable@xxxxxxxxxx> # [2.6.35.x, 2.6.36.x, 2.6.37.x] >> Tested-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx> >> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > > Perhaps the patch should better be named "work around errata 2"... > errata was "implemented" in hardware, not software, after all. Sorry for > not noticing this in the first comment... An erratum is a statement of an error, it's a description of what's wrong and usually a correction. So implementing an erratum seems correct - you're implementing the solution. You don't implement the statement of error. I guess an even better description would be "Implement solution for erratum 2". Note: erratum = singular, errata = plural. -- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: -- 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