From: Mauro Carvalho Chehab <mchehab@infradead.org>
To: timf <timf@iinet.net.au>
Cc: Hackmann <hartmut.hackmann@t-online.de>,
lucarasp <lucarasp@inwind.it>,
"Richard \(MQ\)" <osl2008@googlemail.com>,
linux-dvb@linuxtv.org
Subject: Re: [linux-dvb] Any chance of help with v4l-dvb-experimental / Avermedia A16D please?
Date: Thu, 20 Mar 2008 11:55:31 -0300 [thread overview]
Message-ID: <20080320115531.7ab450ba@gaivota> (raw)
In-Reply-To: <1205904196.6510.3.camel@ubuntu>
On Wed, 19 Mar 2008 14:23:16 +0900
timf <timf@iinet.net.au> wrote:
> Hi all,
>
> On Tue, 2008-03-18 at 22:31 +0100, hermann pitton wrote:
> > Hi,
> >
> > Am Dienstag, den 18.03.2008, 18:04 -0300 schrieb Mauro Carvalho Chehab:
> > > On Wed, 19 Mar 2008 05:48:52 +0900
> > > timf <timf@iinet.net.au> wrote:
> > >
> > > > 1) New install ubuntu, extract tip.tgz.
> > >
> > > There's no need for you to reinstall Linux for each test. This is not MS**t ;)
> > >
> > > You don't even need to reboot.
> > >
> > > > [ 40.753552] saa7133[0]: i2c scan: found device @ 0xc2 [???]
> > > > [ 40.864616] tuner' 2-0061: Setting mode_mask to 0x0e
> > > > [ 40.864621] tuner' 2-0061: chip found @ 0xc2 (saa7133[0])
> > > > [ 40.864624] tuner' 2-0061: tuner 0x61: Tuner type absent
> > > > [ 40.864658] tuner' 2-0061: Calling set_type_addr for type=0,
> > > > addr=0xff, mode=0x02, config=0xffff8100
> >
> > any idea somebody when that was introduced?
> >
> > [ 40.753552] saa7133[0]: i2c scan: found device @ 0xc2 [???]
> > [ 40.864616] tuner' 2-0061: Setting mode_mask to 0x0e
> > [ 40.864621] tuner' 2-0061: chip found @ 0xc2 (saa7133[0])
> > [ 40.864624] tuner' 2-0061: tuner 0x61: Tuner type absent
> > [ 40.864658] tuner' 2-0061: Calling set_type_addr for type=0,
> > addr=0xff, mode=0x02, config=0xffff8100
> > [ 40.864662] tuner' 2-0061: set addr for type -1
> > [ 40.876586] tuner-simple 2-0061: creating new instance
> > [ 40.876589] tuner-simple 2-0061: type set to 0 (Temic PAL (4002 FH5))
> >
> > Out of historical cruft TUNER_ABSENT is tuner type 4.
> >
> > > mode=0x02 is radio.
> > >
> > > Try to add this to the struct:
> > >
> > > .radio_type = UNSET,
> > >
> > > > 3) No DVB, installed tvtime - no signal.
> > >
> > > DVB won't work yet. What the demod inside this board? There's no setup for it.
> >
> > Cheers,
> > Hermann
> >
>
> Nope, could't get anything to work.
> - blacklisted tuner_xc3028 - no diff still locked up at boot
> - dbg - no module loaded
>
> $%#!!! it - reinstalled; Gee it took ages for clone hg linuxtv to
> download - 3kbs at best???
>
> 1) no updates, no nvidia-glx-new (prop) (thus no 1680 x 1050 - looks
> awful, nv can't do that res)
>
> - looked in saa7134-cards.c
> only this patch:
> },
> [SAA7134_BOARD_AVERMEDIA_A16D] = {
> .name = "AVerMedia Hybrid TV/Radio (A16D)",
> .audio_clock = 0x187de7,
> .tuner_type = TUNER_XC2028,
> .tuner_addr = ADDR_UNSET,
> .inputs = {{
> .name = name_tv,
> .vmux = 1,
> .amux = TV,
> .tv = 1,
> }, {
> .name = name_svideo,
> .vmux = 8,
> .amux = LINE1,
> } },
> .radio = {
> .name = name_radio,
> .amux = LINE1,
> },
> },
> [SAA7134_BOARD_AVERMEDIA_M115] = {
>
> - make, sudo make install v4l-dvb, reboot
>
> - no /dev/video#
> - no soundcard detected??? -> no volume control
> dmesg
> <snip>
> [ 40.108132] Linux video capture interface: v2.00
> [ 40.146196] saa7130/34: v4l2 driver version 0.2.14 loaded
> [ 40.147238] ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
> [ 40.147249] ACPI: PCI Interrupt 0000:04:09.0[A] -> Link [APC2] -> GSI
> 17 (level, low) -> IRQ 17
> [ 40.147258] saa7133[0]: found at 0000:04:09.0, rev: 209, irq: 17,
> latency: 32, mmio: 0xfdbff000
> [ 40.147265] saa7133[0]: subsystem: 1461:f936, board: AVerMedia Hybrid
> TV/Radio (A16D) [card=137,autodetected]
> [ 40.147275] saa7133[0]: board init: gpio is 2fe00
> [ 40.308263] saa7133[0]: i2c eeprom 00: 61 14 36 f9 00 00 00 00 00 00
> 00 00 00 00 00 00
> [ 40.308273] saa7133[0]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308282] saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 00 08 ff
> 00 0e ff ff ff ff
> [ 40.308290] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308298] saa7133[0]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308306] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308314] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308322] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308330] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308338] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308347] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308355] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308363] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308371] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308379] saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.308388] saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 40.320255] saa7133[0]: i2c scan: found device @ 0x1e [???]
> [ 40.340220] saa7133[0]: i2c scan: found device @ 0xa0 [eeprom]
> [ 40.451576] saa7133[0]: registered device video0 [v4l2]
> [ 40.451617] saa7133[0]: registered device vbi0
> [ 40.451653] saa7133[0]: registered device radio0
> [ 40.452183] ACPI: PCI Interrupt Link [AAZA] enabled at IRQ 22
> [ 40.452187] ACPI: PCI Interrupt 0000:00:10.1[B] -> Link [AAZA] -> GSI
> 22 (level, low) -> IRQ 22
> [ 40.452421] PCI: Setting latency timer of device 0000:00:10.1 to 64
> [ 40.464285] saa7134 ALSA driver for DMA sound loaded
> [ 40.464316] saa7133[0]/alsa: saa7133[0] at 0xfdbff000 irq 17
> registered as card -2
> <snip>
> That's all!
>
> 2) Put other patch in:
> case SAA7134_BOARD_AVERMEDIA_CARDBUS_506:
> case SAA7134_BOARD_AVERMEDIA_M115:
> case SAA7134_BOARD_BEHOLD_COLUMBUS_TVFM:
> + case SAA7134_BOARD_AVERMEDIA_A16D:
> /* power-up tuner chip */
> saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0xffffffff, 0xffffffff);
> saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0xffffffff, 0xffffffff);
>
> - make, sudo make install v4l-dvb, reboot
> - still no /dev/video#
> - still no soundcard detected??? -> no volume control
> dmesg
> <snip>
> [ 37.052833] Linux video capture interface: v2.00
> [ 37.088234] parport_pc 00:08: reported by Plug and Play ACPI
> [ 37.088328] parport0: PC-style at 0x378 (0x778), irq 7, dma 3
> [PCSPP,TRISTATE,COMPAT,ECP,DMA]
> [ 37.091985] hdc: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB
> Cache, UDMA(66)
> [ 37.091993] Uniform CD-ROM driver Revision: 3.20
> [ 37.127981] saa7130/34: v4l2 driver version 0.2.14 loaded
> [ 37.129041] ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
> [ 37.129053] ACPI: PCI Interrupt 0000:04:09.0[A] -> Link [APC2] -> GSI
> 17 (level, low) -> IRQ 17
> [ 37.129063] saa7133[0]: found at 0000:04:09.0, rev: 209, irq: 17,
> latency: 32, mmio: 0xfdbff000
> [ 37.129069] saa7133[0]: subsystem: 1461:f936, board: AVerMedia Hybrid
> TV/Radio (A16D) [card=137,autodetected]
> [ 37.129080] saa7133[0]: board init: gpio is 2fe00
> [ 37.301262] saa7133[0]: i2c eeprom 00: 61 14 36 f9 00 00 00 00 00 00
> 00 00 00 00 00 00
> [ 37.301272] saa7133[0]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301281] saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 00 08 ff
> 00 0e ff ff ff ff
> [ 37.301288] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301297] saa7133[0]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301305] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301312] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301320] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301328] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301336] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301344] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301352] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301360] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301368] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301376] saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.301384] saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 37.321227] saa7133[0]: i2c scan: found device @ 0xa0 [eeprom]
> [ 37.333208] saa7133[0]: i2c scan: found device @ 0xc2 [???]
> [ 37.417690] tuner' 2-0061: Setting mode_mask to 0x0e
> [ 37.417696] tuner' 2-0061: chip found @ 0xc2 (saa7133[0])
> [ 37.417699] tuner' 2-0061: tuner 0x61: Tuner type absent
> [ 37.417734] tuner' 2-0061: Calling set_type_addr for type=71,
> addr=0xff, mode=0x04, config=0x00
> [ 37.417737] tuner' 2-0061: set addr for type -1
> [ 37.417739] tuner' 2-0061: defining GPIO callback
> [ 37.417742] xc2028: Xcv2028/3028 init called!
> [ 37.417745] xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
> [ 37.417748] tuner' 2-0061: type set to Xceive XC3028
> [ 37.417751] tuner' 2-0061: tv freq set to 400.00
> [ 37.417753] xc2028 2-0061: xc2028_set_analog_freq called
> [ 37.417756] xc2028 2-0061: generic_set_freq called
> [ 37.417759] xc2028 2-0061: should set frequency 400000 kHz
> [ 37.417761] xc2028 2-0061: check_firmware called
> [ 37.417763] xc2028 2-0061: xc2028/3028 firmware name not set!
> [ 37.417767] tuner' 2-0061: saa7133[0] tuner' I2C addr 0xc2 with type
> 71 used for 0x0e
> [ 37.419545] xc2028 2-0061: xc2028_set_config called
> [ 37.419553] tuner' 2-0061: switching to v4l2
> [ 37.419557] tuner' 2-0061: tv freq set to 400.00
> [ 37.419560] xc2028 2-0061: xc2028_set_analog_freq called
> [ 37.419563] xc2028 2-0061: generic_set_freq called
> [ 37.419565] xc2028 2-0061: should set frequency 400000 kHz
> [ 37.419568] xc2028 2-0061: check_firmware called
> [ 37.419570] xc2028 2-0061: load_all_firmwares called
> [ 37.419572] xc2028 2-0061: Reading firmware xc3028-v27.fw
> [ 37.456770] xc2028 2-0061: Loading 80 firmware images from
> xc3028-v27.fw, type: xc2028 firmware, ver 2.7
> [ 37.456783] xc2028 2-0061: Reading firmware type BASE F8MHZ (3), id
> 0, size=8718.
> [ 37.456798] xc2028 2-0061: Reading firmware type BASE F8MHZ MTS (7),
> id 0, size=8712.
> [ 37.456812] xc2028 2-0061: Reading firmware type BASE FM (401), id 0,
> size=8562.
> [ 37.456827] xc2028 2-0061: Reading firmware type BASE FM INPUT1
> (c01), id 0, size=8576.
> [ 37.456841] xc2028 2-0061: Reading firmware type BASE (1), id 0,
> size=8706.
> [ 37.456855] xc2028 2-0061: Reading firmware type BASE MTS (5), id 0,
> size=8682.
> [ 37.456864] xc2028 2-0061: Reading firmware type (0), id 100000007,
> size=161.
> [ 37.456867] xc2028 2-0061: Reading firmware type MTS (4), id
> 100000007, size=169.
> [ 37.456872] xc2028 2-0061: Reading firmware type (0), id 200000007,
> size=161.
> [ 37.456875] xc2028 2-0061: Reading firmware type MTS (4), id
> 200000007, size=169.
> [ 37.456879] xc2028 2-0061: Reading firmware type (0), id 400000007,
> size=161.
> [ 37.456882] xc2028 2-0061: Reading firmware type MTS (4), id
> 400000007, size=169.
> [ 37.456887] xc2028 2-0061: Reading firmware type (0), id 800000007,
> size=161.
> [ 37.456890] xc2028 2-0061: Reading firmware type MTS (4), id
> 800000007, size=169.
> [ 37.456895] xc2028 2-0061: Reading firmware type (0), id 3000000e0,
> size=161.
> [ 37.456898] xc2028 2-0061: Reading firmware type MTS (4), id
> 3000000e0, size=169.
> [ 37.456902] xc2028 2-0061: Reading firmware type (0), id c000000e0,
> size=161.
> [ 37.456905] xc2028 2-0061: Reading firmware type MTS (4), id
> c000000e0, size=169.
> [ 37.456910] xc2028 2-0061: Reading firmware type (0), id 200000,
> size=161.
> [ 37.456913] xc2028 2-0061: Reading firmware type MTS (4), id 200000,
> size=169.
> [ 37.456917] xc2028 2-0061: Reading firmware type (0), id 4000000,
> size=161.
> [ 37.456920] xc2028 2-0061: Reading firmware type MTS (4), id 4000000,
> size=169.
> [ 37.456924] xc2028 2-0061: Reading firmware type D2633 DTV6 ATSC
> (10030), id 0, size=149.
> [ 37.456928] xc2028 2-0061: Reading firmware type D2620 DTV6 QAM (68),
> id 0, size=149.
> [ 37.456932] xc2028 2-0061: Reading firmware type D2633 DTV6 QAM (70),
> id 0, size=149.
> [ 37.456938] xc2028 2-0061: Reading firmware type D2620 DTV7 (88), id
> 0, size=149.
> [ 37.456942] xc2028 2-0061: Reading firmware type D2633 DTV7 (90), id
> 0, size=149.
> [ 37.456946] xc2028 2-0061: Reading firmware type D2620 DTV78 (108),
> id 0, size=149.
> [ 37.456951] xc2028 2-0061: Reading firmware type D2633 DTV78 (110),
> id 0, size=149.
> [ 37.456954] xc2028 2-0061: Reading firmware type D2620 DTV8 (208), id
> 0, size=149.
> [ 37.456958] xc2028 2-0061: Reading firmware type D2633 DTV8 (210), id
> 0, size=149.
> [ 37.456963] xc2028 2-0061: Reading firmware type FM (400), id 0,
> size=135.
> [ 37.456966] xc2028 2-0061: Reading firmware type (0), id 10,
> size=161.
> [ 37.456969] xc2028 2-0061: Reading firmware type MTS (4), id 10,
> size=169.
> [ 37.456973] xc2028 2-0061: Reading firmware type (0), id 1000400000,
> size=169.
> [ 37.456977] xc2028 2-0061: Reading firmware type (0), id c00400000,
> size=161.
> [ 37.456980] xc2028 2-0061: Reading firmware type (0), id 800000,
> size=161.
> [ 37.456984] xc2028 2-0061: Reading firmware type (0), id 8000,
> size=161.
> [ 37.456987] xc2028 2-0061: Reading firmware type LCD (1000), id 8000,
> size=161.
> [ 37.456991] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id
> 8000, size=161.
> [ 37.456995] xc2028 2-0061: Reading firmware type MTS (4), id 8000,
> size=169.
> [ 37.456999] xc2028 2-0061: Reading firmware type (0), id b700,
> size=161.
> [ 37.457002] xc2028 2-0061: Reading firmware type LCD (1000), id b700,
> size=161.
> [ 37.457006] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id
> b700, size=161.
> [ 37.457010] xc2028 2-0061: Reading firmware type (0), id 2000,
> size=161.
> [ 37.457013] xc2028 2-0061: Reading firmware type MTS (4), id b700,
> size=169.
> [ 37.457021] xc2028 2-0061: Reading firmware type MTS LCD (1004), id
> b700, size=169.
> [ 37.457025] xc2028 2-0061: Reading firmware type MTS LCD NOGD (3004),
> id b700, size=169.
> [ 37.457029] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3280
> (60000000), id 0, size=192.
> [ 37.457034] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3300
> (60000000), id 0, size=192.
> [ 37.457039] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3440
> (60000000), id 0, size=192.
> [ 37.457043] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3460
> (60000000), id 0, size=192.
> [ 37.457047] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN36
> SCODE HAS_IF_3800 (60210020), id 0, size=192.
> [ 37.457053] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4000
> (60000000), id 0, size=192.
> [ 37.457057] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA388
> SCODE HAS_IF_4080 (60410020), id 0, size=192.
> [ 37.457063] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4200
> (60000000), id 0, size=192.
> [ 37.457067] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_4320 (60008000), id 8000, size=192.
> [ 37.457072] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4450
> (60000000), id 0, size=192.
> [ 37.457077] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4500
> (60000000), id 2000, size=192.
> [ 37.457081] xc2028 2-0061: Reading firmware type LCD NOGD IF SCODE
> HAS_IF_4600 (60023000), id 8000, size=192.
> [ 37.457087] xc2028 2-0061: Reading firmware type DTV78 ZARLINK456
> SCODE HAS_IF_4760 (62000100), id 0, size=192.
> [ 37.457092] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4940
> (60000000), id 0, size=192.
> [ 37.457096] xc2028 2-0061: Reading firmware type DTV7 ZARLINK456
> SCODE HAS_IF_5260 (62000080), id 0, size=192.
> [ 37.457101] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_5320 (60008000), id 800000007, size=192.
> [ 37.457107] xc2028 2-0061: Reading firmware type DTV8 CHINA SCODE
> HAS_IF_5400 (64000200), id 0, size=192.
> [ 37.457111] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN538
> SCODE HAS_IF_5580 (60110020), id 0, size=192.
> [ 37.457117] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5640
> (60000000), id 200000007, size=192.
> [ 37.457124] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5740
> (60000000), id 800000007, size=192.
> [ 37.457129] xc2028 2-0061: Reading firmware type DTV7 DIBCOM52 SCODE
> HAS_IF_5900 (61000080), id 0, size=192.
> [ 37.457134] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_6000 (60008000), id 10, size=192.
> [ 37.457139] xc2028 2-0061: Reading firmware type DTV6 QAM F6MHZ SCODE
> HAS_IF_6200 (68000060), id 0, size=192.
> [ 37.457144] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6240
> (60000000), id 10, size=192.
> [ 37.457149] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_6320 (60008000), id 200000, size=192.
> [ 37.457154] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6340
> (60000000), id 200000, size=192.
> [ 37.457159] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_6500 (60008000), id 4000000, size=192.
> [ 37.457164] xc2028 2-0061: Reading firmware type DTV6 ATSC ATI638
> SCODE HAS_IF_6580 (60090020), id 0, size=192.
> [ 37.457169] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6600
> (60000000), id 3000000e0, size=192.
> [ 37.457174] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_6680 (60008000), id 3000000e0, size=192.
> [ 37.457180] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA794
> SCODE HAS_IF_8140 (60810020), id 0, size=192.
> [ 37.457185] xc2028 2-0061: Reading firmware type SCODE HAS_IF_8200
> (60000000), id 0, size=192.
> [ 37.457201] xc2028 2-0061: Firmware files loaded.
> [ 37.457203] xc2028 2-0061: checking firmware, user requested
> type=F8MHZ MTS (6), id 00000000000000ff, scode_tbl (0), scode_nr 0
> [ 37.457229] Unable to handle kernel NULL pointer dereference at
> 00000000000001c4 RIP:
> [ 37.457232] [<ffffffff88255839>] :saa7134:saa7134_tuner_callback
> +0x9/0x190
> [ 37.457255] PGD 65f26067 PUD 66a9e067 PMD 0
> [ 37.457259] Oops: 0000 [1] SMP
> [ 37.457262] CPU 0
> [ 37.457264] Modules linked in: tuner tea5767 tda8290 tda18271 tda827x
> tuner_xc2028 xc5000 tda9887 tuner_simple tuner_types mt20xx tea5761
> snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy
> snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event saa7134 snd_seq
> parport_pc ide_cd cdrom snd_timer snd_seq_device compat_ioctl32 videodev
> v4l1_compat v4l2_common videobuf_dma_sg videobuf_core ir_kbd_i2c
> ir_common tveeprom xpad pcspkr psmouse parport snd soundcore
> snd_page_alloc i2c_nforce2 serio_raw k8temp i2c_core shpchp pci_hotplug
> evdev ext3 jbd mbcache sg sd_mod amd74xx ide_core usbhid hid forcedeth
> sata_nv ata_generic libata scsi_mod ohci_hcd ehci_hcd usbcore thermal
> processor fan fuse apparmor commoncap
> [ 37.457305] Pid: 3942, comm: modprobe Not tainted 2.6.22-14-generic
> #1
> [ 37.457308] RIP: 0010:[<ffffffff88255839>]
> [<ffffffff88255839>] :saa7134:saa7134_tuner_callback+0x9/0x190
> [ 37.457321] RSP: 0018:ffff810065c65a38 EFLAGS: 00010292
> [ 37.457323] RAX: 0000000000000007 RBX: 0000000000000001 RCX:
> 0000000000000000
> [ 37.457326] RDX: 0000000000000000 RSI: 0000000000000000 RDI:
> 0000000000000000
> [ 37.457329] RBP: ffff81006c2e6600 R08: 000000000000904b R09:
> 0000000000000007
> [ 37.457331] R10: 0000000000000000 R11: 0000000000000001 R12:
> 0000000000000000
> [ 37.457334] R13: ffff81006c2e6678 R14: 0000000000000001 R15:
> 0000000000000001
> [ 37.457338] FS: 00002ad17e0376e0(0000) GS:ffffffff80560000(0000)
> knlGS:0000000000000000
> [ 37.457341] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 37.457344] CR2: 00000000000001c4 CR3: 0000000067900000 CR4:
> 00000000000006e0
> [ 37.457348] Process modprobe (pid: 3942, threadinfo ffff810065c64000,
> task ffff810037e02dc0)
> [ 37.457350] Stack: ffff81006c2e6600 ffffffff8833c803
> ffff810065c65b08 ffff810000000002
> [ 37.457358] ffff810000000007 ffff81006d7db000 ffff81006d7db270
> 00000000000000ff
> [ 37.457363] 000000066d7db170 17d7840000000004 ffff81006d7db000
> ffff81006c2e66a0
> [ 37.457368] Call Trace:
> [ 37.457375] [<ffffffff8833c803>] :tuner_xc2028:generic_set_freq
> +0x593/0x1830
> [ 37.457393] [<ffffffff802361fe>] printk+0x4e/0x60
> [ 37.457408] [<ffffffff8835aa4e>] :tuner:set_tv_freq+0xae/0x1c0
> [ 37.457417] [<ffffffff8835abd1>] :tuner:set_freq+0x71/0x1a0
> [ 37.457423] [<ffffffff8835bfe8>] :tuner:tuner_command+0x198/0x12f0
> [ 37.457439] [<ffffffff8818c072>] :i2c_core:i2c_clients_command
> +0xa2/0xf0
> [ 37.457452] [<ffffffff8825dfc0>] :saa7134:saa7134_video_init2
> +0x10/0x40
> [ 37.457462] [<ffffffff882577bb>] :saa7134:saa7134_initdev
> +0x3fb/0x9a0
> [ 37.457469] [<ffffffff802e8530>] sysfs_make_dirent+0x30/0x50
> [ 37.457478] [<ffffffff803352d1>] pci_device_probe+0xf1/0x170
> [ 37.457487] [<ffffffff80391063>] driver_probe_device+0xa3/0x1b0
> [ 37.457494] [<ffffffff80391329>] __driver_attach+0xc9/0xd0
> [ 37.457499] [<ffffffff80391260>] __driver_attach+0x0/0xd0
> [ 37.457503] [<ffffffff8039023d>] bus_for_each_dev+0x4d/0x80
> [ 37.457512] [<ffffffff8039069f>] bus_add_driver+0xaf/0x1f0
> [ 37.457518] [<ffffffff80335556>] __pci_register_driver+0x66/0xb0
> [ 37.457525] [<ffffffff80256edb>] sys_init_module+0x19b/0x19b0
> [ 37.457540] [<ffffffff80326a21>] __up_write+0x21/0x130
> [ 37.457551] [<ffffffff80209e8e>] system_call+0x7e/0x83
> [ 37.457560]
> [ 37.457561]
> [ 37.457562] Code: 8b 87 c4 01 00 00 83 f8 36 74 0f 83 f8 47 74 27 b8
> ea ff ff
> [ 37.457571] RIP [<ffffffff88255839>] :saa7134:saa7134_tuner_callback
> +0x9/0x190
> [ 37.457582] RSP <ffff810065c65a38>
> [ 37.457584] CR2: 00000000000001c4
> [ 217.307903] loop: module loaded
> <snip>
>
> 3) upgraded ubuntu 7.10
>
> - now have /dev/video0 but tvtime no channel management
> - now have a soundcard and volume control
> dmesg
> <snip>
> [ 40.858920] Linux video capture interface: v2.00
> [ 40.885880] videobuf_core: exports duplicate symbol
> videobuf_mmap_mapper (owned by video_buf)
> [ 40.898374] videobuf_dma_sg: disagrees about version of symbol
> videobuf_alloc
> [ 40.898379] videobuf_dma_sg: Unknown symbol videobuf_alloc
> [ 40.898442] videobuf_dma_sg: Unknown symbol videobuf_queue_core_init
> [ 40.966241] input: PC Speaker as /class/input/input4
> [ 40.996272] usbcore: registered new interface driver xpad
> [
> 40.996278] /build/buildd/linux-source-2.6.22-2.6.22/drivers/input/joystick/xpad.c: driver for Xbox controllers v0.1.6
> [ 41.001747] videobuf_core: exports duplicate symbol
> videobuf_mmap_mapper (owned by video_buf)
> [ 41.002059] videobuf_dma_sg: disagrees about version of symbol
> videobuf_alloc
> [ 41.002062] videobuf_dma_sg: Unknown symbol videobuf_alloc
> [ 41.002124] videobuf_dma_sg: Unknown symbol videobuf_queue_core_init
> [ 41.023093] saa7130/34: v4l2 driver version 0.2.14 loaded
> [ 41.024199] ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
> [ 41.024212] ACPI: PCI Interrupt 0000:04:09.0[A] -> Link [APC2] -> GSI
> 17 (level, low) -> IRQ 17
> [ 41.024221] saa7133[0]: found at 0000:04:09.0, rev: 209, irq: 17,
> latency: 32, mmio: 0xfdbff000
> [ 41.024228] saa7133[0]: subsystem: 1461:f936, board: UNKNOWN/GENERIC
> [card=0,autodetected]
> [ 41.024238] saa7133[0]: board init: gpio is 2fa00
> [ 41.169381] saa7133[0]: i2c eeprom 00: 61 14 36 f9 00 00 00 00 00 00
> 00 00 00 00 00 00
> [ 41.169390] saa7133[0]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169398] saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 00 08 ff
> 00 0e ff ff ff ff
> [ 41.169405] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169412] saa7133[0]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169419] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169426] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169433] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 41.181368] saa7133[0]: i2c scan: found device @ 0x1e [???]
> [ 41.201331] saa7133[0]: i2c scan: found device @ 0xa0 [eeprom]
> [ 41.207898] saa7133[0]: registered device video0 [v4l2]
> [ 41.207916] saa7133[0]: registered device vbi0
> [ 41.207634] ACPI: PCI Interrupt Link [AAZA] enabled at IRQ 22
> [ 41.207640] ACPI: PCI Interrupt 0000:00:10.1[B] -> Link [AAZA] -> GSI
> 22 (level, low) -> IRQ 22
> [ 41.207843] PCI: Setting latency timer of device 0000:00:10.1 to 64
> [ 41.216288] videobuf_core: exports duplicate symbol
> videobuf_mmap_mapper (owned by video_buf)
> [ 41.216665] videobuf_dma_sg: disagrees about version of symbol
> videobuf_alloc
> [ 41.216668] videobuf_dma_sg: Unknown symbol videobuf_alloc
> [ 41.216730] videobuf_dma_sg: Unknown symbol videobuf_queue_core_init
> [ 41.229655] saa7134 ALSA driver for DMA sound loaded
> [ 41.229687] saa7133[0]/alsa: saa7133[0] at 0xfdbff000 irq 17
> registered as card -2
> [ 42.568641] loop: module loaded
> <snip>
>
> What is this?
>
> [
> 40.996278] /build/buildd/linux-source-2.6.22-2.6.22/drivers/input/joystick/xpad.c: driver for Xbox controllers v0.1.6
>
> I don't have a xbox, is it auto loaded module from kernel?
>
> 4) still no nvidia-glx-new
>
> - make, sudo make install v4l-dvb
>
> after cd v4l-dvb, make, sudo make install:
>
> timf@ubuntu:~/v4l-dvb$ sudo modprobe saa7134
> WARNING: Error inserting videobuf_core
> (/lib/modules/2.6.22-14-generic/kernel/drivers/media/video/videobuf-core.ko): Invalid module format
> WARNING: Error inserting videobuf_dma_sg
> (/lib/modules/2.6.22-14-generic/kernel/drivers/media/video/videobuf-dma-sg.ko): Unknown symbol in module, or unknown parameter (see dmesg)
> timf@ubuntu:~/v4l-dvb$
>
> dmesg
> <snip>
> [ 40.858920] Linux video capture interface: v2.00
> [ 40.885880] videobuf_core: exports duplicate symbol
> videobuf_mmap_mapper (owned by video_buf)
> [ 40.898374] videobuf_dma_sg: disagrees about version of symbol
> videobuf_alloc
> [ 40.898379] videobuf_dma_sg: Unknown symbol videobuf_alloc
> [ 40.898442] videobuf_dma_sg: Unknown symbol videobuf_queue_core_init
> [ 40.966241] input: PC Speaker as /class/input/input4
> [ 40.996272] usbcore: registered new interface driver xpad
> [
> 40.996278] /build/buildd/linux-source-2.6.22-2.6.22/drivers/input/joystick/xpad.c: driver for Xbox controllers v0.1.6
> [ 41.001747] videobuf_core: exports duplicate symbol
> videobuf_mmap_mapper (owned by video_buf)
> [ 41.002059] videobuf_dma_sg: disagrees about version of symbol
> videobuf_alloc
> [ 41.002062] videobuf_dma_sg: Unknown symbol videobuf_alloc
> [ 41.002124] videobuf_dma_sg: Unknown symbol videobuf_queue_core_init
> [ 41.023093] saa7130/34: v4l2 driver version 0.2.14 loaded
> [ 41.024199] ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
> [ 41.024212] ACPI: PCI Interrupt 0000:04:09.0[A] -> Link [APC2] -> GSI
> 17 (level, low) -> IRQ 17
> [ 41.024221] saa7133[0]: found at 0000:04:09.0, rev: 209, irq: 17,
> latency: 32, mmio: 0xfdbff000
> [ 41.024228] saa7133[0]: subsystem: 1461:f936, board: UNKNOWN/GENERIC
> [card=0,autodetected]
> [ 41.024238] saa7133[0]: board init: gpio is 2fa00
> [ 41.169381] saa7133[0]: i2c eeprom 00: 61 14 36 f9 00 00 00 00 00 00
> 00 00 00 00 00 00
> [ 41.169390] saa7133[0]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169398] saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 00 08 ff
> 00 0e ff ff ff ff
> [ 41.169405] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169412] saa7133[0]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169419] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169426] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 41.169433] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 41.181368] saa7133[0]: i2c scan: found device @ 0x1e [???]
> [ 41.201331] saa7133[0]: i2c scan: found device @ 0xa0 [eeprom]
> [ 41.207898] saa7133[0]: registered device video0 [v4l2]
> [ 41.207916] saa7133[0]: registered device vbi0
> [ 41.207634] ACPI: PCI Interrupt Link [AAZA] enabled at IRQ 22
> [ 41.207640] ACPI: PCI Interrupt 0000:00:10.1[B] -> Link [AAZA] -> GSI
> 22 (level, low) -> IRQ 22
> [ 41.207843] PCI: Setting latency timer of device 0000:00:10.1 to 64
> [ 41.216288] videobuf_core: exports duplicate symbol
> videobuf_mmap_mapper (owned by video_buf)
> [ 41.216665] videobuf_dma_sg: disagrees about version of symbol
> videobuf_alloc
> [ 41.216668] videobuf_dma_sg: Unknown symbol videobuf_alloc
> [ 41.216730] videobuf_dma_sg: Unknown symbol videobuf_queue_core_init
> [ 41.229655] saa7134 ALSA driver for DMA sound loaded
> [ 41.229687] saa7133[0]/alsa: saa7133[0] at 0xfdbff000 irq 17
> registered as card -2
> [ 42.568641] loop: module loaded
> [ 42.591463] lp0: using parport0 (interrupt-driven).
> [ 42.683471] Adding 9767512k swap on /dev/sda3. Priority:-1 extents:1
> across:9767512k
> [ 43.018620] EXT3 FS on sda4, internal journal
> [ 43.674379] kjournald starting. Commit interval 5 seconds
> [ 43.675429] EXT3 FS on sda2, internal journal
> [ 43.675436] EXT3-fs: mounted filesystem with ordered data mode.
> [ 44.385992] No dock devices found.
> [ 44.463874] input: Power Button (FF) as /class/input/input5
> [ 44.463900] ACPI: Power Button (FF) [PWRF]
> [ 44.463943] input: Power Button (CM) as /class/input/input6
> [ 44.463956] ACPI: Power Button (CM) [PWRB]
> [ 44.726559] powernow-k8: Found 2 AMD Athlon(tm) 64 X2 Dual Core
> Processor 3600+ processors (version 2.00.00)
> [ 44.725758] powernow-k8: MP systems not supported by PSB BIOS
> structure
> [ 44.726603] powernow-k8: MP systems not supported by PSB BIOS
> structure
> [ 45.730504] ppdev: user-space parallel port driver
> [ 45.850955] audit(1205902078.360:3): type=1503
> operation="inode_permission" requested_mask="a" denied_mask="a"
> name="/dev/tty" pid=5088 profile="/usr/sbin/cupsd"
> [ 46.184234] Failure registering capabilities with primary security
> module.
> [ 46.358319] Bluetooth: Core ver 2.11
> [ 46.358438] NET: Registered protocol family 31
> [ 46.358441] Bluetooth: HCI device and connection manager initialized
> [ 46.358445] Bluetooth: HCI socket layer initialized
> [ 46.368366] Bluetooth: L2CAP ver 2.8
> [ 46.368373] Bluetooth: L2CAP socket layer initialized
> [ 46.419940] Bluetooth: RFCOMM socket layer initialized
> [ 46.420043] Bluetooth: RFCOMM TTY layer initialized
> [ 46.420046] Bluetooth: RFCOMM ver 1.8
> [ 50.527622] NET: Registered protocol family 17
> [ 53.186922] NET: Registered protocol family 10
> [ 53.187106] lo: Disabled Privacy Extensions
> [ 63.602916] eth0: no IPv6 routers present
> [ 112.219989] usb 2-2: new high speed USB device using ehci_hcd and
> address 4
> [ 112.353831] usb 2-2: configuration #1 chosen from 1 choice
> [ 112.427851] usbcore: registered new interface driver libusual
> [ 112.448957] Initializing USB Mass Storage driver...
> [ 112.449315] scsi4 : SCSI emulation for USB Mass Storage devices
> [ 112.449028] usb-storage: device found at 4
> [ 112.449035] usb-storage: waiting for device to settle before scanning
> [ 112.449716] usbcore: registered new interface driver usb-storage
> [ 112.449805] USB Mass Storage support registered.
> [ 117.444090] usb-storage: device scan complete
> [ 117.445168] scsi 4:0:0:0: Direct-Access USBDisk RunDisk
> 1.00 PQ: 0 ANSI: 2
> [ 117.450144] sd 4:0:0:0: [sdb] 4005000 512-byte hardware sectors (2051
> MB)
> [ 117.451766] sd 4:0:0:0: [sdb] Write Protect is off
> [ 117.451771] sd 4:0:0:0: [sdb] Mode Sense: 0b 00 00 08
> [ 117.451774] sd 4:0:0:0: [sdb] Assuming drive cache: write through
> [ 117.457132] sd 4:0:0:0: [sdb] 4005000 512-byte hardware sectors (2051
> MB)
> [ 117.458754] sd 4:0:0:0: [sdb] Write Protect is off
> [ 117.458758] sd 4:0:0:0: [sdb] Mode Sense: 0b 00 00 08
> [ 117.458762] sd 4:0:0:0: [sdb] Assuming drive cache: write through
> [ 117.458766] sdb: sdb1
> [ 117.511250] sd 4:0:0:0: [sdb] Attached SCSI removable disk
> [ 117.511293] sd 4:0:0:0: Attached scsi generic sg1 type 0
> [ 142.382746] usb 2-2: USB disconnect, address 4
> [ 831.554889] videobuf_core: exports duplicate symbol
> videobuf_mmap_mapper (owned by video_buf)
> [ 831.555406] videobuf_dma_sg: disagrees about version of symbol
> videobuf_alloc
> [ 831.555410] videobuf_dma_sg: Unknown symbol videobuf_alloc
> [ 831.555473] videobuf_dma_sg: Unknown symbol videobuf_queue_core_init
> [ 944.319189] usb 2-2: new high speed USB device using ehci_hcd and
> address 5
> [ 944.465057] usb 2-2: configuration #1 chosen from 1 choice
> [ 944.465398] scsi5 : SCSI emulation for USB Mass Storage devices
> [ 944.465168] usb-storage: device found at 5
> [ 944.465174] usb-storage: waiting for device to settle before scanning
> [ 949.459464] usb-storage: device scan complete
> [ 949.460517] scsi 5:0:0:0: Direct-Access USBDisk RunDisk
> 1.00 PQ: 0 ANSI: 2
> [ 949.465494] sd 5:0:0:0: [sdb] 4005000 512-byte hardware sectors (2051
> MB)
> [ 949.467115] sd 5:0:0:0: [sdb] Write Protect is off
> [ 949.467119] sd 5:0:0:0: [sdb] Mode Sense: 0b 00 00 08
> [ 949.467124] sd 5:0:0:0: [sdb] Assuming drive cache: write through
> [ 949.472482] sd 5:0:0:0: [sdb] 4005000 512-byte hardware sectors (2051
> MB)
> [ 949.474103] sd 5:0:0:0: [sdb] Write Protect is off
> [ 949.474107] sd 5:0:0:0: [sdb] Mode Sense: 0b 00 00 08
> [ 949.474109] sd 5:0:0:0: [sdb] Assuming drive cache: write through
> [ 949.474113] sdb: sdb1
> [ 949.599354] sd 5:0:0:0: [sdb] Attached SCSI removable disk
> [ 949.599397] sd 5:0:0:0: Attached scsi generic sg1 type 0
>
> What's this?
> [ 41.216288] videobuf_core: exports duplicate symbol
> videobuf_mmap_mapper (owned by video_buf)
> [ 41.216665] videobuf_dma_sg: disagrees about version of symbol
> videobuf_alloc
> [ 41.216668] videobuf_dma_sg: Unknown symbol videobuf_alloc
> [ 41.216730] videobuf_dma_sg: Unknown symbol videobuf_queue_core_init
>
> still no nvidia-glx-new
>
> Reboot
> dmesg
> <snip>
> [ 38.451668] Linux video capture interface: v2.00
> [ 38.478278] usbcore: registered new interface driver xpad
> [
> 38.478284] /build/buildd/linux-source-2.6.22-2.6.22/drivers/input/joystick/xpad.c: driver for Xbox controllers v0.1.6
> [ 38.536507] saa7130/34: v4l2 driver version 0.2.14 loaded
> [ 38.537018] ACPI: PCI Interrupt Link [APC2] enabled at IRQ 17
> [ 38.537030] ACPI: PCI Interrupt 0000:04:09.0[A] -> Link [APC2] -> GSI
> 17 (level, low) -> IRQ 17
> [ 38.537038] saa7133[0]: found at 0000:04:09.0, rev: 209, irq: 17,
> latency: 32, mmio: 0xfdbff000
> [ 38.537045] saa7133[0]: subsystem: 1461:f936, board: AVerMedia Hybrid
> TV/Radio (A16D) [card=137,autodetected]
> [ 38.537055] saa7133[0]: board init: gpio is 2fa00
> [ 38.720192] saa7133[0]: i2c eeprom 00: 61 14 36 f9 00 00 00 00 00 00
> 00 00 00 00 00 00
> [ 38.720201] saa7133[0]: i2c eeprom 10: ff ff ff ff ff 20 ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720208] saa7133[0]: i2c eeprom 20: 01 40 01 02 02 01 01 00 08 ff
> 00 0e ff ff ff ff
> [ 38.720216] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720223] saa7133[0]: i2c eeprom 40: ff 65 00 ff c2 1e ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720230] saa7133[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720237] saa7133[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720245] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720252] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720259] saa7133[0]: i2c eeprom 90: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720267] saa7133[0]: i2c eeprom a0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720274] saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720281] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720289] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720297] saa7133[0]: i2c eeprom e0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.720304] saa7133[0]: i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff ff
> [ 38.740158] saa7133[0]: i2c scan: found device @ 0xa0 [eeprom]
> [ 38.752139] saa7133[0]: i2c scan: found device @ 0xc2 [???]
> [ 38.851995] tuner' 2-0061: Setting mode_mask to 0x0e
> [ 38.852000] tuner' 2-0061: chip found @ 0xc2 (saa7133[0])
> [ 38.852003] tuner' 2-0061: tuner 0x61: Tuner type absent
> [ 38.852043] tuner' 2-0061: Calling set_type_addr for type=71,
> addr=0xff, mode=0x04, config=0x00
> [ 38.852046] tuner' 2-0061: set addr for type -1
> [ 38.852048] tuner' 2-0061: defining GPIO callback
> [ 38.852051] xc2028: Xcv2028/3028 init called!
> [ 38.852055] xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
> [ 38.852058] tuner' 2-0061: type set to Xceive XC3028
> [ 38.852061] tuner' 2-0061: tv freq set to 400.00
> [ 38.852063] xc2028 2-0061: xc2028_set_analog_freq called
> [ 38.852066] xc2028 2-0061: generic_set_freq called
> [ 38.852069] xc2028 2-0061: should set frequency 400000 kHz
> [ 38.852071] xc2028 2-0061: check_firmware called
> [ 38.852073] xc2028 2-0061: xc2028/3028 firmware name not set!
> [ 38.852076] tuner' 2-0061: saa7133[0] tuner' I2C addr 0xc2 with type
> 71 used for 0x0e
> [ 38.854098] xc2028 2-0061: xc2028_set_config called
> [ 38.854103] tuner' 2-0061: switching to v4l2
> [ 38.854106] tuner' 2-0061: tv freq set to 400.00
> [ 38.854108] xc2028 2-0061: xc2028_set_analog_freq called
> [ 38.854110] xc2028 2-0061: generic_set_freq called
> [ 38.854113] xc2028 2-0061: should set frequency 400000 kHz
> [ 38.854115] xc2028 2-0061: check_firmware called
> [ 38.854117] xc2028 2-0061: load_all_firmwares called
> [ 38.854119] xc2028 2-0061: Reading firmware xc3028-v27.fw
> [ 38.887454] xc2028 2-0061: Loading 80 firmware images from
> xc3028-v27.fw, type: xc2028 firmware, ver 2.7
> [ 38.887468] xc2028 2-0061: Reading firmware type BASE F8MHZ (3), id
> 0, size=8718.
> [ 38.887481] xc2028 2-0061: Reading firmware type BASE F8MHZ MTS (7),
> id 0, size=8712.
> [ 38.887492] xc2028 2-0061: Reading firmware type BASE FM (401), id 0,
> size=8562.
> [ 38.887502] xc2028 2-0061: Reading firmware type BASE FM INPUT1
> (c01), id 0, size=8576.
> [ 38.887514] xc2028 2-0061: Reading firmware type BASE (1), id 0,
> size=8706.
> [ 38.887525] xc2028 2-0061: Reading firmware type BASE MTS (5), id 0,
> size=8682.
> [ 38.887531] xc2028 2-0061: Reading firmware type (0), id 100000007,
> size=161.
> [ 38.887534] xc2028 2-0061: Reading firmware type MTS (4), id
> 100000007, size=169.
> [ 38.887539] xc2028 2-0061: Reading firmware type (0), id 200000007,
> size=161.
> [ 38.887542] xc2028 2-0061: Reading firmware type MTS (4), id
> 200000007, size=169.
> [ 38.887546] xc2028 2-0061: Reading firmware type (0), id 400000007,
> size=161.
> [ 38.887550] xc2028 2-0061: Reading firmware type MTS (4), id
> 400000007, size=169.
> [ 38.887554] xc2028 2-0061: Reading firmware type (0), id 800000007,
> size=161.
> [ 38.887558] xc2028 2-0061: Reading firmware type MTS (4), id
> 800000007, size=169.
> [ 38.887562] xc2028 2-0061: Reading firmware type (0), id 3000000e0,
> size=161.
> [ 38.887565] xc2028 2-0061: Reading firmware type MTS (4), id
> 3000000e0, size=169.
> [ 38.887569] xc2028 2-0061: Reading firmware type (0), id c000000e0,
> size=161.
> [ 38.887572] xc2028 2-0061: Reading firmware type MTS (4), id
> c000000e0, size=169.
> [ 38.887576] xc2028 2-0061: Reading firmware type (0), id 200000,
> size=161.
> [ 38.887579] xc2028 2-0061: Reading firmware type MTS (4), id 200000,
> size=169.
> [ 38.887583] xc2028 2-0061: Reading firmware type (0), id 4000000,
> size=161.
> [ 38.887586] xc2028 2-0061: Reading firmware type MTS (4), id 4000000,
> size=169.
> [ 38.887590] xc2028 2-0061: Reading firmware type D2633 DTV6 ATSC
> (10030), id 0, size=149.
> [ 38.887594] xc2028 2-0061: Reading firmware type D2620 DTV6 QAM (68),
> id 0, size=149.
> [ 38.887598] xc2028 2-0061: Reading firmware type D2633 DTV6 QAM (70),
> id 0, size=149.
> [ 38.887604] xc2028 2-0061: Reading firmware type D2620 DTV7 (88), id
> 0, size=149.
> [ 38.887607] xc2028 2-0061: Reading firmware type D2633 DTV7 (90), id
> 0, size=149.
> [ 38.887611] xc2028 2-0061: Reading firmware type D2620 DTV78 (108),
> id 0, size=149.
> [ 38.887615] xc2028 2-0061: Reading firmware type D2633 DTV78 (110),
> id 0, size=149.
> [ 38.887619] xc2028 2-0061: Reading firmware type D2620 DTV8 (208), id
> 0, size=149.
> [ 38.887622] xc2028 2-0061: Reading firmware type D2633 DTV8 (210), id
> 0, size=149.
> [ 38.887626] xc2028 2-0061: Reading firmware type FM (400), id 0,
> size=135.
> [ 38.887630] xc2028 2-0061: Reading firmware type (0), id 10,
> size=161.
> [ 38.887633] xc2028 2-0061: Reading firmware type MTS (4), id 10,
> size=169.
> [ 38.887636] xc2028 2-0061: Reading firmware type (0), id 1000400000,
> size=169.
> [ 38.887640] xc2028 2-0061: Reading firmware type (0), id c00400000,
> size=161.
> [ 38.887643] xc2028 2-0061: Reading firmware type (0), id 800000,
> size=161.
> [ 38.887646] xc2028 2-0061: Reading firmware type (0), id 8000,
> size=161.
> [ 38.887649] xc2028 2-0061: Reading firmware type LCD (1000), id 8000,
> size=161.
> [ 38.887653] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id
> 8000, size=161.
> [ 38.887657] xc2028 2-0061: Reading firmware type MTS (4), id 8000,
> size=169.
> [ 38.887661] xc2028 2-0061: Reading firmware type (0), id b700,
> size=161.
> [ 38.887664] xc2028 2-0061: Reading firmware type LCD (1000), id b700,
> size=161.
> [ 38.887667] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id
> b700, size=161.
> [ 38.887671] xc2028 2-0061: Reading firmware type (0), id 2000,
> size=161.
> [ 38.887674] xc2028 2-0061: Reading firmware type MTS (4), id b700,
> size=169.
> [ 38.887679] xc2028 2-0061: Reading firmware type MTS LCD (1004), id
> b700, size=169.
> [ 38.887682] xc2028 2-0061: Reading firmware type MTS LCD NOGD (3004),
> id b700, size=169.
> [ 38.887687] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3280
> (60000000), id 0, size=192.
> [ 38.887691] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3300
> (60000000), id 0, size=192.
> [ 38.887695] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3440
> (60000000), id 0, size=192.
> [ 38.887700] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3460
> (60000000), id 0, size=192.
> [ 38.887705] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN36
> SCODE HAS_IF_3800 (60210020), id 0, size=192.
> [ 38.887710] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4000
> (60000000), id 0, size=192.
> [ 38.887715] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA388
> SCODE HAS_IF_4080 (60410020), id 0, size=192.
> [ 38.887720] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4200
> (60000000), id 0, size=192.
> [ 38.887725] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_4320 (60008000), id 8000, size=192.
> [ 38.887730] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4450
> (60000000), id 0, size=192.
> [ 38.887734] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4500
> (60000000), id 2000, size=192.
> [ 38.887739] xc2028 2-0061: Reading firmware type LCD NOGD IF SCODE
> HAS_IF_4600 (60023000), id 8000, size=192.
> [ 38.887744] xc2028 2-0061: Reading firmware type DTV78 ZARLINK456
> SCODE HAS_IF_4760 (62000100), id 0, size=192.
> [ 38.887749] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4940
> (60000000), id 0, size=192.
> [ 38.887753] xc2028 2-0061: Reading firmware type DTV7 ZARLINK456
> SCODE HAS_IF_5260 (62000080), id 0, size=192.
> [ 38.887758] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_5320 (60008000), id 800000007, size=192.
> [ 38.887763] xc2028 2-0061: Reading firmware type DTV8 CHINA SCODE
> HAS_IF_5400 (64000200), id 0, size=192.
> [ 38.887768] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN538
> SCODE HAS_IF_5580 (60110020), id 0, size=192.
> [ 38.887774] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5640
> (60000000), id 200000007, size=192.
> [ 38.887780] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5740
> (60000000), id 800000007, size=192.
> [ 38.887785] xc2028 2-0061: Reading firmware type DTV7 DIBCOM52 SCODE
> HAS_IF_5900 (61000080), id 0, size=192.
> [ 38.887790] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_6000 (60008000), id 10, size=192.
> [ 38.887795] xc2028 2-0061: Reading firmware type DTV6 QAM F6MHZ SCODE
> HAS_IF_6200 (68000060), id 0, size=192.
> [ 38.887800] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6240
> (60000000), id 10, size=192.
> [ 38.887805] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_6320 (60008000), id 200000, size=192.
> [ 38.887810] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6340
> (60000000), id 200000, size=192.
> [ 38.887815] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_6500 (60008000), id 4000000, size=192.
> [ 38.887820] xc2028 2-0061: Reading firmware type DTV6 ATSC ATI638
> SCODE HAS_IF_6580 (60090020), id 0, size=192.
> [ 38.887825] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6600
> (60000000), id 3000000e0, size=192.
> [ 38.887830] xc2028 2-0061: Reading firmware type MONO SCODE
> HAS_IF_6680 (60008000), id 3000000e0, size=192.
> [ 38.887835] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA794
> SCODE HAS_IF_8140 (60810020), id 0, size=192.
> [ 38.887841] xc2028 2-0061: Reading firmware type SCODE HAS_IF_8200
> (60000000), id 0, size=192.
> [ 38.887851] xc2028 2-0061: Firmware files loaded.
> [ 38.887854] xc2028 2-0061: checking firmware, user requested
> type=F8MHZ MTS (6), id 00000000000000ff, scode_tbl (0), scode_nr 0
> [ 38.887878] Unable to handle kernel NULL pointer dereference at
> 00000000000001c4 RIP:
> [ 38.887881] [<ffffffff8826e839>] :saa7134:saa7134_tuner_callback
> +0x9/0x190
> [ 38.887903] PGD 67dc9067 PUD 67b92067 PMD 0
> [ 38.887906] Oops: 0000 [1] SMP
> [ 38.887909] CPU 1
> [ 38.887911] Modules linked in: tuner tea5767 tda8290 tda18271 tda827x
> tuner_xc2028 xc5000 tda9887 tuner_simple tuner_types mt20xx tea5761
> snd_hda_intel snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy saa7134
> snd_seq_oss xpad compat_ioctl32 videodev v4l1_compat v4l2_common
> videobuf_dma_sg videobuf_core ir_kbd_i2c ide_cd cdrom usbhid
> snd_seq_midi ir_common tveeprom hid parport_pc psmouse snd_rawmidi
> snd_seq_midi_event pcspkr parport snd_seq snd_timer snd_seq_device
> i2c_nforce2 k8temp serio_raw snd soundcore snd_page_alloc i2c_core
> shpchp pci_hotplug evdev ext3 jbd mbcache sg sd_mod amd74xx ide_core
> forcedeth ohci_hcd ata_generic ehci_hcd usbcore sata_nv libata scsi_mod
> thermal processor fan fuse apparmor commoncap
> [ 38.887952] Pid: 3934, comm: modprobe Not tainted 2.6.22-14-generic
> #1
> [ 38.887955] RIP: 0010:[<ffffffff8826e839>]
> [<ffffffff8826e839>] :saa7134:saa7134_tuner_callback+0x9/0x190
> [ 38.887967] RSP: 0018:ffff810066f93a38 EFLAGS: 00010292
> [ 38.887970] RAX: 0000000000000007 RBX: 0000000000000001 RCX:
> 0000000000000000
> [ 38.887972] RDX: 0000000000000000 RSI: 0000000000000000 RDI:
> 0000000000000000
> [ 38.887975] RBP: ffff810066a00000 R08: 0000000000009048 R09:
> 0000000000000007
> [ 38.887978] R10: 0000000000000000 R11: 0000000000000001 R12:
> 0000000000000000
> [ 38.887981] R13: ffff810066a00078 R14: 0000000000000001 R15:
> 0000000000000001
> [ 38.887984] FS: 00002ae9a3ee16e0(0000) GS:ffff8100378e6280(0000)
> knlGS:0000000000000000
> [ 38.887988] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 38.887990] CR2: 00000000000001c4 CR3: 0000000068c71000 CR4:
> 00000000000006e0
> [ 38.887994] Process modprobe (pid: 3934, threadinfo ffff810066f92000,
> task ffff810066a4c6e0)
> [ 38.887996] Stack: ffff810066a00000 ffffffff8833a803
> ffff810066f93b08 ffff810000000002
> [ 38.888004] ffff810000000007 ffff810065ce8c00 ffff810065ce8e70
> 00000000000000ff
> [ 38.888009] 0000000665ce8d70 17d7840000000004 ffff810065ce8c00
> ffff810066a000a0
> [ 38.888014] Call Trace:
> [ 38.888021] [<ffffffff8833a803>] :tuner_xc2028:generic_set_freq
> +0x593/0x1830
> [ 38.888038] [<ffffffff802361fe>] printk+0x4e/0x60
> [ 38.888053] [<ffffffff88358a4e>] :tuner:set_tv_freq+0xae/0x1c0
> [ 38.888061] [<ffffffff88358bd1>] :tuner:set_freq+0x71/0x1a0
> [ 38.888067] [<ffffffff88359fe8>] :tuner:tuner_command+0x198/0x12f0
> [ 38.888081] [<ffffffff88177072>] :i2c_core:i2c_clients_command
> +0xa2/0xf0
> [ 38.888094] [<ffffffff88276fc0>] :saa7134:saa7134_video_init2
> +0x10/0x40
> [ 38.888104] [<ffffffff882707bb>] :saa7134:saa7134_initdev
> +0x3fb/0x9a0
> [ 38.888110] [<ffffffff802e8600>] sysfs_make_dirent+0x30/0x50
> [ 38.888119] [<ffffffff803353a1>] pci_device_probe+0xf1/0x170
> [ 38.888128] [<ffffffff80391133>] driver_probe_device+0xa3/0x1b0
> [ 38.888134] [<ffffffff803913f9>] __driver_attach+0xc9/0xd0
> [ 38.888139] [<ffffffff80391330>] __driver_attach+0x0/0xd0
> [ 38.888144] [<ffffffff8039030d>] bus_for_each_dev+0x4d/0x80
> [ 38.888152] [<ffffffff8039076f>] bus_add_driver+0xaf/0x1f0
> [ 38.888158] [<ffffffff80335626>] __pci_register_driver+0x66/0xb0
> [ 38.888164] [<ffffffff80256f1b>] sys_init_module+0x19b/0x19b0
> [ 38.888178] [<ffffffff80326af1>] __up_write+0x21/0x130
> [ 38.888189] [<ffffffff80209e8e>] system_call+0x7e/0x83
> [ 38.888197]
> [ 38.888198]
> [ 38.888199] Code: 8b 87 c4 01 00 00 83 f8 36 74 0f 83 f8 47 74 27 b8
> ea ff ff
> [ 38.888208] RIP [<ffffffff8826e839>] :saa7134:saa7134_tuner_callback
> +0x9/0x190
> [ 38.888219] RSP <ffff810066f93a38>
> [ 38.888221] CR2: 00000000000001c4
> [ 218.562468] loop: module loaded
> <snip>
>
> - still no nvidia-glx-new module installed yet
> - again no /dev/video#
> - again no soundcard detected??? -> no volume control
>
> Now, I will wait, and not install nvidia-glx-new - it could be that
> which destroys GDM at boot, however I will need to install it to watch
> TV, nv is just not up to it.
>
> I guess that's back to you experts!
>
> Best Regards,
> Tim
Ok. People, could you please try the enclosed patch? There were some errors at
the callback codes for cx88 and saa7134. I've already tested this with two different
cx88-based xc2028 board (one analog only, and a hybrid board).
Unfortunately, I don't have any saa7134 device that requires a callback.
Hopefully, this patch will fix analog mode, on A16D and the LNA issue for
tda827x, pointed by Hartmut.
Could you please test and give us a feedback?
Cheers,
Mauro.
--
Fixes callback codes for tuners
This patch fixes several issues with callback tuners:
- Remove the need of specifiying a video device for tuner-xc3028;
- tda827x now uses the proper parameter for tuner callback (the private
data address for i2c, at i2c_adap->algo_data);
- xc3028 reusage is check via i2c parent device (i2c_adap->dev)
- checks if callback first argument is NULL
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
diff -r f24051885fe9 linux/drivers/media/dvb/dvb-usb/cxusb.c
--- a/linux/drivers/media/dvb/dvb-usb/cxusb.c Tue Mar 18 18:10:06 2008 -0300
+++ b/linux/drivers/media/dvb/dvb-usb/cxusb.c Thu Mar 20 11:07:02 2008 -0300
@@ -509,7 +509,6 @@ static int cxusb_dvico_xc3028_tuner_atta
struct xc2028_config cfg = {
.i2c_adap = &adap->dev->i2c_adap,
.i2c_addr = 0x61,
- .video_dev = adap->dev,
.callback = dvico_bluebird_xc2028_callback,
};
static struct xc2028_ctrl ctl = {
diff -r f24051885fe9 linux/drivers/media/dvb/frontends/tda827x.c
--- a/linux/drivers/media/dvb/frontends/tda827x.c Tue Mar 18 18:10:06 2008 -0300
+++ b/linux/drivers/media/dvb/frontends/tda827x.c Thu Mar 20 11:07:02 2008 -0300
@@ -579,7 +579,8 @@ static void tda827xa_lna_gain(struct dvb
else
arg = 0;
if (priv->cfg->tuner_callback)
- priv->cfg->tuner_callback(priv, 1, arg);
+ priv->cfg->tuner_callback(priv->i2c_adap->algo_data,
+ 1, arg);
buf[1] = high ? 0 : 1;
if (*priv->cfg->config == 2)
buf[1] = high ? 1 : 0;
@@ -587,7 +588,8 @@ static void tda827xa_lna_gain(struct dvb
break;
case 3: /* switch with GPIO of saa713x */
if (priv->cfg->tuner_callback)
- priv->cfg->tuner_callback(priv, 0, high);
+ priv->cfg->tuner_callback(priv->i2c_adap->algo_data,
+ 0, high);
break;
}
}
diff -r f24051885fe9 linux/drivers/media/video/cx23885/cx23885-dvb.c
--- a/linux/drivers/media/video/cx23885/cx23885-dvb.c Tue Mar 18 18:10:06 2008 -0300
+++ b/linux/drivers/media/video/cx23885/cx23885-dvb.c Thu Mar 20 11:07:02 2008 -0300
@@ -298,7 +298,6 @@ static int dvb_register(struct cx23885_t
struct xc2028_config cfg = {
.i2c_adap = &i2c_bus->i2c_adap,
.i2c_addr = 0x61,
- .video_dev = port,
.callback = cx23885_hvr1500_xc3028_callback,
};
static struct xc2028_ctrl ctl = {
diff -r f24051885fe9 linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c Tue Mar 18 18:10:06 2008 -0300
+++ b/linux/drivers/media/video/cx88/cx88-cards.c Thu Mar 20 11:07:02 2008 -0300
@@ -2140,11 +2140,9 @@ static void gdi_eeprom(struct cx88_core
/* ------------------------------------------------------------------- */
/* some Divco specific stuff */
-static int cx88_dvico_xc2028_callback(void *priv, int command, int arg)
+static int cx88_dvico_xc2028_callback(struct cx88_core *core,
+ int command, int arg)
{
- struct i2c_algo_bit_data *i2c_algo = priv;
- struct cx88_core *core = i2c_algo->data;
-
switch (command) {
case XC2028_TUNER_RESET:
cx_write(MO_GP0_IO, 0x101000);
@@ -2162,11 +2160,9 @@ static int cx88_dvico_xc2028_callback(vo
/* ----------------------------------------------------------------------- */
/* some Geniatech specific stuff */
-static int cx88_xc3028_geniatech_tuner_callback(void *priv, int command, int mode)
+static int cx88_xc3028_geniatech_tuner_callback(struct cx88_core *core,
+ int command, int mode)
{
- struct i2c_algo_bit_data *i2c_algo = priv;
- struct cx88_core *core = i2c_algo->data;
-
switch (command) {
case XC2028_TUNER_RESET:
switch (INPUT(core->input).type) {
@@ -2193,11 +2189,9 @@ static int cx88_xc3028_geniatech_tuner_c
/* ------------------------------------------------------------------- */
/* some Divco specific stuff */
-static int cx88_pv_8000gt_callback(void *priv, int command, int arg)
+static int cx88_pv_8000gt_callback(struct cx88_core *core,
+ int command, int arg)
{
- struct i2c_algo_bit_data *i2c_algo = priv;
- struct cx88_core *core = i2c_algo->data;
-
switch (command) {
case XC2028_TUNER_RESET:
cx_write(MO_GP2_IO, 0xcf7);
@@ -2248,21 +2242,18 @@ static void dvico_fusionhdtv_hybrid_init
}
}
-static int cx88_xc2028_tuner_callback(void *priv, int command, int arg)
+static int cx88_xc2028_tuner_callback(struct cx88_core *core, int command, int arg)
{
- struct i2c_algo_bit_data *i2c_algo = priv;
- struct cx88_core *core = i2c_algo->data;
-
/* Board-specific callbacks */
switch (core->boardnr) {
case CX88_BOARD_WINFAST_TV2000_XP_GLOBAL:
case CX88_BOARD_POWERCOLOR_REAL_ANGEL:
case CX88_BOARD_GENIATECH_X8000_MT:
- return cx88_xc3028_geniatech_tuner_callback(priv, command, arg);
+ return cx88_xc3028_geniatech_tuner_callback(core, command, arg);
case CX88_BOARD_PROLINK_PV_8000GT:
- return cx88_pv_8000gt_callback(priv, command, arg);
+ return cx88_pv_8000gt_callback(core, command, arg);
case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PRO:
- return cx88_dvico_xc2028_callback(priv, command, arg);
+ return cx88_dvico_xc2028_callback(core, command, arg);
}
switch (command) {
@@ -2296,11 +2287,9 @@ static int cx88_xc2028_tuner_callback(vo
* PCTV HD 800i with an xc5000 sillicon tuner. This is used for both *
* analog tuner attach (tuner-core.c) and dvb tuner attach (cx88-dvb.c) */
-static int cx88_xc5000_tuner_callback(void *priv, int command, int arg)
+static int cx88_xc5000_tuner_callback(struct cx88_core *core,
+ int command, int arg)
{
- struct i2c_algo_bit_data *i2c_algo = priv;
- struct cx88_core *core = i2c_algo->data;
-
switch (core->boardnr) {
case CX88_BOARD_PINNACLE_PCTV_HD_800i:
if (command == 0) { /* This is the reset command from xc5000 */
@@ -2334,15 +2323,27 @@ int cx88_tuner_callback(void *priv, int
int cx88_tuner_callback(void *priv, int command, int arg)
{
struct i2c_algo_bit_data *i2c_algo = priv;
- struct cx88_core *core = i2c_algo->data;
+ struct cx88_core *core;
+
+ if (!i2c_algo) {
+ printk(KERN_ERR "cx88: Error - i2c_algo not defined.\n");
+ return -EINVAL;
+ }
+
+ core = i2c_algo->data;
+
+ if (!core) {
+ printk(KERN_ERR "cx88: Error - device pointer is NULL!\n");
+ return -EINVAL;
+ }
switch (core->board.tuner_type) {
case TUNER_XC2028:
info_printk(core, "Calling XC2028/3028 callback\n");
- return cx88_xc2028_tuner_callback(priv, command, arg);
+ return cx88_xc2028_tuner_callback(core, command, arg);
case TUNER_XC5000:
info_printk(core, "Calling XC5000 callback\n");
- return cx88_xc5000_tuner_callback(priv, command, arg);
+ return cx88_xc5000_tuner_callback(core, command, arg);
}
err_printk(core, "Error: Calling callback for tuner %d\n",
core->board.tuner_type);
diff -r f24051885fe9 linux/drivers/media/video/cx88/cx88-dvb.c
--- a/linux/drivers/media/video/cx88/cx88-dvb.c Tue Mar 18 18:10:06 2008 -0300
+++ b/linux/drivers/media/video/cx88/cx88-dvb.c Thu Mar 20 11:07:02 2008 -0300
@@ -465,7 +465,6 @@ static int attach_xc3028(u8 addr, struct
struct xc2028_config cfg = {
.i2c_adap = &dev->core->i2c_adap,
.i2c_addr = addr,
- .video_dev = dev->core->i2c_adap.algo_data,
};
if (!dev->dvb.frontend) {
@@ -787,7 +786,6 @@ static int dvb_register(struct cx8802_de
struct xc2028_config cfg = {
.i2c_adap = &dev->core->i2c_adap,
.i2c_addr = 0x61,
- .video_dev = dev->core,
.callback = cx88_pci_nano_callback,
};
static struct xc2028_ctrl ctl = {
diff -r f24051885fe9 linux/drivers/media/video/saa7134/saa7134-cards.c
--- a/linux/drivers/media/video/saa7134/saa7134-cards.c Tue Mar 18 18:10:06 2008 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-cards.c Thu Mar 20 11:07:02 2008 -0300
@@ -5353,10 +5353,15 @@ static int saa7134_tda8290_callback(stru
return 0;
}
+/* priv retuns algo_data - on saa7134, it is equal to dev */
int saa7134_tuner_callback(void *priv, int command, int arg)
{
- struct i2c_algo_bit_data *i2c_algo = priv;
- struct saa7134_dev *dev = i2c_algo->data;
+ struct saa7134_dev *dev = priv;
+
+ if (!dev) {
+ printk(KERN_ERR "saa7134: Error: device pointer is NULL!\n");
+ return -EINVAL;
+ }
switch (dev->tuner_type) {
case TUNER_PHILIPS_TDA8290:
diff -r f24051885fe9 linux/drivers/media/video/saa7134/saa7134-dvb.c
--- a/linux/drivers/media/video/saa7134/saa7134-dvb.c Tue Mar 18 18:10:06 2008 -0300
+++ b/linux/drivers/media/video/saa7134/saa7134-dvb.c Thu Mar 20 11:07:02 2008 -0300
@@ -1173,7 +1173,6 @@ static int dvb_init(struct saa7134_dev *
struct xc2028_config cfg = {
.i2c_adap = &dev->i2c_adap,
.i2c_addr = 0x61,
- .video_dev = dev->i2c_adap.algo_data,
};
fe = dvb_attach(xc2028_attach, dev->dvb.frontend, &cfg);
if (!fe) {
diff -r f24051885fe9 linux/drivers/media/video/tuner-core.c
--- a/linux/drivers/media/video/tuner-core.c Tue Mar 18 18:10:06 2008 -0300
+++ b/linux/drivers/media/video/tuner-core.c Thu Mar 20 11:07:02 2008 -0300
@@ -448,7 +448,6 @@ static void set_type(struct i2c_client *
struct xc2028_config cfg = {
.i2c_adap = t->i2c->adapter,
.i2c_addr = t->i2c->addr,
- .video_dev = c->adapter->algo_data,
.callback = t->tuner_callback,
};
if (!xc2028_attach(&t->fe, &cfg)) {
diff -r f24051885fe9 linux/drivers/media/video/tuner-xc2028.c
--- a/linux/drivers/media/video/tuner-xc2028.c Tue Mar 18 18:10:06 2008 -0300
+++ b/linux/drivers/media/video/tuner-xc2028.c Thu Mar 20 11:07:02 2008 -0300
@@ -1174,7 +1174,7 @@ struct dvb_frontend *xc2028_attach(struc
if (debug)
printk(KERN_DEBUG "xc2028: Xcv2028/3028 init called!\n");
- if (NULL == cfg || NULL == cfg->video_dev)
+ if (NULL == cfg)
return NULL;
if (!fe) {
@@ -1182,13 +1182,19 @@ struct dvb_frontend *xc2028_attach(struc
return NULL;
}
- video_dev = cfg->video_dev;
+ video_dev = cfg->i2c_adap->algo_data;
+
+ if (debug)
+ printk(KERN_DEBUG "xc2028: video_dev =%p\n", video_dev);
mutex_lock(&xc2028_list_mutex);
list_for_each_entry(priv, &xc2028_list, xc2028_list) {
- if (priv->video_dev == cfg->video_dev) {
+ if (&priv->i2c_props.adap->dev == &cfg->i2c_adap->dev) {
video_dev = NULL;
+ if (debug)
+ printk(KERN_DEBUG "xc2028: reusing device\n");
+
break;
}
}
@@ -1216,6 +1222,9 @@ struct dvb_frontend *xc2028_attach(struc
fe->tuner_priv = priv;
priv->count++;
+ if (debug)
+ printk(KERN_DEBUG "xc2028: usage count is %i\n", priv->count);
+
memcpy(&fe->ops.tuner_ops, &xc2028_dvb_tuner_ops,
sizeof(xc2028_dvb_tuner_ops));
Cheers,
Mauro
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
next prev parent reply other threads:[~2008-03-20 14:55 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-03 15:07 [linux-dvb] Any chance of help with v4l-dvb-experimental / Avermedia A16D please? Richard (MQ)
2008-02-05 9:50 ` Mauro Carvalho Chehab
[not found] ` <47A8CE7E.6020908@googlemail.com>
[not found] ` <20080205222437.1397896d@gaivota>
[not found] ` <47AA014F.2090608@googlemail.com>
2008-02-07 11:26 ` Mauro Carvalho Chehab
[not found] ` <47AAF0C4.8030804@googlemail.com>
[not found] ` <47AB6A1B.5090100@googlemail.com>
2008-02-07 20:42 ` Mauro Carvalho Chehab
[not found] ` <47ACA9AA.4090702@googlemail.com>
[not found] ` <47AE20BD.7090503@googlemail.com>
2008-02-12 14:47 ` Mauro Carvalho Chehab
[not found] ` <47B1E22D.4090901@googlemail.com>
2008-03-13 14:46 ` Mauro Carvalho Chehab
[not found] ` <1205457408.6358.5.camel@ubuntu>
2008-03-14 15:14 ` Mauro Carvalho Chehab
[not found] ` <1205518856.6094.14.camel@ubuntu>
2008-03-14 18:58 ` Mauro Carvalho Chehab
[not found] ` <1205523274.6364.5.camel@ubuntu>
2008-03-14 20:21 ` Mauro Carvalho Chehab
[not found] ` <1205573636.5941.1.camel@ubuntu>
2008-03-18 13:30 ` Mauro Carvalho Chehab
[not found] ` <1205864312.11231.11.camel@ubuntu>
2008-03-18 19:17 ` Mauro Carvalho Chehab
[not found] ` <1205873332.11231.17.camel@ubuntu>
2008-03-18 21:04 ` Mauro Carvalho Chehab
[not found] ` <1205877331.11231.38.camel@ubuntu>
2008-03-18 23:25 ` Darren Salt
[not found] ` <47DEC660.3080005@googlemail.com>
2008-03-18 13:10 ` Mauro Carvalho Chehab
[not found] ` <1205875868.3385.133.camel@pc08.localdom.local>
[not found] ` <1205904196.6510.3.camel@ubuntu>
2008-03-19 8:14 ` Matthias Schwarzott
2008-03-20 14:55 ` Mauro Carvalho Chehab [this message]
[not found] ` <1206030503.5997.2.camel@ubuntu>
2008-03-20 17:07 ` Mauro Carvalho Chehab
[not found] ` <1206061004.6988.3.camel@ubuntu>
2008-03-21 1:53 ` Mauro Carvalho Chehab
2008-03-21 11:31 ` Mauro Carvalho Chehab
[not found] ` <20080322083435.2432256b@gaivota>
[not found] ` <47E51CBD.1000906@googlemail.com>
2008-03-22 14:59 ` Mauro Carvalho Chehab
[not found] ` <1206200253.6403.11.camel@ubuntu>
2008-03-22 16:13 ` Mauro Carvalho Chehab
2008-03-22 16:28 ` Mauro Carvalho Chehab
[not found] ` <47E79DE5.1050404@googlemail.com>
[not found] ` <47E7D4B0.30706@googlemail.com>
[not found] ` <20080326134500.34a245be@gaivota>
[not found] ` <47EAA833.7050507@googlemail.com>
[not found] ` <20080326171546.37b819ad@gaivota>
[not found] ` <47EABCF3.7070605@googlemail.com>
[not found] ` <20080326183336.0cbd04a4@gaivota>
[not found] ` <c09aacb50804250142h49fd47edia96ca3ae830c2354@mail.gmail.com>
2008-04-25 10:52 ` Mauro Carvalho Chehab
[not found] <47E030C1.2000805@inwind.it>
2008-03-18 21:28 ` Mauro Carvalho Chehab
[not found] ` <47E9A539.1050706@inwind.it>
2008-03-26 16:49 ` Mauro Carvalho Chehab
-- strict thread matches above, loose matches on Subject: below --
2008-03-21 5:49 Igor Alexeiuk
2008-03-26 3:11 Cheng-Min Lien
[not found] <1206604694.6098.14.camel@ubuntu>
2008-03-27 16:37 ` Mauro Carvalho Chehab
[not found] <1206635698.5965.5.camel@ubuntu>
2008-03-27 17:42 ` Mauro Carvalho Chehab
[not found] ` <1206683274.5986.6.camel@ubuntu>
2008-03-28 17:59 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080320115531.7ab450ba@gaivota \
--to=mchehab@infradead.org \
--cc=hartmut.hackmann@t-online.de \
--cc=linux-dvb@linuxtv.org \
--cc=lucarasp@inwind.it \
--cc=osl2008@googlemail.com \
--cc=timf@iinet.net.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox