[pvrusb2] New driver snapshot: pvrusb2-mci-20090509
Mike Isely
isely at isely.net
Sat May 9 16:32:43 CDT 2009
A new pvrusb2 driver snapshot is available. The driver changes are:
(+) Configuration tweaks from Steve Toth for Hauppauge HVR-1900.
(+) Implement experimental support for Terratec Grabster AV400.
This is very experimental; I am including this so that others
can test and help improve things. I strongly suspect that since
this does not include any help for the CS5340 that I'm told is
on the board that audio might still not quite be right...
Credit goes to Andrea Venturis, Tobias Seiler, and Dave Craig
for providing the critical details to make this possible.
(+) Remove use of usb_settoggle(); this is no longer available with
later kernels.
(+) Attempt to autoload ir-kbd (v4l-dvb's module for some IR
receivers) where appropriate. Note! This is new behavior and
may interfere if lirc was being used. A new module option is
defined to suppress this: disable_autoload_ir_kbd. It is
entirely possible that this option may disappear in the future,
if/when lirc is updated to operate with the new i2c binding
mechanism. For now, we default this option to "1", i.e. we
won't try to autoload anything to handle IR.
(+) Include configuration data to select and track actual IR scheme
in use. This change includes reporting of the IR scheme in use
via the driver's debug info output.
(+) Correctly initialize v4l2_routing structures everywhere. This
wasn't causing a problem, but this is the sort of thing that
should be cleaned up.
(+) Account for various API changes related to v4l2-subdev changes
since 2.6.29 kernel.
(+) Fix unitialized struct element during tuner setup. Stack
allocated foreign struct instances should always be memset() to
zero in order to guard against fields being added later (and
thus being left uninitialized). This bug was causing bogus agc
warnings from the tuner module when using an HVR-1950. This bug
has also been around for a very long time.
(+) In sysfs, show default values symbolically, same as current
values, where appropriate.
(+) Fix longstanding bug (since Aug 2008) that caused corrupted
values to be returned for control default values when the
control is not an integer. Actually that bug propagated from
another bug dating back to Apr 2006 where default values for
non-integer valued controls was always returning zero.
Note above the item about the Grabster AV400. Yes, I finally got the
changes that have been circulating for this into the driver. I hope.
Oh, and I think Hell froze over too :-) Really sorry about taking
forever on this. But with that said...
1. I have not tested anything related to the Grabster AV400. I can't,
since I don't have a sample of this device. What I've done is
pulled together the collected information from various posts over
the past 1.5 years (yes it really has been that long, sigh...)
about this device and integrated what I believe to be the correct
configuration into the driver. For all I know this is horribly
broken. Thus....
2. I really REALLY need the people here who have Grabster AV400 (or
equivalent) devices to test the driver! I have no other means to
know if these changes are good.
3. There is a CS5340 audio digitizer chip on the AV400 (or so I've
been told). Right now the driver implements ZERO support for this,
so if it is working it's probably just by luck. We need to get to
the bottom of that. There's a cs5345 sub-device driver in v4l-dvb;
this might be the right driver to use. But somebody has to try it.
I can't. To "try it" means including it in the client list in
pvrusb2-devattr.c and probably writing an adapter for it so that
correct routing info can be sent to it (see pvrusb2-cs53l32a.[ch]
in the driver for a similar example).
4. Because of the above, right now I'm not letting this get into
v4l-dvb. Maybe I should. But without extra effort (i.e. kernel
CONFIG_xxx setup craziness), anything I make visible there will
find its way into the kernel mainline and I don't want to do that
until / if we know these changes are really working. So for now to
use this device you need to use the standalone driver.
5. I have not updated any pvrusb2 documentation yet for this device.
6. It's entirely likely that I may have missed something that I had
been previously told. I combed through 30+ e-mails over 2 years in
order to attempt to get this right, but... So please remind me if
I missed something.
On a different matter, there are changes in the driver that
potentially affect how IR support is handled. This issue is forced
upon us because of upcoming changes in the kernel's I2C subsystem.
The changes are all good, but we're probably going to be in for some
rough road until lirc catches up. The changes that are in the driver
*in theory* should cause no harm, but if you see new IR problems I'd
like to hear about it. There's a new module option that controls this
behavior; the default value of the option (enabled) should correctly
mimic previous behavior.
I've also gotten some feedback that suggests HVR-1900 digital tuning
might be broken. The problem (AFAIK) is not due to any recent change
in the pvrusb2 driver but rather may involve the v4l-dvb tuner core.
I don't have an HVR-1900 here so I can't really do much to chase the
problem, unfortunately (my HVR-1950 still works fine). One thing I've
heard is that running on a 32 bit vs 64 bit system might influence the
trouble. If you are having HVR-1900 problems (or not), post some
comments here so that others who have an HVR-1900 might be able to
help chase this.
As usual, the pvrusb2 web site can be found at:
http://www.isely.net/pvrusb2/pvrusb2.html
-Mike
--
Mike Isely
isely @ isely (dot) net
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8
More information about the pvrusb2
mailing list