On 10/23/06, Jeff Franklin <[EMAIL PROTECTED]> wrote: > I had a PVR350 working nicely with ivtv 0.2.0. I added a PVR150 which > didn't work with ivtv 0.2.0 so I upgraded to 0.4.7 since I have kernel > 2.6.10 (Mandriva 2005 kernel). I am not using the tv-out on the 350, > I'm doing tv-out through an NVidia card. Now the PVR150 (/dev/video1) > works fine, but now the PVR350 (/dev/video0) gives an empty file when > I do cat /dev/video0 > test.mpg: > [EMAIL PROTECTED]:~ # cat /dev/video0 > test.mpg > [EMAIL PROTECTED]:~ # ls -l test.mpg > -rw-r--r-- 1 root root 0 Oct 21 21:14 test.mpg > [EMAIL PROTECTED]:~ # cat /dev/video1 > test.mpg > [EMAIL PROTECTED]:~ # ls -l test.mpg > -rw-r--r-- 1 root root 4843456 Oct 21 21:14 test.mpg > [EMAIL PROTECTED]:~ # > > I have tried: > - shutting it down for a few minutes (and overnight) > - deleting all the old versions of the ivtv drivers (and gratuitous > depmod -a usage) > - removing the old (now unnecessary) options from /etc/modprobe.conf > - rebooting (numerous times) > - setting different video inputs with ivtvctl and setting the channel > with ivtv-tune (setting the channel said it detected a signal) > - setting the framespergop to 15 (it was 0) > - with and without the 150 in the computer, no luck either way > - with and without the kernel versions of some of the modules that > ivtv provides (like msp3400, etc) > - rolling back to 0.2.0, and the 350 works fine, so I know the card still > works > - banging head against wall, repair hole, repeat > > When I check the status with ivtvctl I get: > [EMAIL PROTECTED]:~ # ivtvctl --log-status -d /dev/video0 > ioctl VIDIOC_LOG_STATUS ok > ivtv0: ================= START STATUS CARD #0 ================= > ivtv0 warning: i2c client addr: 0x21 not found for command 0x5646! > ivtv0 warning: i2c client addr: 0x44 not found for command 0x5646! > ivtv0: ================== END STATUS CARD #0 ================== > [EMAIL PROTECTED]:~ # ivtvctl --log-status -d /dev/video1 > ioctl VIDIOC_LOG_STATUS ok > ivtv1: ================= START STATUS CARD #1 ================= > cx25840 1-0044: Video signal: present > cx25840 1-0044: Detected format: NTSC-M > cx25840 1-0044: Detected audio mode: forced mode > cx25840 1-0044: Detected audio standard: forced audio standard > cx25840 1-0044: Audio muted: no > cx25840 1-0044: Audio microcontroller: running > cx25840 1-0044: Configured audio standard: BTSC > cx25840 1-0044: Configured audio mode: undefined > cx25840 1-0044: Specified standard: NTSC-M > cx25840 1-0044: Specified input: Tuner > cx25840 1-0044: Specified audio input: Tuner > cx25840 1-0044: Specified audioclock freq: 48 kHz > cx25840 1-0044: Preferred audio mode: stereo > cx25840 1-0044: Selected 65 MHz format: system DK > cx25840 1-0044: Selected 45 MHz format: chroma > wm8775 1-001b: Input: default > ivtv1: ================== END STATUS CARD #1 ================== > [EMAIL PROTECTED]:~ # > > > The info in dmesg is: > ivtv: ==================== START INIT IVTV ==================== > ivtv: version 0.4.7 (tagged release) loading > ivtv: Linux version: 2.6.10-3.mm.24mdk preempt 586 gcc-3.4 > ivtv: In case of problems please include the debug info between > ivtv: the START INIT IVTV and END INIT IVTV lines, along with > ivtv: any module options, when mailing the ivtv-users mailinglist. > ivtv0: Autodetected WinTV PVR 350 card (cx23415 based) > ACPI: PCI Interrupt 0000:00:0c.0[A] -> GSI 19 (level, low) -> IRQ 19 > lirc_i2c: chip found @ 0x18 (Hauppauge IR) > ivtv0: i2c attach to card #0 ok [client=Hauppauge IR, addr=18] > lirc_dev: lirc_register_plugin:sample_rate: 10 > tveeprom: ivtv version > tveeprom: Hauppauge: model = 48132, rev = J323, serial# = 7012645 > tveeprom: tuner = Philips FM1236 (idx = 23, type = 2) > tveeprom: tuner fmt = NTSC(M) (eeprom = 0x08, v4l2 = 0x00001000) > tveeprom: audio processor = MSP4448 (type = 1b) > tveeprom: decoder processor = SAA7115 (type = 13) > ivtv0: i2c attach to card #0 ok [client=tveeprom, addr=50] > tuner (ivtv): chip found at addr 0xc2 i2c-bus ivtv i2c driver #0 > ivtv0: i2c attach to card #0 ok [client=(tuner unset), addr=61] > ivtv0 warning: i2c client addr: 0x21 not found for command 0x8004646b! > msp3400 0-0040: ivtv driver > msp3400 0-0040: chip=MSP4448G-A2 +nicam +simple +simpler +radio mode=simpler > msp3400 0-0040: msp34xxg daemon started > ivtv0: i2c attach to card #0 ok [client=MSP4448G-A2, addr=40] > ivtv0: loaded v4l-cx2341x-enc.fw firmware (262144 bytes) > ivtv0: loaded v4l-cx2341x-dec.fw firmware (262144 bytes) > ivtv0: Encoder revision: 0x02050032 > ivtv0: Decoder revision: 0x02020023 > ivtv0: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB total) > ivtv0: Allocate DMA encoder YUV stream: 194 x 10800 buffers (2048KB total) > ivtv0: Allocate DMA encoder VBI stream: 120 x 17472 buffers (2048KB total) > ivtv0: Allocate DMA encoder PCM audio stream: 455 x 4608 buffers (2048KB > total) > ivtv0: Create encoder radio stream > ivtv0: Allocate DMA decoder MPEG stream: 16 x 65536 buffers (1024KB total) > ivtv0: Allocate DMA decoder VBI stream: 512 x 2048 buffers (1024KB total) > ivtv0: Create decoder VOUT stream > ivtv0: Allocate DMA decoder YUV stream: 24 x 43200 buffers (1024KB total) > ivtv0: loaded v4l-cx2341x-init.mpg firmware (155648 bytes) > tuner: type set to 2 (Philips NTSC (FI1236,FM1236 and compatibles)) by ivtv > i2c > driver #0 > ivtv0 warning: i2c client addr: 0x21 not found for command 0x40085618! > ivtv0 warning: i2c client addr: 0x21 not found for command 0xc0045627! > ivtv0 warning: i2c client addr: 0x21 not found for command 0x40085618! > ivtv0 warning: i2c client addr: 0x44 not found for command 0x40085618! > ivtv0: Initialized WinTV PVR 350, card #0 > ivtv: ====================== NEXT CARD ====================== > ivtv1: Autodetected WinTV PVR 150 card (cx23416 based) > ACPI: PCI Interrupt 0000:00:0d.0[A] -> GSI 16 (level, low) -> IRQ 16 > tveeprom: ivtv version > tveeprom: Hauppauge: model = 26582, rev = E6B2, serial# = 9784389 > tveeprom: tuner = TCL M2523_5N_E (idx = 112, type = 50) > tveeprom: tuner fmt = NTSC(M) (eeprom = 0x08, v4l2 = 0x00001000) > tveeprom: audio processor = CX25843 (type = 25) > tveeprom: decoder processor = CX25843 (type = 1e) > ivtv1: i2c attach to card #1 ok [client=tveeprom, addr=50] > tuner (ivtv): chip found at addr 0xc2 i2c-bus ivtv i2c driver #1 > ivtv1: i2c attach to card #1 ok [client=(tuner unset), addr=61] > cx25840 1-0044: ivtv driver > cx25840 1-0044: cx25843-23 found @ 0x88 (ivtv i2c driver #1) > cx25840 1-0044: loaded v4l-cx25840.fw firmware (16382 bytes) > ivtv1: i2c attach to card #1 ok [client=cx25840, addr=44] > wm8775 1-001b: ivtv driver > wm8775 1-001b: chip found @ 0x36 (ivtv i2c driver #1) > wm8775 1-001b: I2C: cannot write 000 to register R23 > wm8775 1-001b: I2C: cannot write 000 to register R7 > wm8775 1-001b: I2C: cannot write 021 to register R11 > wm8775 1-001b: I2C: cannot write 102 to register R12 > wm8775 1-001b: I2C: cannot write 000 to register R13 > wm8775 1-001b: I2C: cannot write 1d4 to register R14 > wm8775 1-001b: I2C: cannot write 1d4 to register R15 > wm8775 1-001b: I2C: cannot write 1bf to register R16 > wm8775 1-001b: I2C: cannot write 185 to register R17 > wm8775 1-001b: I2C: cannot write 0a2 to register R18 > wm8775 1-001b: I2C: cannot write 005 to register R19 > wm8775 1-001b: I2C: cannot write 07a to register R20 > wm8775 1-001b: I2C: cannot write 102 to register R21 > ivtv1: i2c attach to card #1 ok [client=wm8775, addr=1b] > ivtv1: loaded v4l-cx2341x-enc.fw firmware (262144 bytes) > ivtv1: Encoder revision: 0x02050032 > ivtv1: Allocate DMA encoder MPEG stream: 128 x 32768 buffers (4096KB total) > ivtv1: Allocate DMA encoder YUV stream: 194 x 10800 buffers (2048KB total) > ivtv1: Allocate DMA encoder VBI stream: 120 x 17472 buffers (2048KB total) > ivtv1: Allocate DMA encoder PCM audio stream: 455 x 4608 buffers (2048KB > total) > tuner: type set to 50 (TCL 2002N) by ivtv i2c driver #1 > wm8775 1-001b: I2C: cannot write 0c0 to register R21 > wm8775 1-001b: I2C: cannot write 1d4 to register R14 > wm8775 1-001b: I2C: cannot write 1d4 to register R15 > wm8775 1-001b: I2C: cannot write 102 to register R21 > wm8775 1-001b: I2C: cannot write 0c0 to register R21 > wm8775 1-001b: I2C: cannot write 1d4 to register R14 > wm8775 1-001b: I2C: cannot write 1d4 to register R15 > wm8775 1-001b: I2C: cannot write 102 to register R21 > ivtv1: Initialized WinTV PVR 150, card #1 > ivtv: ==================== END INIT IVTV ==================== > > > I've got myth working with the 150 for now since it works, but I got a > second tuner to have two tuners, not just one. > > I had this line in /etc/modprobe.conf to make it work with 0.2.0, but > it doesn't seem to matter now: > options tuner addr=0x61 force=0x61 ignore=0x60 > > I have tried with and without this with no luck. > > I've started doing diffs between the dmesg from 0.2.0 and 0.4.7 and > the only real difference that I can tell is the msp module, in 0.2.0 > it is: > tveeprom: audio_processor = MSP3440 (type = 11) > msp34xx: init: chip=MSP3448W-A2 +nicam +simple +simpler +radio mode=simple > msp3410: daemon started > ivtv: i2c attach [client=MSP3448W-A2,ok] > > In 0.4.7 it is: > tveeprom: audio processor = MSP4448 (type = 1b) > msp3400 0-0040: ivtv driver > msp3400 0-0040: chip=MSP4448G-A2 +nicam +simple +simpler +radio mode=simpler > ivtv0: i2c attach to card #0 ok [client=MSP4448G-A2, addr=40] > msp3400 0-0040: msp34xxg daemon started > > Would a wrong MSP result in a 0 byte file? I looked through > doc/modules.txt and didn't see any obvious settings to force the MSP > type. >
I finally tracked down this problem. It turns out some card detection code was added to saa7115.c (around 0.4.1, it's not in 0.4.0): saa7115_write(client, 0, 5); chip_id = saa7115_read(client, 0) & 0x0f; The code then goes on to check for chip_id == 4 or 5, but my card is returning 0xF (some sort of invalid api call or something?). Anyways, if I comment out those two lines and replace them with one that says: chip_id = 5; Everything works. Obviously, I'm not recommending the developers check this in, but maybe they could look at why the detection is sometimes wrong. Developers, if you need anything else from me, let me know. My PVR350 is a little older and was purchased in March 2004, if that helps. -Jeff _______________________________________________ ivtv-users mailing list [email protected] http://ivtvdriver.org/mailman/listinfo/ivtv-users
