[linux-dvb] Compro VideoMate DVB-T300 auto detect problem - suggested code fix

James Lawrence james.lawrence at pobox.com
Sat Mar 4 07:49:32 CET 2006


Hi,

I have two Compro VideoMate DVB-T300 cards installed in my computer.  
The saa7134 drivers do not recognize them correctly. I have had to  
make code modifications to get the drivers to recognize them, as  
shown below.  Has anyone else experienced this?

If you look closely, you will see that the PCI ID of both cards is  
identical: 1850:0000. This is odd - Compro's subvendor ID is 185B not  
1850 and 0000 is a strange subdevice ID.

My computer configuration is:
AMD64 CPU
Gigabyte GA-K8NSC-939 motherboard with NFORCE3 chipset
Gentoo Linux with 2.6.15r5 kernel
  - I got the same result previously when trying with 64 bit SuSE OSS  
10.0 with a 2.6.13 kernel and drivers compiled from the v4l-dvb  
repository.

If I use sudo modprobe saa7134 card=70 then I get the following  
result in dmesg:

saa7130/34: v4l2 driver version 0.2.14 loaded
ACPI: PCI Interrupt 0000:02:07.0[A] -> Link [APC4] -> GSI 19 (level,  
low) -> IRQ 177
saa7134[0]: found at 0000:02:07.0, rev: 1, irq: 177, latency: 32,  
mmio: 0xf6004000
saa7134[0]: subsystem: 1850:0000, board: Compro Videomate DVB-T300  
[card=70,insmod option]
saa7134[0]: board init: gpio is 940d00
input: saa7134 IR (Compro Videomate DV as /class/input/input3
saa7134[0]: i2c eeprom 00: 5a 10 00 c0 10 00 04 00 40 43 09 14 10 10  
02 10
saa7134[0]: i2c eeprom 10: 00 d4 80 05 01 00 fa ff ef 58 1a 8d e0 00  
00 50
saa7134[0]: i2c eeprom 20: 01 40 00 00 00 77 00 01 08 d4 00 05 04 83  
fa c7
saa7134[0]: i2c eeprom 30: ff 96 bc 9b 7a 50 a0 d4 b8 14 04 77 f0 c3  
1f d4
saa7134[0]: i2c eeprom 40: b8 00 00 82 82 10 ff 96 bc 9b 7d 80 bb d4  
bc 14
saa7134[0]: i2c eeprom 50: 04 d4 b8 15 06 c0 01 d4 bc 15 06 d5 b8 15  
06 c0
saa7134[0]: i2c eeprom 60: 30 14 0c 83 fa ff 7f 58 1a 2b 01 8d e0 00  
00 50
saa7134[0]: i2c eeprom 70: 12 68 59 d4 b8 15 06 83 fa ff f7 58 1a 8d  
e0 00
saa7134[0]: registered device video0 [v4l2]
saa7134[0]: registered device vbi0
ACPI: PCI Interrupt 0000:02:09.0[A] -> Link [APC2] -> GSI 17 (level,  
low) -> IRQ 209
saa7134[1]: found at 0000:02:09.0, rev: 1, irq: 209, latency: 32,  
mmio: 0xf6005000
saa7134[1]: subsystem: 1850:0000, board: UNKNOWN/GENERIC  
[card=0,autodetected]
saa7134[1]: board init: gpio is 843ff7
saa7134[1]: i2c eeprom 00: 5a 10 00 c0 10 00 04 00 40 43 09 14 10 10  
02 10
saa7134[1]: i2c eeprom 10: 00 d4 80 05 01 00 fa ff ef 58 1a 8d e0 00  
00 50
saa7134[1]: i2c eeprom 20: 01 40 00 00 00 77 00 01 08 d4 00 05 04 83  
fa c7
saa7134[1]: i2c eeprom 30: ff 96 bc 9b 7a 50 a0 d4 b8 14 04 77 f0 c3  
1f d4
saa7134[1]: i2c eeprom 40: b8 00 00 82 82 10 ff 96 bc 9b 7d 80 bb d4  
bc 14
saa7134[1]: i2c eeprom 50: 04 d4 b8 15 06 c0 01 d4 bc 15 06 d5 b8 15  
06 c0
saa7134[1]: i2c eeprom 60: 30 14 0c 83 fa ff 7f 58 1a 2b 01 8d e0 00  
00 50
saa7134[1]: i2c eeprom 70: 12 68 59 d4 b8 15 06 83 fa ff f7 58 1a 8d  
e0 00
saa7134[1]: registered device video1 [v4l2]
saa7134[1]: registered device vbi1
Linux video capture interface: v1.00



As you can see, only one card is set up by the insmod option. The  
other is not recognised. To fix this, add the following lines to /usr/ 
src/linux/drivers/media/video/saa7134/saa7134-cards.c
    },{
       .vendor       = PCI_VENDOR_ID_PHILIPS,
       .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
       .subvendor    = 0x1850,
       .subdevice    = 0x0000,
       .driver_data  = SAA7134_BOARD_VIDEOMATE_DVBT_300,



and recompile:
cd /usr/src/linux
sudo make
sudo make install_modules

and then install the module
sudo modprobe saa7134
and this gives the following result in dmesg:



Linux video capture interface: v1.00
saa7130/34: v4l2 driver version 0.2.14 loaded
ACPI: PCI Interrupt 0000:02:07.0[A] -> Link [APC4] -> GSI 19 (level,  
low) -> IRQ 177
saa7134[0]: found at 0000:02:07.0, rev: 1, irq: 177, latency: 32,  
mmio: 0xf6004000
saa7134[0]: subsystem: 1850:0000, board: Compro Videomate DVB-T300  
[card=70,autodetected]
saa7134[0]: board init: gpio is 950efd
input: saa7134 IR (Compro Videomate DV as /class/input/input0
saa7134[0]: i2c eeprom 00: 02 10 00 01 04 00 1c 00 40 03 00 10 04 00  
82 10
saa7134[0]: i2c eeprom 10: 00 e7 02 00 01 00 10 26 52 41 c0 06 f8 ed  
cb 00
saa7134[0]: i2c eeprom 20: 00 40 01 02 03 41 00 01 00 5e 00 06 40 e7  
32 00
saa7134[0]: i2c eeprom 30: 01 5f 20 77 ac 5e 00 88 53 71 32 8c c0 01  
0f 50
saa7134[0]: i2c eeprom 40: 26 02 00 00 02 00 67 00 00 50 51 2b 02 24  
66 2b
saa7134[0]: i2c eeprom 50: 00 24 67 50 70 e7 66 00 01 71 66 cc 03 50  
26 0b
saa7134[0]: i2c eeprom 60: 00 24 66 71 57 96 bc 9b 7f 38 57 05 0f 73  
58 a0
saa7134[0]: i2c eeprom 70: 57 38 57 7c 58 4e 9f 83 f2 ff 80 30 58 d5  
b8 14
tuner 0-0061: chip found @ 0xc2 (saa7134[0])
tuner 0-0061: type set to 67 (Philips TD1316 Hybrid Tuner)
tuner 0-0061: type set to 67 (Philips TD1316 Hybrid Tuner)
tuner 0-0068: chip found @ 0xd0 (saa7134[0])
tda9887 0-0043: chip found @ 0x86 (saa7134[0])
saa7134[0]: registered device video0 [v4l2]
saa7134[0]: registered device vbi0
ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
GSI 20 sharing vector 0xD1 and IRQ 20
ACPI: PCI Interrupt 0000:02:09.0[A] -> Link [APC2] -> GSI 17 (level,  
low) -> IRQ 209
saa7134[1]: found at 0000:02:09.0, rev: 1, irq: 209, latency: 32,  
mmio: 0xf6005000
saa7134[1]: subsystem: 1850:0000, board: Compro Videomate DVB-T300  
[card=70,autodetected]
saa7134[1]: board init: gpio is 843f12
input: saa7134 IR (Compro Videomate DV as /class/input/input1
tuner 1-0061: chip found @ 0xc2 (saa7134[1])
tuner 1-0061: type set to 67 (Philips TD1316 Hybrid Tuner)
tuner 1-0061: type set to 67 (Philips TD1316 Hybrid Tuner)
tuner 1-0068: chip found @ 0xd0 (saa7134[1])
tda9887 1-0043: chip found @ 0x86 (saa7134[1])
saa7134[1]: i2c eeprom 00: 02 10 00 01 04 00 1c 00 40 03 00 10 04 00  
82 10
saa7134[1]: i2c eeprom 10: 00 e7 02 00 01 00 10 26 52 41 c0 06 f8 ed  
cb 00
saa7134[1]: i2c eeprom 20: 00 40 01 02 03 41 00 01 00 5e 00 06 40 e7  
32 00
saa7134[1]: i2c eeprom 30: 01 5f 20 77 ac 5e 00 88 53 71 32 8c c0 01  
0f 50
saa7134[1]: i2c eeprom 40: 26 02 00 00 02 00 67 00 00 50 51 2b 02 24  
66 2b
saa7134[1]: i2c eeprom 50: 00 24 67 50 70 e7 66 00 01 71 66 cc 03 50  
26 0b
saa7134[1]: i2c eeprom 60: 00 24 66 71 57 96 bc 9b 7f 38 57 05 0f 73  
58 a0
saa7134[1]: i2c eeprom 70: 57 38 57 7c 58 4e 9f 83 f2 ff 80 30 58 d5  
b8 14
saa7134[1]: registered device video1 [v4l2]
saa7134[1]: registered device vbi1



As you can see, the cards are now recognized correctly.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.linuxtv.org/pipermail/linux-dvb/attachments/20060304/b4db23d5/attachment-0001.htm


More information about the linux-dvb mailing list