On Fri, Sep 11, 2009 at 1:50 PM, Aleksandr V. Piskunov <aleksandr.v.piskunov@xxxxxxxxx> wrote: > Ok, I did read basics of USB 2.0 protocol, gotta love these 600 page specs.. > So using my fresh knowledge I went away and hacked ce6230 to use Isochronous > transfer endpoint instead of Bulk one. And it helped, tuner works, no > corruption with af9015 running on same controller at the same time. > > Of course it isn't a fix per se, af9015 still corrupts if I start bulk > reading from a flash drive, etc. And there are no Isochronous endpoints on > af9015, so no alternative to bulk transfers :) > > But at least I'm getting closer to pinpointing the real problem and so far > everything points to AMD SB700 chipset driver. Google says it has quite > some hardware bugs and several workarounds in linux drivers... > > P.S. Rather unrelated question, what type of USB transfer is generally > preferred for USB media stream devices, BULK or ISOC? Antti, why did you > choose BULK for ce6230? The core difference between bulk and isoc is that with bulk you use get reliable delivery, but there is no reservation of bandwidth (bulk uses all available bandwidth). With isoc, you have reserved the bandwidth up front, but don't have reliable delivery (no retry mechanism, etc). With something like a hard drive, you want to use all available bandwidth, and you can do retries to ensure delivery, making bulk an appropriate choice. However, for streaming video, you usually want the bandwidth reserved up front, because if two devices are using the bus then frames will get dropped (and in a realtime streaming video device, there is no "retry" capability for dropped packets). Devin -- Devin J. Heitmueller - Kernel Labs http://www.kernellabs.com -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html