[pvrusb2] Excellent! Success on Ubuntulinux

Mike Isely isely at isely.net
Sat Oct 15 14:51:29 CDT 2005


On Sat, 15 Oct 2005, Andreas Korinek wrote:

> On Saturday 15 October 2005 18:39, Mike Isely wrote:
>
>>> Also I get an error message in the kernel log:
>>>
>>> [4403101.937000] tveeprom: Encountered bad packet header [c2]. Corrupt
>>> or not a Hauppauge eeprom.
>>>
>>> ...but it doesn't seem to affect anything.
>>
>> This however seems somewhat alarming.  Is it repeatable?  Are you sure
>> this is happening with the tveeprom.ko coming from the pvrusb2 driver?
>> (Did you make sure you renamed the bad tveeprom.ko AND unloaded it?)
>
>
> I have this message too, doesn't do any harm, the firmware is loaded
> afterwards
>

This is fairly interesting....


>
> Linux video capture interface: v1.00
> pvrusb2 pvr_init
> pvrusb2 pvr2_hdw_create: hdw=ffff81003d503000
> pvrusb2 Driver unit number is 0, name is pvrusb2_a
> pvrusb2 subsys_stream_mask: 0x7800
> pvrusb2 pvr_probe(pvr=ffff81003bc52140)
> pvrusb2 pvr2_hdw_setup(hdw=ffff81003d503000) begin
> pvrusb2 Performing a device reset...
> usbcore: registered new driver pvrusb2
> /home/andreas/downloads/pvrusb2-mci-20050921/driver/pvrusb2-main.c: Hauppauge
> WinTV-PVR-USB2 MPEG2 Encoder/Tuner : 0.8-mci (21-Sep-2005)
> /home/andreas/downloads/pvrusb2-mci-20050921/driver/pvrusb2-main.c: Debug mask
> is 4214975 (0x4050bf)
> usb 1-4: reset high speed USB device using ehci_hcd and address 4
> lirc_i2c: chip found @ 0x18 (Hauppauge IR)
> pvrusb2 i2c_attach [client=Hauppauge IR @ 0x18 id=0xf3]
> lirc_dev: lirc_register_plugin: sample_rate: 10
> tveeprom: Encountered bad packet header [c2]. Corrupt or not a Hauppauge
> eeprom.

I would not have expected this.  Normally the pvrusb2 driver calls into 
the tveeprom code when it wants to parse the eeprom.  Yet here we have 
something happening autonomously much earlier.  Looks like the tveeprom 
module is trying to probe the device.  This must be something with newer 
tveeprom versions that I hadn't seen before.


> pvrusb2 i2c_attach [client=tveeprom[50] @ 0x50 id=0xf2]
> tuner: chip found at addr 0xc2 i2c-bus pvrusb2_a
> pvrusb2 i2c_attach [client=(tuner unset) @ 0x61 id=0x2]
> pvrusb2 attaching tuner I2C client
> msp34xx: ivtv version
> msp34xx: init: chip=MSP3415G-B8, has NICAM support, simple (D) mode, simpler
> (G) no-thread mode
> msp34xx: $Id: msp3400.c 550 2005-08-25 01:57:47Z isely $ compiled on: Sep 22
> 2005 07:29:03
> pvrusb2 i2c_attach [client=MSP3415G-B8 @ 0x40 id=0x1]
> pvrusb2 attaching msp3400 I2C client
> pvrusb2 i2c_attach [client=saa7115[50] @ 0x21 id=0xf1]
> pvrusb2 attaching saa7115 I2C client
> pvrusb2 pvr2_upload_firmware2
> pvrusb2 Requesting uproc soft reset
> pvrusb2 Requesting uproc hard reset
> pvrusb2 upload of pvrusb2.f2 : 262144 / 262144
> tveeprom: Hauppauge: model = 29039, rev = D157, serial# = 7708481
> tveeprom: tuner = Philips FM1216 ME MK3 (idx = 57, type = 38)
> tveeprom: tuner fmt = PAL(B/G) PAL(I) SECAM(L/L) PAL(D/K) (eeprom = 0x74, v4l2
> = 0x00400e17)
> tveeprom: audio processor = MSP3415 (type = 6)
> tveeprom: decoder processor = SAA7115 (type = 13)

And here we have the normal probe taking place.  No errors.

One possible explanation of this is that the tveeprom module earlier might 
be trying to read the entire eeprom in one operation - that won't work 
with the pvrusb2 driver's I2C adapter driver because the proxy mechanism 
over USB isn't really meant to handle that many bytes at once.  By the 
time we get here, I have code in pvrusb2 which has directly done the full 
eeprom read a piece at a time, re-assembled into a giant block - then the 
whole thing is handed to tveeprom for parsing.  This could explain the 
failure above, the success here, and why it isn't causing a problem.


> pvrusb2 eeprom results:
> pvrusb2 has_radio=1
> pvrusb2 tuner_type=38
> pvrusb2 tuner_formats=0x400e17
> pvrusb2 audio_processor=6
> pvrusb2 model=19
> pvrusb2 revision=29039
> pvrusb2 serial_number=9508183
> pvrusb2 rev_str=Au
> tuner: type set to 38 (Philips PAL/SECAM multi (FM1216ME MK3)) by pvrusb2_a
> pvrusb2 Detected video standard SECAM-L (from eeprom)
> pvrusb2 Detected video standard PAL-BG (from eeprom)
> pvrusb2 Detected video standard PAL-I (from eeprom)
> pvrusb2 Setting initial video standard to SECAM-L (detected from eeprom)

I'll have to look at this more closely.

Right now I'm building fresh 2.6.13.4 and 2.6.14-rc4 kernels here.  I'm 
also updating the driver to the latest ivtv modules.  I expect to hit 
issues with tveeprom along the way, and I'll watch for this as well.

   -Mike

-- 
                         |         Mike Isely          |     PGP fingerprint
      Spammers Die!!     |                             | 03 54 43 4D 75 E5 CC 92
                         |   isely @ pobox (dot) com   | 71 16 01 E2 B5 F5 C1 E8
                         |                             |


More information about the pvrusb2 mailing list