[pvrusb2] pvrusb2 driver status for new hardware version
Hans Verkuil
hverkuil at xs4all.nl
Mon Mar 6 01:07:03 CST 2006
On Monday 06 March 2006 05:13, Mike Isely wrote:
> To all:
>
> I thought people might want to hear what is going on with the new PVR
> USB2 hardware that Hauppauge is shipping and how the pvrusb2 driver
> is dealing with it. So here's the update:
>
> An increasing number of people are (not surprisingly) contacting me
> about this new device. About one new person every week shows up;
> I imagine that rate is going to rapidly increase :-(
>
> Unfortunately I do not have one of the new devices, which is making
> the driver changes needed rather hard to do. I am trying to get a
> sample sent to me but so far I'm not having much success. (And just
> going out and buying one may not work either since I have no
> guarantee that the $150 I'd have to drop to get it won't just be
> another instance of the older hardware...)
>
> But in working through several people who have this device, I've
> learned that the new hardware has at least the following differences:
>
> 1. The msp3400 and saa7115 chips have been replaced with a
> cx25840.
>
> 2. The eeprom in the device uses 16 bit addresses now instead of 8
> bit addresses.
>
> 3. The USB configuration of the new hardware is no longer
> different before the FX2 firmware is loaded to it.
>
> 4. The FX2 firmware is updated and has a somewhat different
> command set (some commands removed, others added).
>
> 5. There is an as-yet unidentified new part on the board
> responding at I2C address 0x1b.
This is almost certainly the wm8775 chip, the same that is also used on
PVR150/500 cards. That chip also uses I2C address 0x1b.
>
> Change (1) is obviously the biggest change and probably the reason
> why the hardware was respun. The other changes are all mainly
> annoyances. For example, change (3) disrupts the mechanism that the
> pvrusb2 driver was using to determine if the FX2 firmware needed to
> be loaded.
>
> The progress as of tonight is:
>
> o The different eeprom type is working now - the driver can detect
> the larger eeprom and adjust behavior to address it correctly
> and find the Hauppauge metadata within it.
>
> o The different FX2 firmware so far has not caused a problem. The
> commands missing from the firmware weren't being used by the
> driver and I haven't yet found a need to use any of the new
> commands yet.
>
> o The FX2 firmware detection / loading algorithm has been
> successfully adjusted to handle the new device. Previously the
> driver looked for the different USB configuration to recognize a
> need to load the FX2 firmware. However now the configuration in
> the "unloaded" case is the same. So - if the configuration is
> the same - the driver attempts to probe the device with a command.
> If the device fails to respond to the probe, the driver will load the
> firmware and kick the hardware to reset. So far that trick is
> working perfectly.
>
> o I've changed the pvrusb2 driver to communicate correctly with
> the cx25840.ko V4L module if that module attaches to the driver's I2C
> bus. I also know the correct input settings for the cx25840 for the
> "tuner" input, and that appears to work.
>
> o With the appearance of the cx25840, we now have another firmware
> image to deal with. While the cx25840.ko module handles the
> loading of the firmware image, we still need to extract it from
> the Windows drivers (and this firmware image apparently is
> *different* than the one(s) used for ivtv, unfortunately - no
> idea yet if they're compatible).
Are you sure they are different? Can you mail me the firmware you
extracted?
> I've updated fwextract.pl (actually
> I rewrote most of it) to locate and extract the additional firmware
> image. In fact, fwextract.pl is considerably more generic now; it
> can be configured to extract any number of binary blobs from any
> arbitrary set of container files.
>
> o Even though the encoder chip (the cx23416) hasn't changed,
> operation of it has, apparently due to the presence of the
> cx25840. I took a stab at that problem today and on the first
> attempt (!) we got video streaming out of the new device. Yay!!
>
> The following issues still exist:
>
> o Still no idea what that part is at I2C address 0x1b.
>
> o The cx25840 module is doing large I2C transfers to download to
> its chip. Unfortunately the I2C protocol over USB (for the FX2)
> limits I2C transfers to roughly 60 bytes at a time. That module is
> pumping 1024 bytes at a time. There's a simple macro in the cx25840
> module's source that can be reduced to fix this, but the change needs
> to be committed in (and I haven't done that yet because I've been
> looking for an alternate solution). Realize that cx25840 is a module
> from V4L; it is not part of the pvrusb2 driver. This is a problem
> because it means that anyone with new hardware will no longer be able
> to use the standalone pvrusb2 driver even after all these other fixes
> - since all current kernel resident instances of cx25840 all try 1024
> bytes at a time. While obviously we want to get pvrusb2 into V4L, it
> is still useful to support people using the out-of-tree standalone
> driver but this problem in cx25840 may simply preclude that.
>
> o While we did get video from the cx23416, I need to refine the
> changes & tweaks and figure out exactly which ones were the
> critical changes. We were about to begin that investigation
> when another issue cropped up...
>
> o There is a serious unsolved problem with detection of the
> cx25840. Right now, if the PVR USB2 hardware is hotplugged in, probes
> of the cx25840 chip over I2C fail. But if we reload cx25840.ko a
> little while later, then the corresponding probe succeeds and the
> module loads. I've just spent the past 4 hours in IRC with a tester
> (Martin, see below) chasing this but found no smoking gun reason for
> the problem.
>
> o We don't know yet what the correct input settings on the cx25840
> should be for the composite or s-video inputs on the device.
It's likely to be the same as the PVR150. This PVRUSB2 device seems to
be basically a PVR150 with an USB interface.
Hans
>
> At this point, Martin Galese is loaning me his PVR USB2 hardware,
> since I can't get Hauppauge to cough one up. I hope to make more
> progress on the driver soon. I will release a new snapshot as soon
> as I have something that I think can be considered useful. I think
> we're really close here. The fact that we *have* successfully gotten
> video to stream out of it with just the right magic coaxing says that
> odds are very very good that we'll soon have a stable solution.
>
> Thanks go to Richard Vieira and Martin Galese for being very patient
> testers for me. ALL of my debug work so far has been by proxy
> through them. Martin is sending me his device, and I think that goes
> way above and beyond the call here :-)
>
> -Mike
More information about the pvrusb2
mailing list