Still continuing to clear out my backlog of miscellaneous fixes. Added support for the K-World 2800d (thanks to Paul Thomas for loaning me the hardware and being so patient). While doing that work, I managed to uncover a minor bug in the em28xx audio code (the /dev/audio1 device file was being created even if the device didn’t support audio).
One thing I had noticed over the last few months is cases where users would report that ATSC scanning worked but tuning did not. In all of these cases, it turned up that the user was connected to a USB 1.1 port (12 Mbps). For ATSC, that means only about 2/3 of the total packets get through (an ATSC stream delivers 19.39 Mbps). Therefore, enough packets would get through so that the channel scanner would be able to find the PSIP tables required, but if they actually tried to watch the channel you would be missing 1/3 of the video packets.
To address the above, I submitted a patch that restricts the em28xx and au0828 driver to only work when connected at 480Mbps. This means that instead of weird unexplained errors that a user has to debug, he gets a nice friendly error in dmesg and the device files do not get created at all.
Work also continued on the Terratec Cinergy T XS (the mt352 version). I have checked in a hack to my test tree which programs the mt352 *exactly* like the Windows driver does. If that works, then I will clean it up and prepare a final patch.
I started looking at the HVR-900 R2 device, and it seems pretty clear the drx-d driver that is in the kernel will be a pain to program. The configuration block that you pass on startup contains 27 different parameters, which I will need to extrapolate based on the Windows USB trace. Compared to other demodulators, this one is relatively difficult to setup.