Bug 14486

Summary: Avermedia Cardbus E500 doesn't work with kernels 2.6.3x
Product: v4l-dvb Reporter: kozlowsm
Component: saa7134Assignee: v4l-dvb_saa7134 (v4l-dvb_saa7134)
Status: RESOLVED CODE_FIX    
Severity: blocking CC: tmezzadra
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.30 and higher Subsystem:
Regression: Yes Bisected commit-id:

Description kozlowsm 2009-10-26 20:41:45 UTC
Gentoo. I've had no problem with all kernels up to 2.6.29. Then I tried to upgrade to the 2.6.3x. The problem is quite strange. My TV-card which is PCMCIA
Avermedia E500 based on SAA7134 chipset requires custom tuner parameter (for
Alps tuner):

# modprobe saa7134 card=46 tuner=12 

With 2.6.3x kernel it seems that the 'tuner' parameter is ignored and for
all settings the tda9887 is selected (which is a wrong one and disallows
watching TV).

/var/log/messages for older kernel:

Sep 19 23:00:58 entoo saa7130/34: v4l2 driver version 0.2.14 loaded
Sep 19 23:00:58 entoo saa7134 0000:07:00.0: enabling device (0000 -> 0002)
Sep 19 23:00:58 entoo saa7134 0000:07:00.0: PCI INT A -> Link[LNKB] -> GSI 5
(level, low) -> IRQ 5
Sep 19 23:00:58 entoo saa7133[0]: found at 0000:07:00.0, rev: 209, irq: 5,
latency: 0, mmio: 0xc8000000
Sep 19 23:00:58 entoo saa7134 0000:07:00.0: setting latency timer to 64
Sep 19 23:00:58 entoo saa7133[0]: subsystem: 1461:b6e8, board: AVerMedia
Cardbus TV/Radio (E500) [card=46,insmod option]
Sep 19 23:00:58 entoo saa7133[0]: board init: gpio is 0
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 00: 61 14 e8 b6 ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 20: ff d1 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 23:00:59 entoo tuner' 5-0042: chip found @ 0x84 (saa7133[0])
Sep 19 23:00:59 entoo tda9887 5-0042: creating new instance
Sep 19 23:00:59 entoo tda9887 5-0042: tda988[5/6/7] found
Sep 19 23:00:59 entoo All bytes are equal. It is not a TEA5767
Sep 19 23:00:59 entoo tuner' 5-0060: chip found @ 0xc0 (saa7133[0])
Sep 19 23:00:59 entoo tuner' 5-0061: chip found @ 0xc2 (saa7133[0])
Sep 19 23:00:59 entoo tuner-simple 5-0060: creating new instance
Sep 19 23:00:59 entoo tuner-simple 5-0060: type set to 12 (Alps TSBE5)
Sep 19 23:00:59 entoo saa7133[0]: registered device video0 [v4l2]
Sep 19 23:00:59 entoo saa7133[0]: registered device vbi0
Sep 19 23:00:59 entoo saa7133[0]: registered device radio0
Sep 19 23:00:59 entoo saa7134 ALSA driver for DMA sound loaded
Sep 19 23:00:59 entoo saa7133[0]/alsa: saa7133[0] at 0xc8000000 irq 5
registered as card -1

and for the new one:

Sep 19 22:25:27 entoo saa7130/34: v4l2 driver version 0.2.15 loaded
Sep 19 22:25:27 entoo saa7133[0]: found at 0000:07:00.0, rev: 209, irq: 5,
latency: 64, mmio: 0xc8000000
Sep 19 22:25:27 entoo saa7133[0]: subsystem: 1461:b6e8, board: AVerMedia
Cardbus TV/Radio (E500) [card=46,insmod option]
Sep 19 22:25:27 entoo saa7133[0]: board init: gpio is effffff
Sep 19 22:25:28 entoo IRQ 5/saa7133[0]: IRQF_DISABLED is not guaranteed on
shared IRQs
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 00: 61 14 e8 b6 ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 20: ff d1 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff
Sep 19 22:25:28 entoo tuner 5-0042: chip found @ 0x84 (saa7133[0])
Sep 19 22:25:28 entoo tda9887 5-0042: creating new instance
Sep 19 22:25:28 entoo tda9887 5-0042: tda988[5/6/7] found
Sep 19 22:25:28 entoo saa7133[0]: registered device video0 [v4l2]
Sep 19 22:25:28 entoo saa7133[0]: registered device vbi0
Sep 19 22:25:28 entoo saa7133[0]: registered device radio0
Sep 19 22:25:28 entoo saa7134 ALSA driver for DMA sound loaded
Sep 19 22:25:28 entoo IRQ 5/saa7133[0]: IRQF_DISABLED is not guaranteed on
shared IRQs
Sep 19 22:25:28 entoo saa7133[0]/alsa: saa7133[0] at 0xc8000000 irq 5
registered as card -1
Comment 1 tomas m 2009-11-28 14:39:32 UTC
i can confirm this issue with a sabrent SBT-TVFM saa7130 based tuner.
both instances with modprobe saa7134 card=42 tuner=43

relevant portions of dmesg follow:
---------------
Linux version 2.6.29-ARCH (root@T-POWA-LX) (gcc version 4.4.0 (GCC) ) #1 SMP PREEMPT Wed May 20 07:06:02 UTC 2009

fuse init (API version 7.11)
saa7130/34: v4l2 driver version 0.2.14 loaded
saa7130[0]: found at 0000:00:09.0, rev: 1, irq: 12, latency: 64, mmio: 0xcfff7c00
saa7130[0]: subsystem: 1131:0000, board: Sabrent SBT-TVFM (saa7130) [card=42,insmod option]
saa7130[0]: board init: gpio is c04000
IRQ 12/saa7130[0]: IRQF_DISABLED is not guaranteed on shared IRQs
saa7130[0]: Huh, no eeprom present (err=-5)?
tuner' 1-0043: chip found @ 0x86 (saa7130[0])
tda9887 1-0043: creating new instance
tda9887 1-0043: tda988[5/6/7] found
All bytes are equal. It is not a TEA5767
tuner' 1-0060: chip found @ 0xc0 (saa7130[0])
tuner-simple 1-0060: creating new instance
tuner-simple 1-0060: type set to 43 (Philips NTSC MK3 (FM1236MK3 or FM1236/F))
saa7130[0]: registered device video0 [v4l2]
saa7130[0]: registered device vbi0
saa7130[0]: registered device radio0


Linux version 2.6.31-ARCH (root@architect) (gcc version 4.4.2 (GCC) ) #1 SMP PREEMPT Tue Nov 10 19:48:17 CET 2009

saa7130/34: v4l2 driver version 0.2.15 loaded
saa7130[0]: found at 0000:00:09.0, rev: 1, irq: 12, latency: 64, mmio: 0xcfff7c00
saa7130[0]: subsystem: 1131:0000, board: Sabrent SBT-TVFM (saa7130) [card=42,insmod option]
saa7130[0]: board init: gpio is c04000
IRQ 12/saa7130[0]: IRQF_DISABLED is not guaranteed on shared IRQs
saa7130[0]: Huh, no eeprom present (err=-5)?
i2c-adapter i2c-0: Invalid 7-bit address 0x7a
tuner 0-0043: chip found @ 0x86 (saa7130[0])
tda9887 0-0043: creating new instance
tda9887 0-0043: tda988[5/6/7] found
saa7130[0]: registered device video0 [v4l2]
saa7130[0]: registered device vbi0
saa7130[0]: registered device radio0
Comment 2 kozlowsm 2010-01-19 19:38:45 UTC
Finally solved...

For all kernels till 2.6.29 I loaded the driver with:

    modprobe saa7134 card=46 tuner=12

and it worked OK (E500 + AlpsTSBE5)

For kerneks 2.6.30+ that command loaded card 46 and wrong tuner (E500 + TDA9887). But I finally discovered that:

    modprobe saa7134 card=158 tuner=12

works OK (E501R + AlpsTSBE5). Seems like my card used to be detected as E500 and now it is detected as E501R and setting it to E500 results in loading wrong parameters. Very funny... ;-(