linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* avermedia A306 / PCIe-minicard (laptop)
@ 2013-08-19 14:18 remi
  2013-08-19 15:18 ` Antti Palosaari
  0 siblings, 1 reply; 10+ messages in thread
From: remi @ 2013-08-19 14:18 UTC (permalink / raw)
  To: linux-media

Hello
 
I have this card since months,
 
http://www.avermedia.com/avertv/Product/ProductDetail.aspx?Id=376&SI=true
 
I have finally retested it with the cx23885 driver : card=39
 
 
 
If I could do anything to identify : [    2.414734] cx23885[0]: i2c scan: found
device @ 0x66  [???]
 
Or "hookup" the xc5000 etc
 
I'll be more than glad .
 
root@medeb:~# dmesg | grep -i  cx

[    2.140445] cx23885 driver version 0.0.3 loaded
[    2.140949] CORE cx23885[0]: subsystem: 1461:c139, board: AVerTV Hybrid
Express Slim HC81R [card=39,insmod option]
[    2.375411] cx23885[0]: scan bus 0:
[    2.387018] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
[    2.393978] cx23885[0]: scan bus 1:
[    2.407961] cx23885[0]: i2c scan: found device @ 0xc2 
[tuner/mt2131/tda8275/xc5000/xc3028]
[    2.412550] cx23885[0]: scan bus 2:
[    2.414734] cx23885[0]: i2c scan: found device @ 0x66  [???]
[    2.415569] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
[    2.416062] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
[    2.450115] cx25840 3-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
[    3.090011] cx25840 3-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382
bytes)
[    3.111328] cx23885[0]: registered device video1 [v4l2]
[    3.111597] cx23885[0]: registered device vbi0
[    3.111884] cx23885[0]: registered ALSA audio device
[    4.690855] cx23885_dev_checkrevision() Hardware revision = 0xb0
[    4.691054] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18, latency: 0,
mmio: 0xd3000000
[  325.767037] usbcore: registered new interface driver cx231xx
[  325.767948] cx231xx: Cx231xx dvb Extension initialized
[  347.921336] cx231xx: Cx231xx dvb Extension removed
[  354.682367] cx231xx_dvb: `' invalid for parameter `debug'
[  358.874607] cx231xx: Cx231xx dvb Extension initialized
[  365.393339] cx231xx: Cx231xx dvb Extension removed
[  367.306463] cx231xx: Cx231xx dvb Extension initialized
root@medeb:~#

 
also tuner-xc2028 sees it
 
[    2.407961] cx23885[0]: i2c scan: found device @ 0xc2 
[tuner/mt2131/tda8275/xc5000/xc3028]
[    3.110806] xc2028: Xcv2028/3028 init called!
[    3.110809] xc2028 2-0061: creating new instance
[    3.111025] xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
[    3.111218] xc2028 2-0061: xc2028_set_config called
[    3.112079] xc2028 2-0061: request_firmware_nowait(): OK
[    3.112080] xc2028 2-0061: load_all_firmwares called
[    3.112082] xc2028 2-0061: Loading 81 firmware images from xc3028L-v36.fw,
type: xc2028 firmware, ver 3.6
[    3.112088] xc2028 2-0061: Reading firmware type BASE F8MHZ (3), id 0,
size=9144.
[    3.112095] xc2028 2-0061: Reading firmware type BASE F8MHZ MTS (7), id 0,
size=9030.
[    3.112101] xc2028 2-0061: Reading firmware type BASE FM (401), id 0,
size=9054.
[    3.112109] xc2028 2-0061: Reading firmware type BASE FM INPUT1 (c01), id 0,
size=9068.
[    3.112114] xc2028 2-0061: Reading firmware type BASE (1), id 0, size=9132.
[    3.112120] xc2028 2-0061: Reading firmware type BASE MTS (5), id 0,
size=9006.
[    3.112123] xc2028 2-0061: Reading firmware type (0), id 7, size=161.
[    3.112124] xc2028 2-0061: Reading firmware type MTS (4), id 7, size=169.
[    3.112126] xc2028 2-0061: Reading firmware type (0), id 7, size=161.
[    3.112127] xc2028 2-0061: Reading firmware type MTS (4), id 7, size=169.
[    3.112128] xc2028 2-0061: Reading firmware type (0), id 7, size=161.
[    3.112130] xc2028 2-0061: Reading firmware type MTS (4), id 7, size=169.
[    3.112133] xc2028 2-0061: Reading firmware type (0), id 7, size=161.
[    3.112137] xc2028 2-0061: Reading firmware type MTS (4), id 7, size=169.
[    3.112138] xc2028 2-0061: Reading firmware type (0), id e0, size=161.
[    3.112140] xc2028 2-0061: Reading firmware type MTS (4), id e0, size=169.
[    3.112141] xc2028 2-0061: Reading firmware type (0), id e0, size=161.
[    3.112143] xc2028 2-0061: Reading firmware type MTS (4), id e0, size=169.
[    3.112144] xc2028 2-0061: Reading firmware type (0), id 200000, size=161.
[    3.112146] xc2028 2-0061: Reading firmware type MTS (4), id 200000,
size=169.
[    3.112147] xc2028 2-0061: Reading firmware type (0), id 4000000, size=161.
[    3.112149] xc2028 2-0061: Reading firmware type MTS (4), id 4000000,
size=169.
[    3.112151] xc2028 2-0061: Reading firmware type D2633 DTV6 ATSC (10030), id
0, size=149.
[    3.112153] xc2028 2-0061: Reading firmware type D2620 DTV6 QAM (68), id 0,
size=149.
[    3.112154] xc2028 2-0061: Reading firmware type D2633 DTV6 QAM (70), id 0,
size=149.
[    3.112156] xc2028 2-0061: Reading firmware type D2620 DTV7 (88), id 0,
size=149.
[    3.112158] xc2028 2-0061: Reading firmware type D2633 DTV7 (90), id 0,
size=149.
[    3.112159] xc2028 2-0061: Reading firmware type D2620 DTV78 (108), id 0,
size=149.
[    3.112161] xc2028 2-0061: Reading firmware type D2633 DTV78 (110), id 0,
size=149.
[    3.112163] xc2028 2-0061: Reading firmware type D2620 DTV8 (208), id 0,
size=149.
[    3.112164] xc2028 2-0061: Reading firmware type D2633 DTV8 (210), id 0,
size=149.
[    3.112166] xc2028 2-0061: Reading firmware type FM (400), id 0, size=135.
[    3.112168] xc2028 2-0061: Reading firmware type (0), id 10, size=161.
[    3.112169] xc2028 2-0061: Reading firmware type MTS (4), id 10, size=169.
[    3.112171] xc2028 2-0061: Reading firmware type (0), id 400000, size=161.
[    3.112172] xc2028 2-0061: Reading firmware type (0), id 800000, size=161.
[    3.112174] xc2028 2-0061: Reading firmware type (0), id 8000, size=161.
[    3.112175] xc2028 2-0061: Reading firmware type LCD (1000), id 8000,
size=161.
[    3.112177] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id 8000,
size=161.
[    3.112178] xc2028 2-0061: Reading firmware type MTS (4), id 8000, size=169.
[    3.112180] xc2028 2-0061: Reading firmware type (0), id b700, size=161.
[    3.112181] xc2028 2-0061: Reading firmware type LCD (1000), id b700,
size=161.
[    3.112183] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id b700,
size=161.
[    3.112184] xc2028 2-0061: Reading firmware type (0), id 2000, size=161.
[    3.112186] xc2028 2-0061: Reading firmware type MTS (4), id b700, size=169.
[    3.112187] xc2028 2-0061: Reading firmware type MTS LCD (1004), id b700,
size=169.
[    3.112189] xc2028 2-0061: Reading firmware type MTS LCD NOGD (3004), id
b700, size=169.
[    3.112191] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3280
(60000000), id 0, size=192.
[    3.112193] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3300
(60000000), id 0, size=192.
[    3.112195] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3440
(60000000), id 0, size=192.
[    3.112197] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3460
(60000000), id 0, size=192.
[    3.112199] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN36 SCODE
HAS_IF_3800 (60210020), id 0, size=192.
[    3.112201] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4000
(60000000), id 0, size=192.
[    3.112213] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA388 SCODE
HAS_IF_4080 (60410020), id 0, size=192.
[    3.112215] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4200
(60000000), id 0, size=192.
[    3.112217] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_4320
(60008000), id 8000, size=192.
[    3.112218] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4450
(60000000), id 0, size=192.
[    3.112221] xc2028 2-0061: Reading firmware type MTS LCD NOGD MONO IF SCODE
HAS_IF_4500 (6002b004), id b700, size=192.
[    3.112223] xc2028 2-0061: Reading firmware type DTV78 DTV8 ZARLINK456 SCODE
HAS_IF_4560 (62000300), id 0, size=192.
[    3.112225] xc2028 2-0061: Reading firmware type LCD NOGD IF SCODE
HAS_IF_4600 (60023000), id 8000, size=192.
[    3.112227] xc2028 2-0061: Reading firmware type DTV6 QAM DTV7 ZARLINK456
SCODE HAS_IF_4760 (620000e0), id 0, size=192.
[    3.112229] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4940
(60000000), id 0, size=192.
[    3.112231] xc2028 2-0061: Reading firmware type DTV78 DTV8 DIBCOM52 SCODE
HAS_IF_5200 (61000300), id 0, size=192.
[    3.112232] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5260
(60000000), id 0, size=192.
[    3.112234] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_5320
(60008000), id 7, size=192.
[    3.112237] xc2028 2-0061: Reading firmware type DTV7 DTV8 DIBCOM52 CHINA
SCODE HAS_IF_5400 (65000280), id 0, size=192.
[    3.112239] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN538 SCODE
HAS_IF_5580 (60110020), id 0, size=192.
[    3.112240] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5640
(60000000), id 7, size=192.
[    3.112242] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5740
(60000000), id 7, size=192.
[    3.112244] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5900
(60000000), id 0, size=192.
[    3.112245] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6000
(60008000), id 4c000f0, size=192.
[    3.112248] xc2028 2-0061: Reading firmware type DTV6 QAM ATSC LG60 F6MHZ
SCODE HAS_IF_6200 (68050060), id 0, size=192.
[    3.112250] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6240
(60000000), id 10, size=192.
[    3.112252] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6320
(60008000), id 200000, size=192.
[    3.112253] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6340
(60000000), id 200000, size=192.
[    3.112255] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6500
(60008000), id 40000e0, size=192.
[    3.112257] xc2028 2-0061: Reading firmware type DTV6 ATSC ATI638 SCODE
HAS_IF_6580 (60090020), id 0, size=192.
[    3.112259] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6600
(60000000), id e0, size=192.
[    3.112261] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6680
(60008000), id e0, size=192.
[    3.112263] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA794 SCODE
HAS_IF_8140 (60810020), id 0, size=192.
[    3.112265] xc2028 2-0061: Reading firmware type SCODE HAS_IF_8200
(60000000), id 0, size=192.
[    3.112265] xc2028 2-0061: Firmware files loaded.
[    3.116533] xc2028 2-0061: xc2028_set_analog_freq called
[    3.116535] xc2028 2-0061: generic_set_freq called
[    3.116536] xc2028 2-0061: should set frequency 400000 kHz
[    3.116537] xc2028 2-0061: check_firmware called
[    3.116538] xc2028 2-0061: checking firmware, user requested type=(0), id
0000000c00001000, scode_tbl (0), scode_nr 0
[    3.316553] xc2028 2-0061: load_firmware called
[    3.316555] xc2028 2-0061: seek_firmware called, want type=BASE (1), id
0000000000000000.
[    3.316557] xc2028 2-0061: Found firmware for type=BASE (1), id
0000000000000000.
[    3.316559] xc2028 2-0061: Loading firmware for type=BASE (1), id
0000000000000000.
[    4.532625] xc2028 2-0061: Load init1 firmware, if exists
[    4.532629] xc2028 2-0061: load_firmware called
[    4.532631] xc2028 2-0061: seek_firmware called, want type=BASE INIT1 (4001),
id 0000000000000000.
[    4.532637] xc2028 2-0061: Can't find firmware for type=BASE INIT1 (4001), id
0000000000000000.
[    4.532641] xc2028 2-0061: load_firmware called
[    4.532644] xc2028 2-0061: seek_firmware called, want type=BASE INIT1 (4001),
id 0000000000000000.
[    4.532648] xc2028 2-0061: Can't find firmware for type=BASE INIT1 (4001), id
0000000000000000.
[    4.532652] xc2028 2-0061: load_firmware called
[    4.532654] xc2028 2-0061: seek_firmware called, want type=(0), id
0000000c00001000.
[    4.532658] xc2028 2-0061: Selecting best matching firmware (1 bits) for
type=(0), id 0000000c00001000:
[    4.532661] xc2028 2-0061: Found firmware for type=(0), id 000000000000b700.
[    4.532664] xc2028 2-0061: Loading firmware for type=(0), id
000000000000b700.
[    4.549622] xc2028 2-0061: Trying to load scode 0
[    4.549624] xc2028 2-0061: load_scode called
[    4.549625] xc2028 2-0061: seek_firmware called, want type=SCODE (20000000),
id 000000000000b700.
[    4.549628] xc2028 2-0061: Selecting best matching firmware (1 bits) for
type=SCODE (20000000), id 000000000000b700:
[    4.549630] xc2028 2-0061: Found firmware for type=SCODE (20000000), id
0000000000008000.
[    4.549631] xc2028 2-0061: Loading SCODE for type=MONO SCODE HAS_IF_4320
(60008000), id 0000000000008000.
[    4.553026] xc2028 2-0061: xc2028_get_reg 0004 called
[    4.553586] xc2028 2-0061: xc2028_get_reg 0008 called
[    4.554151] xc2028 2-0061: Device is Xceive 0 version 0.0, firmware version
0.0
[    4.554153] xc2028 2-0061: Incorrect readback of firmware version.
[    4.554340] xc2028 2-0061: Read invalid device hardware information - tuner
hung?
[    4.554541] xc2028 2-0061: 0.d      0.d
[    4.667142] xc2028 2-0061: divisor= 00 00 64 00 (freq=400.000)
root@medeb:~#

05:00.0 0400: 14f1:8852 (rev 02)
    Subsystem: 1461:c139
    Flags: bus master, fast devsel, latency 0, IRQ 18
    Memory at d3000000 (64-bit, non-prefetchable) [size=2M]
    Capabilities: [40] Express Endpoint, MSI 00
    Capabilities: [80] Power Management version 2
    Capabilities: [90] Vital Product Data
    Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [200] Virtual Channel
    Kernel driver in use: cx23885

05:00.0 Multimedia video controller: Conexant Systems, Inc. CX23885 PCI Video
and Audio Decoder (rev 02)
    Subsystem: Avermedia Technologies Inc Device c139
    Flags: bus master, fast devsel, latency 0, IRQ 18
    Memory at d3000000 (64-bit, non-prefetchable) [size=2M]
    Capabilities: [40] Express Endpoint, MSI 00
    Capabilities: [80] Power Management version 2
    Capabilities: [90] Vital Product Data
    Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [200] Virtual Channel
    Kernel driver in use: cx23885


ps: i opened it up a while ago,i saw an af9013 chip ? dvb-tuner looks like 
maybe the "device @ 0x66 i2c"

I will double check , and re-write-down all the chips , i think 3 .


Best regards

PUTHOMME-ESSAISSI Rémi

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: avermedia A306 / PCIe-minicard (laptop)
  2013-08-19 14:18 avermedia A306 / PCIe-minicard (laptop) remi
@ 2013-08-19 15:18 ` Antti Palosaari
  2013-08-20 10:32   ` remi
       [not found]   ` <679222974.18260.1378902446194.open-xchange@email.1and1.fr>
  0 siblings, 2 replies; 10+ messages in thread
From: Antti Palosaari @ 2013-08-19 15:18 UTC (permalink / raw)
  To: remi; +Cc: linux-media

On 08/19/2013 05:18 PM, remi wrote:
> Hello
>
> I have this card since months,
>
> http://www.avermedia.com/avertv/Product/ProductDetail.aspx?Id=376&SI=true
>
> I have finally retested it with the cx23885 driver : card=39
>
>
>
> If I could do anything to identify : [    2.414734] cx23885[0]: i2c scan: found
> device @ 0x66  [???]
>
> Or "hookup" the xc5000 etc
>
> I'll be more than glad .
>


>
> ps: i opened it up a while ago,i saw an af9013 chip ? dvb-tuner looks like
> maybe the "device @ 0x66 i2c"
>
> I will double check , and re-write-down all the chips , i think 3 .

You have to identify all the chips, for DVB-T there is tuner missing.

USB-interface: cx23885
DVB-T demodulator: AF9013
RF-tuner: ?

If there is existing driver for used RF-tuner it comes nice hacking 
project for some newcomer.

It is just tweaking and hacking to find out all settings. AF9013 driver 
also needs likely some changes, currently it is used only for devices 
having AF9015 with integrated AF9013, or AF9015 dual devices having 
AF9015 + external AF9013 providing second tuner.

I have bought quite similar AverMedia A301 ages back as I was looking 
for that AF9013 model, but maybe I have bought just wrong one... :)


regards
Antti


-- 
http://palosaari.fi/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: avermedia A306 / PCIe-minicard (laptop)
  2013-08-19 15:18 ` Antti Palosaari
@ 2013-08-20 10:32   ` remi
  2013-08-20 14:44     ` remi
       [not found]   ` <679222974.18260.1378902446194.open-xchange@email.1and1.fr>
  1 sibling, 1 reply; 10+ messages in thread
From: remi @ 2013-08-20 10:32 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: linux-media

Hello

I have just putdown my screwdrivers :)


Yes it was three ICs


on the bottom-side , no heatsinks (digital reception, that's why i guess) , is
an AF9013-N1

on the top-side, with a heatsink : CX23885-13Z , PCIe A/V controler

on the top-side, with heat-sink + "radio-isolation" (aluminum box) XC3028ACQ ,
so the analog reception .

 
Its all on a PCIe bus, the reason why i baught it ... :)



To resume :


AF9013-N1

CX23885-13Z

XC3028ACQ


the drivers while scanning


gpunk@medeb:~/Bureau$ dmesg |grep i2c
[    2.363784] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
[    2.384721] cx23885[0]: i2c scan: found device @ 0xc2 
[tuner/mt2131/tda8275/xc5000/xc3028]
[    2.391502] cx23885[0]: i2c scan: found device @ 0x66  [???]
[    2.392339] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
[    2.392831] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
[    5.306751] i2c /dev entries driver
gpunk@medeb:~/Bureau$


 4.560428] xc2028 2-0061: xc2028_get_reg 0008 called
[    4.560989] xc2028 2-0061: Device is Xceive 0 version 0.0, firmware version
0.0
[    4.560990] xc2028 2-0061: Incorrect readback of firmware version.
[ *    4.561184] xc2028 2-0061: Read invalid device hardware information - tuner
hung?
[ *    4.561386] xc2028 2-0061: 0.0      0.0
[ *    4.674072] xc2028 2-0061: divisor= 00 00 64 00 (freq=400.000)
[    4.697830] cx23885_dev_checkrevision() Hardware revision = 0xb0
[    4.698029] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18, latency: 0,
mmio: 0xd3000000

* --> I bypassed the "goto fail" to start debugging a little bit the
tuner-xc2028.c/ko ... lines 869
...



The firmware doesnt get all loaded .
gpunk@medeb:~/Bureau$  uname -a
Linux medeb 3.11.0-rc6remi #1 SMP PREEMPT Mon Aug 19 13:30:04 CEST 2013 i686
GNU/Linux
gpunk@medeb:~/Bureau$


With yesterday's tarball from linuxtv.org / media-build git .



Best regards

Rémi




> Le 19 août 2013 à 17:18, Antti Palosaari <crope@iki.fi> a écrit :
>
>
> On 08/19/2013 05:18 PM, remi wrote:
> > Hello
> >
> > I have this card since months,
> >
> > http://www.avermedia.com/avertv/Product/ProductDetail.aspx?Id=376&SI=true
> >
> > I have finally retested it with the cx23885 driver : card=39
> >
> >
> >
> > If I could do anything to identify : [    2.414734] cx23885[0]: i2c scan:
> > found
> > device @ 0x66  [???]
> >
> > Or "hookup" the xc5000 etc
> >
> > I'll be more than glad .
> >
>
>
> >
> > ps: i opened it up a while ago,i saw an af9013 chip ? dvb-tuner looks like
> > maybe the "device @ 0x66 i2c"
> >
> > I will double check , and re-write-down all the chips , i think 3 .
>
> You have to identify all the chips, for DVB-T there is tuner missing.
>
> USB-interface: cx23885
> DVB-T demodulator: AF9013
> RF-tuner: ?
>
> If there is existing driver for used RF-tuner it comes nice hacking
> project for some newcomer.
>
> It is just tweaking and hacking to find out all settings. AF9013 driver
> also needs likely some changes, currently it is used only for devices
> having AF9015 with integrated AF9013, or AF9015 dual devices having
> AF9015 + external AF9013 providing second tuner.
>
> I have bought quite similar AverMedia A301 ages back as I was looking
> for that AF9013 model, but maybe I have bought just wrong one... :)
>
>
> regards
> Antti
>
>
> --
> http://palosaari.fi/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: avermedia A306 / PCIe-minicard (laptop)
  2013-08-20 10:32   ` remi
@ 2013-08-20 14:44     ` remi
  2013-08-20 19:31       ` remi
       [not found]       ` <CAJL_dMtRmbfbXYSwgonHyEuYoHPMa2ZQVpmGOC1mV8EN_zk=2g@mail.gmail.com>
  0 siblings, 2 replies; 10+ messages in thread
From: remi @ 2013-08-20 14:44 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: linux-media

Hello

FYI

I digged into the firmware problem a little,


xc3028L-v36.fw  gets loaded by default , and the errors are as you saw earlier


forcing the /lib/firmware/xc3028-v27.fw : 

[ 3569.941404] xc2028 2-0061: Could not load firmware
/lib/firmware/xc3028-v27.fw


So i searched the original dell/windows driver :


I have these files in there :

root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070# ls -lR
.:
total 5468
drwxr-xr-x 2 gpunk gpunk    4096 août  20 13:24 Driver_X86
-rwxr-xr-x 1 gpunk gpunk 5589827 sept. 12  2007 Setup.exe
-rw-r--r-- 1 gpunk gpunk     197 oct.   9  2007 setup.iss

./Driver_X86:
total 1448
-rw-r--r-- 1 gpunk gpunk 114338 sept.  7  2007 A885VCap_ASUS_DELL_2.inf
-rw-r--r-- 1 gpunk gpunk  15850 sept. 11  2007 a885vcap.cat
-rw-r--r-- 1 gpunk gpunk 733824 sept.  7  2007 A885VCap.sys
-rw-r--r-- 1 gpunk gpunk 147870 avril 20  2007 cpnotify.ax
-rw-r--r-- 1 gpunk gpunk 376836 avril 20  2007 cx416enc.rom
-rw-r--r-- 1 gpunk gpunk  65536 avril 20  2007 cxtvrate.dll
-rw-r--r-- 1 gpunk gpunk  16382 avril 20  2007 merlinC.rom
root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070#

root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86# grep
firmware *
Fichier binaire A885VCap.sys concordant
root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86#



I'll try to find a way to extract "maybe" the right firmware for what this card
,

I'd love some help :)

Good news there are ALOT of infos on how to initialize the card in the .INF , so

many problems, i think, are partially solved (I need to implement them )

I'll send a copy of theses to anyone who wishes,

Or see
http://www.dell.com/support/drivers/us/en/04/DriverDetails?driverId=R169070     
 :)

Regards

Rémi





> Le 20 août 2013 à 12:32, remi <remi@remis.cc> a écrit :
>
>
> Hello
>
> I have just putdown my screwdrivers :)
>
>
> Yes it was three ICs
>
>
> on the bottom-side , no heatsinks (digital reception, that's why i guess) , is
> an AF9013-N1
>
> on the top-side, with a heatsink : CX23885-13Z , PCIe A/V controler
>
> on the top-side, with heat-sink + "radio-isolation" (aluminum box) XC3028ACQ ,
> so the analog reception .
>
>  
> Its all on a PCIe bus, the reason why i baught it ... :)
>
>
>
> To resume :
>
>
> AF9013-N1
>
> CX23885-13Z
>
> XC3028ACQ
>
>
> the drivers while scanning
>
>
> gpunk@medeb:~/Bureau$ dmesg |grep i2c
> [    2.363784] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
> [    2.384721] cx23885[0]: i2c scan: found device @ 0xc2 
> [tuner/mt2131/tda8275/xc5000/xc3028]
> [    2.391502] cx23885[0]: i2c scan: found device @ 0x66  [???]
> [    2.392339] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
> [    2.392831] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
> [    5.306751] i2c /dev entries driver
> gpunk@medeb:~/Bureau$
>
>
>  4.560428] xc2028 2-0061: xc2028_get_reg 0008 called
> [    4.560989] xc2028 2-0061: Device is Xceive 0 version 0.0, firmware version
> 0.0
> [    4.560990] xc2028 2-0061: Incorrect readback of firmware version.
> [ *    4.561184] xc2028 2-0061: Read invalid device hardware information -
> tuner
> hung?
> [ *    4.561386] xc2028 2-0061: 0.0      0.0
> [ *    4.674072] xc2028 2-0061: divisor= 00 00 64 00 (freq=400.000)
> [    4.697830] cx23885_dev_checkrevision() Hardware revision = 0xb0
> [    4.698029] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18, latency:
> 0,
> mmio: 0xd3000000
>
> * --> I bypassed the "goto fail" to start debugging a little bit the
> tuner-xc2028.c/ko ... lines 869
> ...
>
>
>
> The firmware doesnt get all loaded .
> gpunk@medeb:~/Bureau$  uname -a
> Linux medeb 3.11.0-rc6remi #1 SMP PREEMPT Mon Aug 19 13:30:04 CEST 2013 i686
> GNU/Linux
> gpunk@medeb:~/Bureau$
>
>
> With yesterday's tarball from linuxtv.org / media-build git .
>
>
>
> Best regards
>
> Rémi
>
>
>
>
> > Le 19 août 2013 à 17:18, Antti Palosaari <crope@iki.fi> a écrit :
> >
> >
> > On 08/19/2013 05:18 PM, remi wrote:
> > > Hello
> > >
> > > I have this card since months,
> > >
> > > http://www.avermedia.com/avertv/Product/ProductDetail.aspx?Id=376&SI=true
> > >
> > > I have finally retested it with the cx23885 driver : card=39
> > >
> > >
> > >
> > > If I could do anything to identify : [    2.414734] cx23885[0]: i2c scan:
> > > found
> > > device @ 0x66  [???]
> > >
> > > Or "hookup" the xc5000 etc
> > >
> > > I'll be more than glad .
> > >
> >
> >
> > >
> > > ps: i opened it up a while ago,i saw an af9013 chip ? dvb-tuner looks like
> > > maybe the "device @ 0x66 i2c"
> > >
> > > I will double check , and re-write-down all the chips , i think 3 .
> >
> > You have to identify all the chips, for DVB-T there is tuner missing.
> >
> > USB-interface: cx23885
> > DVB-T demodulator: AF9013
> > RF-tuner: ?
> >
> > If there is existing driver for used RF-tuner it comes nice hacking
> > project for some newcomer.
> >
> > It is just tweaking and hacking to find out all settings. AF9013 driver
> > also needs likely some changes, currently it is used only for devices
> > having AF9015 with integrated AF9013, or AF9015 dual devices having
> > AF9015 + external AF9013 providing second tuner.
> >
> > I have bought quite similar AverMedia A301 ages back as I was looking
> > for that AF9013 model, but maybe I have bought just wrong one... :)
> >
> >
> > regards
> > Antti
> >
> >
> > --
> > http://palosaari.fi/
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-media" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: avermedia A306 / PCIe-minicard (laptop)
  2013-08-20 14:44     ` remi
@ 2013-08-20 19:31       ` remi
  2013-08-21 12:29         ` avermedia A306 / PCIe-minicard (laptop) / CX23885 remi
       [not found]       ` <CAJL_dMtRmbfbXYSwgonHyEuYoHPMa2ZQVpmGOC1mV8EN_zk=2g@mail.gmail.com>
  1 sibling, 1 reply; 10+ messages in thread
From: remi @ 2013-08-20 19:31 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: linux-media

Hello

Seeing that card=39 worked, and, that the A306 doesnt use the LowPower version
of the XC3028 , HC81 is an expressCard == lowpower

A306 is the PCIe minicard version == not LowPower ,


I decided to clone the HC81 entries in cx23885-video.c, cx23885.h ,
cx23885-cards.c

And intruct it to load then the xc3028-v27.fw instead,

Seems to me alot better , see below ,

And I added so, the card=40 in the definitions ...

I dont think submiting a patch for this woth it yet ...

as none of the tuners get "created" ,

For the analog video composite/s-video, i'll be able to test it when i find the
right cable .



root@medeb:~/v4l/media_build/v4l# grep A306 *
cx23885-cards.c:        [CX23885_BOARD_AVERMEDIA_A306] = {
cx23885-cards.c:                .name           = "AVerTV Hybrid Minicard PCIe
A306",
cx23885-cards.c:                .card      = CX23885_BOARD_AVERMEDIA_A306,
cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
cx23885.h:#define CX23885_BOARD_AVERMEDIA_A306          40
cx23885-video.c:                (dev->board == CX23885_BOARD_AVERMEDIA_A306)) {
cx23885-video.c:                        if (dev->board ==
CX23885_BOARD_AVERMEDIA_A306) {




                        if (dev->board == CX23885_BOARD_AVERMEDIA_HC81R) {
                                struct xc2028_ctrl ctrl = {
                                        .fname = "xc3028L-v36.fw",
                                        .max_len = 64
                                };
                                struct v4l2_priv_tun_config cfg = {
                                        .tuner = dev->tuner_type,
                                        .priv = &ctrl
                                };
                                v4l2_subdev_call(sd, tuner, s_config, &cfg);
                        }
                        if (dev->board == CX23885_BOARD_AVERMEDIA_A306) {
                                struct xc2028_ctrl ctrl = {
                                     /* .fname = "xc3028L-v36.fw", */
                                        .fname = "xc3028-v27.fw",
                                        .max_len = 64
                                };
                                struct v4l2_priv_tun_config cfg = {
                                        .tuner = dev->tuner_type,
                                        .priv = &ctrl
                                };
                                v4l2_subdev_call(sd, tuner, s_config, &cfg);
                        }



[32653.087693] cx23885 driver version 0.0.3 loaded
[32653.088091] CORE cx23885[0]: subsystem: 1461:c139, board: AVerTV Hybrid
Minicard PCIe A306 [card=40,autodetected]
[32653.318339] cx23885[0]: scan bus 0:
[32653.329792] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
[32653.336716] cx23885[0]: scan bus 1:
[32653.350543] cx23885[0]: i2c scan: found device @ 0xc2 
[tuner/mt2131/tda8275/xc5000/xc3028]
[32653.355042] cx23885[0]: scan bus 2:
[32653.357050] cx23885[0]: i2c scan: found device @ 0x66  [???]
[32653.357699] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
[32653.358011] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
[32653.391211] cx25840 3-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
[32654.031992] cx25840 3-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382
bytes)
[32654.049675] tuner 2-0061: Tuner -1 found with type(s) Radio TV.
[32654.051827] xc2028: Xcv2028/3028 init called!
[32654.051830] xc2028 2-0061: creating new instance
[32654.051832] xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
[32654.051834] xc2028 2-0061: xc2028_set_config called
[32654.051963] cx23885[0]: registered device video0 [v4l2]
[32654.052165] cx23885[0]: registered device vbi0
[32654.052329] cx23885[0]: registered ALSA audio device
[32654.052593] xc2028 2-0061: request_firmware_nowait(): OK
[32654.052596] xc2028 2-0061: load_all_firmwares called
[32654.052598] xc2028 2-0061: Loading 80 firmware images from xc3028-v27.fw,
type: xc2028 firmware, ver 2.7
[32654.052606] xc2028 2-0061: Reading firmware type BASE F8MHZ (3), id 0,
size=8718.
[32654.052614] xc2028 2-0061: Reading firmware type BASE F8MHZ MTS (7), id 0,
size=8712.
[32654.052623] xc2028 2-0061: Reading firmware type BASE FM (401), id 0,
size=8562.
[32654.052631] xc2028 2-0061: Reading firmware type BASE FM INPUT1 (c01), id 0,
size=8576.
[32654.052640] xc2028 2-0061: Reading firmware type BASE (1), id 0, size=8706.
[32654.052647] xc2028 2-0061: Reading firmware type BASE MTS (5), id 0,
size=8682.
[32654.052652] xc2028 2-0061: Reading firmware type (0), id 100000007, size=161.
[32654.052654] xc2028 2-0061: Reading firmware type MTS (4), id 100000007,
size=169.
[32654.052657] xc2028 2-0061: Reading firmware type (0), id 200000007, size=161.
[32654.052659] xc2028 2-0061: Reading firmware type MTS (4), id 200000007,
size=169.
[32654.052661] xc2028 2-0061: Reading firmware type (0), id 400000007, size=161.
[32654.052663] xc2028 2-0061: Reading firmware type MTS (4), id 400000007,
size=169.
[32654.052666] xc2028 2-0061: Reading firmware type (0), id 800000007, size=161.
[32654.052668] xc2028 2-0061: Reading firmware type MTS (4), id 800000007,
size=169.
[32654.052670] xc2028 2-0061: Reading firmware type (0), id 3000000e0, size=161.
[32654.052672] xc2028 2-0061: Reading firmware type MTS (4), id 3000000e0,
size=169.
[32654.052675] xc2028 2-0061: Reading firmware type (0), id c000000e0, size=161.
[32654.052677] xc2028 2-0061: Reading firmware type MTS (4), id c000000e0,
size=169.
[32654.052679] xc2028 2-0061: Reading firmware type (0), id 200000, size=161.
[32654.052681] xc2028 2-0061: Reading firmware type MTS (4), id 200000,
size=169.
[32654.052684] xc2028 2-0061: Reading firmware type (0), id 4000000, size=161.
[32654.052686] xc2028 2-0061: Reading firmware type MTS (4), id 4000000,
size=169.
[32654.052688] xc2028 2-0061: Reading firmware type D2633 DTV6 ATSC (10030), id
0, size=149.
[32654.052691] xc2028 2-0061: Reading firmware type D2620 DTV6 QAM (68), id 0,
size=149.
[32654.052694] xc2028 2-0061: Reading firmware type D2633 DTV6 QAM (70), id 0,
size=149.
[32654.052698] xc2028 2-0061: Reading firmware type D2620 DTV7 (88), id 0,
size=149.
[32654.052700] xc2028 2-0061: Reading firmware type D2633 DTV7 (90), id 0,
size=149.
[32654.052703] xc2028 2-0061: Reading firmware type D2620 DTV78 (108), id 0,
size=149.
[32654.052706] xc2028 2-0061: Reading firmware type D2633 DTV78 (110), id 0,
size=149.
[32654.052708] xc2028 2-0061: Reading firmware type D2620 DTV8 (208), id 0,
size=149.
[32654.052711] xc2028 2-0061: Reading firmware type D2633 DTV8 (210), id 0,
size=149.
[32654.052714] xc2028 2-0061: Reading firmware type FM (400), id 0, size=135.
[32654.052716] xc2028 2-0061: Reading firmware type (0), id 10, size=161.
[32654.052718] xc2028 2-0061: Reading firmware type MTS (4), id 10, size=169.
[32654.052721] xc2028 2-0061: Reading firmware type (0), id 1000400000,
size=169.
[32654.052723] xc2028 2-0061: Reading firmware type (0), id c00400000, size=161.
[32654.052725] xc2028 2-0061: Reading firmware type (0), id 800000, size=161.
[32654.052727] xc2028 2-0061: Reading firmware type (0), id 8000, size=161.
[32654.052729] xc2028 2-0061: Reading firmware type LCD (1000), id 8000,
size=161.
[32654.052732] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id 8000,
size=161.
[32654.052734] xc2028 2-0061: Reading firmware type MTS (4), id 8000, size=169.
[32654.052737] xc2028 2-0061: Reading firmware type (0), id b700, size=161.
[32654.052739] xc2028 2-0061: Reading firmware type LCD (1000), id b700,
size=161.
[32654.052741] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id b700,
size=161.
[32654.052744] xc2028 2-0061: Reading firmware type (0), id 2000, size=161.
[32654.052745] xc2028 2-0061: Reading firmware type MTS (4), id b700, size=169.
[32654.052748] xc2028 2-0061: Reading firmware type MTS LCD (1004), id b700,
size=169.
[32654.052750] xc2028 2-0061: Reading firmware type MTS LCD NOGD (3004), id
b700, size=169.
[32654.052753] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3280
(60000000), id 0, size=192.
[32654.052756] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3300
(60000000), id 0, size=192.
[32654.052759] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3440
(60000000), id 0, size=192.
[32654.052762] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3460
(60000000), id 0, size=192.
[32654.052765] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN36 SCODE
HAS_IF_3800 (60210020), id 0, size=192.
[32654.052768] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4000
(60000000), id 0, size=192.
[32654.052771] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA388 SCODE
HAS_IF_4080 (60410020), id 0, size=192.
[32654.052775] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4200
(60000000), id 0, size=192.
[32654.052778] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_4320
(60008000), id 8000, size=192.
[32654.052781] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4450
(60000000), id 0, size=192.
[32654.052783] xc2028 2-0061: Reading firmware type MTS LCD NOGD MONO IF SCODE
HAS_IF_4500 (6002b004), id b700, size=192.
[32654.052788] xc2028 2-0061: Reading firmware type LCD NOGD IF SCODE
HAS_IF_4600 (60023000), id 8000, size=192.
[32654.052792] xc2028 2-0061: Reading firmware type DTV6 QAM DTV7 DTV78 DTV8
ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0, size=192.
[32654.052796] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4940
(60000000), id 0, size=192.
[32654.052799] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5260
(60000000), id 0, size=192.
[32654.052802] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_5320
(60008000), id f00000007, size=192.
[32654.052805] xc2028 2-0061: Reading firmware type DTV7 DTV78 DTV8 DIBCOM52
CHINA SCODE HAS_IF_5400 (65000380), id 0, size=192.
[32654.052809] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN538 SCODE
HAS_IF_5580 (60110020), id 0, size=192.
[32654.052813] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5640
(60000000), id 300000007, size=192.
[32654.052816] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5740
(60000000), id c00000007, size=192.
[32654.052819] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5900
(60000000), id 0, size=192.
[32654.052822] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6000
(60008000), id c04c000f0, size=192.
[32654.052825] xc2028 2-0061: Reading firmware type DTV6 QAM ATSC LG60 F6MHZ
SCODE HAS_IF_6200 (68050060), id 0, size=192.
[32654.052829] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6240
(60000000), id 10, size=192.
[32654.052834] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6320
(60008000), id 200000, size=192.
[32654.052837] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6340
(60000000), id 200000, size=192.
[32654.052840] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6500
(60008000), id c044000e0, size=192.
[32654.052843] xc2028 2-0061: Reading firmware type DTV6 ATSC ATI638 SCODE
HAS_IF_6580 (60090020), id 0, size=192.
[32654.052847] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6600
(60000000), id 3000000e0, size=192.
[32654.052850] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6680
(60008000), id 3000000e0, size=192.
[32654.052853] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA794 SCODE
HAS_IF_8140 (60810020), id 0, size=192.
[32654.052857] xc2028 2-0061: Reading firmware type SCODE HAS_IF_8200
(60000000), id 0, size=192.
[32654.052860] xc2028 2-0061: Firmware files loaded.
[32654.057869] xc2028 2-0061: xc2028_set_analog_freq called
[32654.057872] xc2028 2-0061: generic_set_freq called
[32654.057874] xc2028 2-0061: should set frequency 400000 kHz
[32654.057876] xc2028 2-0061: check_firmware called
[32654.057877] xc2028 2-0061: checking firmware, user requested type=(0), id
0000000c00001000, scode_tbl (0), scode_nr 0
[32654.257895] xc2028 2-0061: load_firmware called
[32654.257898] xc2028 2-0061: seek_firmware called, want type=BASE (1), id
0000000000000000.
[32654.257900] xc2028 2-0061: Found firmware for type=BASE (1), id
0000000000000000.
[32654.257902] xc2028 2-0061: Loading firmware for type=BASE (1), id
0000000000000000.
[32655.425394] xc2028 2-0061: Load init1 firmware, if exists
[32655.425399] xc2028 2-0061: load_firmware called
[32655.425402] xc2028 2-0061: seek_firmware called, want type=BASE INIT1 (4001),
id 0000000000000000.
[32655.425407] xc2028 2-0061: Can't find firmware for type=BASE INIT1 (4001), id
0000000000000000.
[32655.425412] xc2028 2-0061: load_firmware called
[32655.425414] xc2028 2-0061: seek_firmware called, want type=BASE INIT1 (4001),
id 0000000000000000.
[32655.425418] xc2028 2-0061: Can't find firmware for type=BASE INIT1 (4001), id
0000000000000000.
[32655.425423] xc2028 2-0061: load_firmware called
[32655.425425] xc2028 2-0061: seek_firmware called, want type=(0), id
0000000c00001000.
[32655.425429] xc2028 2-0061: Selecting best matching firmware (2 bits) for
type=(0), id 0000000c00001000:
[32655.425432] xc2028 2-0061: Found firmware for type=(0), id 0000000c000000e0.
[32655.425435] xc2028 2-0061: Loading firmware for type=(0), id
0000000c000000e0.
[32655.440874] xc2028 2-0061: Trying to load scode 0
[32655.440875] xc2028 2-0061: load_scode called
[32655.440877] xc2028 2-0061: seek_firmware called, want type=SCODE (20000000),
id 0000000c000000e0.
[32655.440879] xc2028 2-0061: Found firmware for type=SCODE (20000000), id
0000000c04c000f0.
[32655.440881] xc2028 2-0061: Loading SCODE for type=MONO SCODE HAS_IF_6000
(60008000), id 0000000c04c000f0.
[32655.443192] xc2028 2-0061: xc2028_get_reg 0004 called
[32655.443855] xc2028 2-0061: xc2028_get_reg 0008 called
[32655.444521] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware
version 2.7
[32655.557141] xc2028 2-0061: divisor= 00 00 64 00 (freq=400.000)
[32655.580856] cx23885_dev_checkrevision() Hardware revision = 0xb0
[32655.580862] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18, latency: 0,
mmio: 0xd3000000
root@medeb:~/v4l/media_build#



Best regards

Rémi .


> Le 20 août 2013 à 16:44, remi <remi@remis.cc> a écrit :
>
>
> Hello
>
> FYI
>
> I digged into the firmware problem a little,
>
>
> xc3028L-v36.fw  gets loaded by default , and the errors are as you saw earlier
>
>
> forcing the /lib/firmware/xc3028-v27.fw : 
>
> [ 3569.941404] xc2028 2-0061: Could not load firmware
> /lib/firmware/xc3028-v27.fw
>
>
> So i searched the original dell/windows driver :
>
>
> I have these files in there :
>
> root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070# ls -lR
> .:
> total 5468
> drwxr-xr-x 2 gpunk gpunk    4096 août  20 13:24 Driver_X86
> -rwxr-xr-x 1 gpunk gpunk 5589827 sept. 12  2007 Setup.exe
> -rw-r--r-- 1 gpunk gpunk     197 oct.   9  2007 setup.iss
>
> ./Driver_X86:
> total 1448
> -rw-r--r-- 1 gpunk gpunk 114338 sept.  7  2007 A885VCap_ASUS_DELL_2.inf
> -rw-r--r-- 1 gpunk gpunk  15850 sept. 11  2007 a885vcap.cat
> -rw-r--r-- 1 gpunk gpunk 733824 sept.  7  2007 A885VCap.sys
> -rw-r--r-- 1 gpunk gpunk 147870 avril 20  2007 cpnotify.ax
> -rw-r--r-- 1 gpunk gpunk 376836 avril 20  2007 cx416enc.rom
> -rw-r--r-- 1 gpunk gpunk  65536 avril 20  2007 cxtvrate.dll
> -rw-r--r-- 1 gpunk gpunk  16382 avril 20  2007 merlinC.rom
> root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070#
>
> root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86# grep
> firmware *
> Fichier binaire A885VCap.sys concordant
> root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86#
>
>
>
> I'll try to find a way to extract "maybe" the right firmware for what this
> card
> ,
>
> I'd love some help :)
>
> Good news there are ALOT of infos on how to initialize the card in the .INF ,
> so
>
> many problems, i think, are partially solved (I need to implement them )
>
> I'll send a copy of theses to anyone who wishes,
>
> Or see
> http://www.dell.com/support/drivers/us/en/04/DriverDetails?driverId=R169070   
>  
>  :)
>
> Regards
>
> Rémi
>
>
>
>
>
> > Le 20 août 2013 à 12:32, remi <remi@remis.cc> a écrit :
> >
> >
> > Hello
> >
> > I have just putdown my screwdrivers :)
> >
> >
> > Yes it was three ICs
> >
> >
> > on the bottom-side , no heatsinks (digital reception, that's why i guess) ,
> > is
> > an AF9013-N1
> >
> > on the top-side, with a heatsink : CX23885-13Z , PCIe A/V controler
> >
> > on the top-side, with heat-sink + "radio-isolation" (aluminum box) XC3028ACQ
> > ,
> > so the analog reception .
> >
> >  
> > Its all on a PCIe bus, the reason why i baught it ... :)
> >
> >
> >
> > To resume :
> >
> >
> > AF9013-N1
> >
> > CX23885-13Z
> >
> > XC3028ACQ
> >
> >
> > the drivers while scanning
> >
> >
> > gpunk@medeb:~/Bureau$ dmesg |grep i2c
> > [    2.363784] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
> > [    2.384721] cx23885[0]: i2c scan: found device @ 0xc2 
> > [tuner/mt2131/tda8275/xc5000/xc3028]
> > [    2.391502] cx23885[0]: i2c scan: found device @ 0x66  [???]
> > [    2.392339] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
> > [    2.392831] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
> > [    5.306751] i2c /dev entries driver
> > gpunk@medeb:~/Bureau$
> >
> >
> >  4.560428] xc2028 2-0061: xc2028_get_reg 0008 called
> > [    4.560989] xc2028 2-0061: Device is Xceive 0 version 0.0, firmware
> > version
> > 0.0
> > [    4.560990] xc2028 2-0061: Incorrect readback of firmware version.
> > [ *    4.561184] xc2028 2-0061: Read invalid device hardware information -
> > tuner
> > hung?
> > [ *    4.561386] xc2028 2-0061: 0.0      0.0
> > [ *    4.674072] xc2028 2-0061: divisor= 00 00 64 00 (freq=400.000)
> > [    4.697830] cx23885_dev_checkrevision() Hardware revision = 0xb0
> > [    4.698029] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18,
> > latency:
> > 0,
> > mmio: 0xd3000000
> >
> > * --> I bypassed the "goto fail" to start debugging a little bit the
> > tuner-xc2028.c/ko ... lines 869
> > ...
> >
> >
> >
> > The firmware doesnt get all loaded .
> > gpunk@medeb:~/Bureau$  uname -a
> > Linux medeb 3.11.0-rc6remi #1 SMP PREEMPT Mon Aug 19 13:30:04 CEST 2013 i686
> > GNU/Linux
> > gpunk@medeb:~/Bureau$
> >
> >
> > With yesterday's tarball from linuxtv.org / media-build git .
> >
> >
> >
> > Best regards
> >
> > Rémi
> >
> >
> >
> >
> > > Le 19 août 2013 à 17:18, Antti Palosaari <crope@iki.fi> a écrit :
> > >
> > >
> > > On 08/19/2013 05:18 PM, remi wrote:
> > > > Hello
> > > >
> > > > I have this card since months,
> > > >
> > > > http://www.avermedia.com/avertv/Product/ProductDetail.aspx?Id=376&SI=true
> > > >
> > > > I have finally retested it with the cx23885 driver : card=39
> > > >
> > > >
> > > >
> > > > If I could do anything to identify : [    2.414734] cx23885[0]: i2c
> > > > scan:
> > > > found
> > > > device @ 0x66  [???]
> > > >
> > > > Or "hookup" the xc5000 etc
> > > >
> > > > I'll be more than glad .
> > > >
> > >
> > >
> > > >
> > > > ps: i opened it up a while ago,i saw an af9013 chip ? dvb-tuner looks
> > > > like
> > > > maybe the "device @ 0x66 i2c"
> > > >
> > > > I will double check , and re-write-down all the chips , i think 3 .
> > >
> > > You have to identify all the chips, for DVB-T there is tuner missing.
> > >
> > > USB-interface: cx23885
> > > DVB-T demodulator: AF9013
> > > RF-tuner: ?
> > >
> > > If there is existing driver for used RF-tuner it comes nice hacking
> > > project for some newcomer.
> > >
> > > It is just tweaking and hacking to find out all settings. AF9013 driver
> > > also needs likely some changes, currently it is used only for devices
> > > having AF9015 with integrated AF9013, or AF9015 dual devices having
> > > AF9015 + external AF9013 providing second tuner.
> > >
> > > I have bought quite similar AverMedia A301 ages back as I was looking
> > > for that AF9013 model, but maybe I have bought just wrong one... :)
> > >
> > >
> > > regards
> > > Antti
> > >
> > >
> > > --
> > > http://palosaari.fi/
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-media" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-media" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: avermedia A306 / PCIe-minicard (laptop) / CX23885
  2013-08-20 19:31       ` remi
@ 2013-08-21 12:29         ` remi
  2013-08-23 10:54           ` remi
  0 siblings, 1 reply; 10+ messages in thread
From: remi @ 2013-08-21 12:29 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: linux-media

[-- Attachment #1: Type: text/plain, Size: 33301 bytes --]

Hello

I suggest this patch,

For v4l/cx23885.h
    v4l/cx23885-video.c
and v4l/cx23885-cards.c

Status,

AVerMedia A306 MiniCard Hybrid DVB-T  / 14f1:8852 (rev 02) Subsystem: 1461:c139

Is beeing regognized and loaded by the driver, by it's PCI ID ,

The correct firmwares are loaded fully notably by the Xceive 3028 .

I'm testing the mpeg side, not fully yet (firmware) .

The full dmesg output, with all relevant drivers set debug=1 , is atteched to
the email .

I do not have all the cables to test (it's a laptop ..:) )
so testing is more than welcome.

Best regards

Rémi PUTHOMME-ESSAISSI .



root@medeb:~/v4l# diff -u  media_build/v4l/cx23885-cards.c
media_build.remi/v4l/cx23885-cards.c
--- media_build/v4l/cx23885-cards.c     2012-12-28 00:04:05.000000000 +0100
+++ media_build.remi/v4l/cx23885-cards.c        2013-08-21 14:15:54.173195979
+0200
@@ -604,8 +604,39 @@
                                  CX25840_NONE0_CH3 |
                                  CX25840_NONE1_CH3,
                        .amux   = CX25840_AUDIO6,
-               } },
-       }
+               }}
+        },
+       [CX23885_BOARD_AVERMEDIA_A306] = {
+                .name           = "AVerTV Hybrid Minicard PCIe A306",
+                .tuner_type     = TUNER_XC2028,
+                .tuner_addr     = 0x61, /* 0xc2 >> 1 */
+                .tuner_bus      = 1,
+                .porta          = CX23885_ANALOG_VIDEO,
+               .portb          = CX23885_MPEG_ENCODER,
+                .input          = {{
+                        .type   = CX23885_VMUX_TELEVISION,
+                        .vmux   = CX25840_VIN2_CH1 |
+                                  CX25840_VIN5_CH2 |
+                                  CX25840_NONE0_CH3 |
+                                  CX25840_NONE1_CH3,
+                        .amux   = CX25840_AUDIO8,
+                }, {
+                        .type   = CX23885_VMUX_SVIDEO,
+                        .vmux   = CX25840_VIN8_CH1 |
+                                  CX25840_NONE_CH2 |
+                                  CX25840_VIN7_CH3 |
+                                  CX25840_SVIDEO_ON,
+                        .amux   = CX25840_AUDIO6,
+                }, {
+                        .type   = CX23885_VMUX_COMPONENT,
+                        .vmux   = CX25840_VIN1_CH1 |
+                                  CX25840_NONE_CH2 |
+                                  CX25840_NONE0_CH3 |
+                                  CX25840_NONE1_CH3,
+                        .amux   = CX25840_AUDIO6,
+                }},
+
+       }       
 };
 const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
 
@@ -841,7 +872,12 @@
                .subvendor = 0x1461,
                .subdevice = 0xd939,
                .card      = CX23885_BOARD_AVERMEDIA_HC81R,
-       },
+       }, {
+                .subvendor = 0x1461,
+                .subdevice = 0xc139,
+                .card      = CX23885_BOARD_AVERMEDIA_A306,
+        },
+       
 };
 const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
 
@@ -1069,6 +1105,10 @@
                /* XC3028L Reset Command */
                bitmask = 1 << 2;
                break;
+       case CX23885_BOARD_AVERMEDIA_A306:
+                /* XC3028L Reset Command */
+                bitmask = 1 << 2;
+                break;
        }
 
        if (bitmask) {
@@ -1394,6 +1434,34 @@
                cx_set(GP0_IO, 0x00040004);
                mdelay(60);
                break;
+        case CX23885_BOARD_AVERMEDIA_A306:
+                cx_clear(MC417_CTL, 1);
+                /* GPIO-0,1,2 setup direction as output */
+                cx_set(GP0_IO, 0x00070000);
+                mdelay(10);
+                /* AF9013 demod reset */
+                cx_set(GP0_IO, 0x00010001);
+                mdelay(10);
+                cx_clear(GP0_IO, 0x00010001);
+                mdelay(10);
+                cx_set(GP0_IO, 0x00010001);
+                mdelay(10);
+                /* demod tune? */
+                cx_clear(GP0_IO, 0x00030003);
+                mdelay(10);
+                cx_set(GP0_IO, 0x00020002);
+                mdelay(10);
+                cx_set(GP0_IO, 0x00010001);
+                mdelay(10);
+                cx_clear(GP0_IO, 0x00020002);
+                /* XC3028L tuner reset */
+                cx_set(GP0_IO, 0x00040004);
+                cx_clear(GP0_IO, 0x00040004);
+                cx_set(GP0_IO, 0x00040004);
+                mdelay(60);
+                break;
+
+
        }
 }
 
@@ -1623,6 +1691,21 @@
                ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
                ts2->src_sel_val     = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
                break;
+
+        case CX23885_BOARD_AVERMEDIA_A306:
+                /* Defaults for VID B */
+                ts1->gen_ctrl_val  = 0x4; /* Parallel */
+                ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
+                ts1->src_sel_val   = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
+                /* Defaults for VID C */
+                /* DREQ_POL, SMODE, PUNC_CLK, MCLK_POL Serial bus + punc clk */
+                ts2->gen_ctrl_val  = 0x10e;
+                ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
+                ts2->src_sel_val     = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
+                break;
+
+
+
        case CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP:
        case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP:
                ts2->gen_ctrl_val  = 0xc; /* Serial bus + punctured clock */
@@ -1758,6 +1841,18 @@
                        v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
                }
                break;
+
+        case CX23885_BOARD_AVERMEDIA_A306:
+                dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
+                                &dev->i2c_bus[2].i2c_adap,
+                                "cx25840", 0x88 >> 1, NULL);
+                if (dev->sd_cx25840) {
+                        dev->sd_cx25840->grp_id = CX23885_HW_AV_CORE;
+                        v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
+                }
+                break;
+
+
        }
 
        /* AUX-PLL 27MHz CLK */
root@medeb:~/v4l# diff -u  media_build/v4l/cx23885-video.c
media_build.remi/v4l/cx23885-video.c
--- media_build/v4l/cx23885-video.c     2013-08-02 05:45:59.000000000 +0200
+++ media_build.remi/v4l/cx23885-video.c        2013-08-21 13:55:20.017625046
+0200
@@ -511,7 +511,8 @@
                (dev->board == CX23885_BOARD_HAUPPAUGE_HVR1255_22111) ||
                (dev->board == CX23885_BOARD_HAUPPAUGE_HVR1850) ||
                (dev->board == CX23885_BOARD_MYGICA_X8507) ||
-               (dev->board == CX23885_BOARD_AVERMEDIA_HC81R)) {
+               (dev->board == CX23885_BOARD_AVERMEDIA_HC81R)||
+               (dev->board == CX23885_BOARD_AVERMEDIA_A306)) {
                /* Configure audio routing */
                v4l2_subdev_call(dev->sd_cx25840, audio, s_routing,
                        INPUT(input)->amux, 0, 0);
@@ -1888,6 +1889,20 @@
                                };
                                v4l2_subdev_call(sd, tuner, s_config, &cfg);
                        }
+                       if (dev->board == CX23885_BOARD_AVERMEDIA_A306) {
+                                struct xc2028_ctrl ctrl = {
+                                     /* .fname = "xc3028L-v36.fw", */
+                                       .fname = "xc3028-v27.fw",
+                                        .max_len = 64
+                                };
+                                struct v4l2_priv_tun_config cfg = {
+                                        .tuner = dev->tuner_type,
+                                        .priv = &ctrl
+                                };
+                                v4l2_subdev_call(sd, tuner, s_config, &cfg);
+                        }
+
+
                }
        }
 
root@medeb:~/v4l# diff -u  media_build/v4l/cx23885.h
media_build.remi/v4l/cx23885.h
--- media_build/v4l/cx23885.h   2013-03-25 05:45:50.000000000 +0100
+++ media_build.remi/v4l/cx23885.h      2013-08-21 13:55:20.010625134 +0200
@@ -93,6 +93,7 @@
 #define CX23885_BOARD_PROF_8000                37
 #define CX23885_BOARD_HAUPPAUGE_HVR4400        38
 #define CX23885_BOARD_AVERMEDIA_HC81R          39
+#define CX23885_BOARD_AVERMEDIA_A306           40
 
 #define GPIO_0 0x00000001
 #define GPIO_1 0x00000002
root@medeb:~/v4l#




> Le 20 août 2013 à 21:31, remi <remi@remis.cc> a écrit :
>
>
> Hello
>
> Seeing that card=39 worked, and, that the A306 doesnt use the LowPower version
> of the XC3028 , HC81 is an expressCard == lowpower
>
> A306 is the PCIe minicard version == not LowPower ,
>
>
> I decided to clone the HC81 entries in cx23885-video.c, cx23885.h ,
> cx23885-cards.c
>
> And intruct it to load then the xc3028-v27.fw instead,
>
> Seems to me alot better , see below ,
>
> And I added so, the card=40 in the definitions ...
>
> I dont think submiting a patch for this woth it yet ...
>
> as none of the tuners get "created" ,
>
> For the analog video composite/s-video, i'll be able to test it when i find
> the
> right cable .
>
>
>
> root@medeb:~/v4l/media_build/v4l# grep A306 *
> cx23885-cards.c:        [CX23885_BOARD_AVERMEDIA_A306] = {
> cx23885-cards.c:                .name           = "AVerTV Hybrid Minicard PCIe
> A306",
> cx23885-cards.c:                .card      = CX23885_BOARD_AVERMEDIA_A306,
> cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
> cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
> cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
> cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
> cx23885.h:#define CX23885_BOARD_AVERMEDIA_A306          40
> cx23885-video.c:                (dev->board == CX23885_BOARD_AVERMEDIA_A306))
> {
> cx23885-video.c:                        if (dev->board ==
> CX23885_BOARD_AVERMEDIA_A306) {
>
>
>
>
>                         if (dev->board == CX23885_BOARD_AVERMEDIA_HC81R) {
>                                 struct xc2028_ctrl ctrl = {
>                                         .fname = "xc3028L-v36.fw",
>                                         .max_len = 64
>                                 };
>                                 struct v4l2_priv_tun_config cfg = {
>                                         .tuner = dev->tuner_type,
>                                         .priv = &ctrl
>                                 };
>                                 v4l2_subdev_call(sd, tuner, s_config, &cfg);
>                         }
>                         if (dev->board == CX23885_BOARD_AVERMEDIA_A306) {
>                                 struct xc2028_ctrl ctrl = {
>                                      /* .fname = "xc3028L-v36.fw", */
>                                         .fname = "xc3028-v27.fw",
>                                         .max_len = 64
>                                 };
>                                 struct v4l2_priv_tun_config cfg = {
>                                         .tuner = dev->tuner_type,
>                                         .priv = &ctrl
>                                 };
>                                 v4l2_subdev_call(sd, tuner, s_config, &cfg);
>                         }
>
>
>
> [32653.087693] cx23885 driver version 0.0.3 loaded
> [32653.088091] CORE cx23885[0]: subsystem: 1461:c139, board: AVerTV Hybrid
> Minicard PCIe A306 [card=40,autodetected]
> [32653.318339] cx23885[0]: scan bus 0:
> [32653.329792] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
> [32653.336716] cx23885[0]: scan bus 1:
> [32653.350543] cx23885[0]: i2c scan: found device @ 0xc2 
> [tuner/mt2131/tda8275/xc5000/xc3028]
> [32653.355042] cx23885[0]: scan bus 2:
> [32653.357050] cx23885[0]: i2c scan: found device @ 0x66  [???]
> [32653.357699] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
> [32653.358011] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
> [32653.391211] cx25840 3-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
> [32654.031992] cx25840 3-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382
> bytes)
> [32654.049675] tuner 2-0061: Tuner -1 found with type(s) Radio TV.
> [32654.051827] xc2028: Xcv2028/3028 init called!
> [32654.051830] xc2028 2-0061: creating new instance
> [32654.051832] xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
> [32654.051834] xc2028 2-0061: xc2028_set_config called
> [32654.051963] cx23885[0]: registered device video0 [v4l2]
> [32654.052165] cx23885[0]: registered device vbi0
> [32654.052329] cx23885[0]: registered ALSA audio device
> [32654.052593] xc2028 2-0061: request_firmware_nowait(): OK
> [32654.052596] xc2028 2-0061: load_all_firmwares called
> [32654.052598] xc2028 2-0061: Loading 80 firmware images from xc3028-v27.fw,
> type: xc2028 firmware, ver 2.7
> [32654.052606] xc2028 2-0061: Reading firmware type BASE F8MHZ (3), id 0,
> size=8718.
> [32654.052614] xc2028 2-0061: Reading firmware type BASE F8MHZ MTS (7), id 0,
> size=8712.
> [32654.052623] xc2028 2-0061: Reading firmware type BASE FM (401), id 0,
> size=8562.
> [32654.052631] xc2028 2-0061: Reading firmware type BASE FM INPUT1 (c01), id
> 0,
> size=8576.
> [32654.052640] xc2028 2-0061: Reading firmware type BASE (1), id 0, size=8706.
> [32654.052647] xc2028 2-0061: Reading firmware type BASE MTS (5), id 0,
> size=8682.
> [32654.052652] xc2028 2-0061: Reading firmware type (0), id 100000007,
> size=161.
> [32654.052654] xc2028 2-0061: Reading firmware type MTS (4), id 100000007,
> size=169.
> [32654.052657] xc2028 2-0061: Reading firmware type (0), id 200000007,
> size=161.
> [32654.052659] xc2028 2-0061: Reading firmware type MTS (4), id 200000007,
> size=169.
> [32654.052661] xc2028 2-0061: Reading firmware type (0), id 400000007,
> size=161.
> [32654.052663] xc2028 2-0061: Reading firmware type MTS (4), id 400000007,
> size=169.
> [32654.052666] xc2028 2-0061: Reading firmware type (0), id 800000007,
> size=161.
> [32654.052668] xc2028 2-0061: Reading firmware type MTS (4), id 800000007,
> size=169.
> [32654.052670] xc2028 2-0061: Reading firmware type (0), id 3000000e0,
> size=161.
> [32654.052672] xc2028 2-0061: Reading firmware type MTS (4), id 3000000e0,
> size=169.
> [32654.052675] xc2028 2-0061: Reading firmware type (0), id c000000e0,
> size=161.
> [32654.052677] xc2028 2-0061: Reading firmware type MTS (4), id c000000e0,
> size=169.
> [32654.052679] xc2028 2-0061: Reading firmware type (0), id 200000, size=161.
> [32654.052681] xc2028 2-0061: Reading firmware type MTS (4), id 200000,
> size=169.
> [32654.052684] xc2028 2-0061: Reading firmware type (0), id 4000000, size=161.
> [32654.052686] xc2028 2-0061: Reading firmware type MTS (4), id 4000000,
> size=169.
> [32654.052688] xc2028 2-0061: Reading firmware type D2633 DTV6 ATSC (10030),
> id
> 0, size=149.
> [32654.052691] xc2028 2-0061: Reading firmware type D2620 DTV6 QAM (68), id 0,
> size=149.
> [32654.052694] xc2028 2-0061: Reading firmware type D2633 DTV6 QAM (70), id 0,
> size=149.
> [32654.052698] xc2028 2-0061: Reading firmware type D2620 DTV7 (88), id 0,
> size=149.
> [32654.052700] xc2028 2-0061: Reading firmware type D2633 DTV7 (90), id 0,
> size=149.
> [32654.052703] xc2028 2-0061: Reading firmware type D2620 DTV78 (108), id 0,
> size=149.
> [32654.052706] xc2028 2-0061: Reading firmware type D2633 DTV78 (110), id 0,
> size=149.
> [32654.052708] xc2028 2-0061: Reading firmware type D2620 DTV8 (208), id 0,
> size=149.
> [32654.052711] xc2028 2-0061: Reading firmware type D2633 DTV8 (210), id 0,
> size=149.
> [32654.052714] xc2028 2-0061: Reading firmware type FM (400), id 0, size=135.
> [32654.052716] xc2028 2-0061: Reading firmware type (0), id 10, size=161.
> [32654.052718] xc2028 2-0061: Reading firmware type MTS (4), id 10, size=169.
> [32654.052721] xc2028 2-0061: Reading firmware type (0), id 1000400000,
> size=169.
> [32654.052723] xc2028 2-0061: Reading firmware type (0), id c00400000,
> size=161.
> [32654.052725] xc2028 2-0061: Reading firmware type (0), id 800000, size=161.
> [32654.052727] xc2028 2-0061: Reading firmware type (0), id 8000, size=161.
> [32654.052729] xc2028 2-0061: Reading firmware type LCD (1000), id 8000,
> size=161.
> [32654.052732] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id 8000,
> size=161.
> [32654.052734] xc2028 2-0061: Reading firmware type MTS (4), id 8000,
> size=169.
> [32654.052737] xc2028 2-0061: Reading firmware type (0), id b700, size=161.
> [32654.052739] xc2028 2-0061: Reading firmware type LCD (1000), id b700,
> size=161.
> [32654.052741] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id b700,
> size=161.
> [32654.052744] xc2028 2-0061: Reading firmware type (0), id 2000, size=161.
> [32654.052745] xc2028 2-0061: Reading firmware type MTS (4), id b700,
> size=169.
> [32654.052748] xc2028 2-0061: Reading firmware type MTS LCD (1004), id b700,
> size=169.
> [32654.052750] xc2028 2-0061: Reading firmware type MTS LCD NOGD (3004), id
> b700, size=169.
> [32654.052753] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3280
> (60000000), id 0, size=192.
> [32654.052756] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3300
> (60000000), id 0, size=192.
> [32654.052759] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3440
> (60000000), id 0, size=192.
> [32654.052762] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3460
> (60000000), id 0, size=192.
> [32654.052765] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN36 SCODE
> HAS_IF_3800 (60210020), id 0, size=192.
> [32654.052768] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4000
> (60000000), id 0, size=192.
> [32654.052771] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA388 SCODE
> HAS_IF_4080 (60410020), id 0, size=192.
> [32654.052775] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4200
> (60000000), id 0, size=192.
> [32654.052778] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_4320
> (60008000), id 8000, size=192.
> [32654.052781] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4450
> (60000000), id 0, size=192.
> [32654.052783] xc2028 2-0061: Reading firmware type MTS LCD NOGD MONO IF SCODE
> HAS_IF_4500 (6002b004), id b700, size=192.
> [32654.052788] xc2028 2-0061: Reading firmware type LCD NOGD IF SCODE
> HAS_IF_4600 (60023000), id 8000, size=192.
> [32654.052792] xc2028 2-0061: Reading firmware type DTV6 QAM DTV7 DTV78 DTV8
> ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0, size=192.
> [32654.052796] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4940
> (60000000), id 0, size=192.
> [32654.052799] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5260
> (60000000), id 0, size=192.
> [32654.052802] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_5320
> (60008000), id f00000007, size=192.
> [32654.052805] xc2028 2-0061: Reading firmware type DTV7 DTV78 DTV8 DIBCOM52
> CHINA SCODE HAS_IF_5400 (65000380), id 0, size=192.
> [32654.052809] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN538 SCODE
> HAS_IF_5580 (60110020), id 0, size=192.
> [32654.052813] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5640
> (60000000), id 300000007, size=192.
> [32654.052816] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5740
> (60000000), id c00000007, size=192.
> [32654.052819] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5900
> (60000000), id 0, size=192.
> [32654.052822] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6000
> (60008000), id c04c000f0, size=192.
> [32654.052825] xc2028 2-0061: Reading firmware type DTV6 QAM ATSC LG60 F6MHZ
> SCODE HAS_IF_6200 (68050060), id 0, size=192.
> [32654.052829] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6240
> (60000000), id 10, size=192.
> [32654.052834] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6320
> (60008000), id 200000, size=192.
> [32654.052837] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6340
> (60000000), id 200000, size=192.
> [32654.052840] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6500
> (60008000), id c044000e0, size=192.
> [32654.052843] xc2028 2-0061: Reading firmware type DTV6 ATSC ATI638 SCODE
> HAS_IF_6580 (60090020), id 0, size=192.
> [32654.052847] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6600
> (60000000), id 3000000e0, size=192.
> [32654.052850] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6680
> (60008000), id 3000000e0, size=192.
> [32654.052853] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA794 SCODE
> HAS_IF_8140 (60810020), id 0, size=192.
> [32654.052857] xc2028 2-0061: Reading firmware type SCODE HAS_IF_8200
> (60000000), id 0, size=192.
> [32654.052860] xc2028 2-0061: Firmware files loaded.
> [32654.057869] xc2028 2-0061: xc2028_set_analog_freq called
> [32654.057872] xc2028 2-0061: generic_set_freq called
> [32654.057874] xc2028 2-0061: should set frequency 400000 kHz
> [32654.057876] xc2028 2-0061: check_firmware called
> [32654.057877] xc2028 2-0061: checking firmware, user requested type=(0), id
> 0000000c00001000, scode_tbl (0), scode_nr 0
> [32654.257895] xc2028 2-0061: load_firmware called
> [32654.257898] xc2028 2-0061: seek_firmware called, want type=BASE (1), id
> 0000000000000000.
> [32654.257900] xc2028 2-0061: Found firmware for type=BASE (1), id
> 0000000000000000.
> [32654.257902] xc2028 2-0061: Loading firmware for type=BASE (1), id
> 0000000000000000.
> [32655.425394] xc2028 2-0061: Load init1 firmware, if exists
> [32655.425399] xc2028 2-0061: load_firmware called
> [32655.425402] xc2028 2-0061: seek_firmware called, want type=BASE INIT1
> (4001),
> id 0000000000000000.
> [32655.425407] xc2028 2-0061: Can't find firmware for type=BASE INIT1 (4001),
> id
> 0000000000000000.
> [32655.425412] xc2028 2-0061: load_firmware called
> [32655.425414] xc2028 2-0061: seek_firmware called, want type=BASE INIT1
> (4001),
> id 0000000000000000.
> [32655.425418] xc2028 2-0061: Can't find firmware for type=BASE INIT1 (4001),
> id
> 0000000000000000.
> [32655.425423] xc2028 2-0061: load_firmware called
> [32655.425425] xc2028 2-0061: seek_firmware called, want type=(0), id
> 0000000c00001000.
> [32655.425429] xc2028 2-0061: Selecting best matching firmware (2 bits) for
> type=(0), id 0000000c00001000:
> [32655.425432] xc2028 2-0061: Found firmware for type=(0), id
> 0000000c000000e0.
> [32655.425435] xc2028 2-0061: Loading firmware for type=(0), id
> 0000000c000000e0.
> [32655.440874] xc2028 2-0061: Trying to load scode 0
> [32655.440875] xc2028 2-0061: load_scode called
> [32655.440877] xc2028 2-0061: seek_firmware called, want type=SCODE
> (20000000),
> id 0000000c000000e0.
> [32655.440879] xc2028 2-0061: Found firmware for type=SCODE (20000000), id
> 0000000c04c000f0.
> [32655.440881] xc2028 2-0061: Loading SCODE for type=MONO SCODE HAS_IF_6000
> (60008000), id 0000000c04c000f0.
> [32655.443192] xc2028 2-0061: xc2028_get_reg 0004 called
> [32655.443855] xc2028 2-0061: xc2028_get_reg 0008 called
> [32655.444521] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware
> version 2.7
> [32655.557141] xc2028 2-0061: divisor= 00 00 64 00 (freq=400.000)
> [32655.580856] cx23885_dev_checkrevision() Hardware revision = 0xb0
> [32655.580862] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18, latency:
> 0,
> mmio: 0xd3000000
> root@medeb:~/v4l/media_build#
>
>
>
> Best regards
>
> Rémi .
>
>
> > Le 20 août 2013 à 16:44, remi <remi@remis.cc> a écrit :
> >
> >
> > Hello
> >
> > FYI
> >
> > I digged into the firmware problem a little,
> >
> >
> > xc3028L-v36.fw  gets loaded by default , and the errors are as you saw
> > earlier
> >
> >
> > forcing the /lib/firmware/xc3028-v27.fw : 
> >
> > [ 3569.941404] xc2028 2-0061: Could not load firmware
> > /lib/firmware/xc3028-v27.fw
> >
> >
> > So i searched the original dell/windows driver :
> >
> >
> > I have these files in there :
> >
> > root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070# ls -lR
> > .:
> > total 5468
> > drwxr-xr-x 2 gpunk gpunk    4096 août  20 13:24 Driver_X86
> > -rwxr-xr-x 1 gpunk gpunk 5589827 sept. 12  2007 Setup.exe
> > -rw-r--r-- 1 gpunk gpunk     197 oct.   9  2007 setup.iss
> >
> > ./Driver_X86:
> > total 1448
> > -rw-r--r-- 1 gpunk gpunk 114338 sept.  7  2007 A885VCap_ASUS_DELL_2.inf
> > -rw-r--r-- 1 gpunk gpunk  15850 sept. 11  2007 a885vcap.cat
> > -rw-r--r-- 1 gpunk gpunk 733824 sept.  7  2007 A885VCap.sys
> > -rw-r--r-- 1 gpunk gpunk 147870 avril 20  2007 cpnotify.ax
> > -rw-r--r-- 1 gpunk gpunk 376836 avril 20  2007 cx416enc.rom
> > -rw-r--r-- 1 gpunk gpunk  65536 avril 20  2007 cxtvrate.dll
> > -rw-r--r-- 1 gpunk gpunk  16382 avril 20  2007 merlinC.rom
> > root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070#
> >
> > root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86# grep
> > firmware *
> > Fichier binaire A885VCap.sys concordant
> > root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86#
> >
> >
> >
> > I'll try to find a way to extract "maybe" the right firmware for what this
> > card
> > ,
> >
> > I'd love some help :)
> >
> > Good news there are ALOT of infos on how to initialize the card in the .INF
> > ,
> > so
> >
> > many problems, i think, are partially solved (I need to implement them )
> >
> > I'll send a copy of theses to anyone who wishes,
> >
> > Or see
> > http://www.dell.com/support/drivers/us/en/04/DriverDetails?driverId=R169070 
> >  
> >  
> >  :)
> >
> > Regards
> >
> > Rémi
> >
> >
> >
> >
> >
> > > Le 20 août 2013 à 12:32, remi <remi@remis.cc> a écrit :
> > >
> > >
> > > Hello
> > >
> > > I have just putdown my screwdrivers :)
> > >
> > >
> > > Yes it was three ICs
> > >
> > >
> > > on the bottom-side , no heatsinks (digital reception, that's why i guess)
> > > ,
> > > is
> > > an AF9013-N1
> > >
> > > on the top-side, with a heatsink : CX23885-13Z , PCIe A/V controler
> > >
> > > on the top-side, with heat-sink + "radio-isolation" (aluminum box)
> > > XC3028ACQ
> > > ,
> > > so the analog reception .
> > >
> > >  
> > > Its all on a PCIe bus, the reason why i baught it ... :)
> > >
> > >
> > >
> > > To resume :
> > >
> > >
> > > AF9013-N1
> > >
> > > CX23885-13Z
> > >
> > > XC3028ACQ
> > >
> > >
> > > the drivers while scanning
> > >
> > >
> > > gpunk@medeb:~/Bureau$ dmesg |grep i2c
> > > [    2.363784] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
> > > [    2.384721] cx23885[0]: i2c scan: found device @ 0xc2 
> > > [tuner/mt2131/tda8275/xc5000/xc3028]
> > > [    2.391502] cx23885[0]: i2c scan: found device @ 0x66  [???]
> > > [    2.392339] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
> > > [    2.392831] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
> > > [    5.306751] i2c /dev entries driver
> > > gpunk@medeb:~/Bureau$
> > >
> > >
> > >  4.560428] xc2028 2-0061: xc2028_get_reg 0008 called
> > > [    4.560989] xc2028 2-0061: Device is Xceive 0 version 0.0, firmware
> > > version
> > > 0.0
> > > [    4.560990] xc2028 2-0061: Incorrect readback of firmware version.
> > > [ *    4.561184] xc2028 2-0061: Read invalid device hardware information -
> > > tuner
> > > hung?
> > > [ *    4.561386] xc2028 2-0061: 0.0      0.0
> > > [ *    4.674072] xc2028 2-0061: divisor= 00 00 64 00 (freq=400.000)
> > > [    4.697830] cx23885_dev_checkrevision() Hardware revision = 0xb0
> > > [    4.698029] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18,
> > > latency:
> > > 0,
> > > mmio: 0xd3000000
> > >
> > > * --> I bypassed the "goto fail" to start debugging a little bit the
> > > tuner-xc2028.c/ko ... lines 869
> > > ...
> > >
> > >
> > >
> > > The firmware doesnt get all loaded .
> > > gpunk@medeb:~/Bureau$  uname -a
> > > Linux medeb 3.11.0-rc6remi #1 SMP PREEMPT Mon Aug 19 13:30:04 CEST 2013
> > > i686
> > > GNU/Linux
> > > gpunk@medeb:~/Bureau$
> > >
> > >
> > > With yesterday's tarball from linuxtv.org / media-build git .
> > >
> > >
> > >
> > > Best regards
> > >
> > > Rémi
> > >
> > >
> > >
> > >
> > > > Le 19 août 2013 à 17:18, Antti Palosaari <crope@iki.fi> a écrit :
> > > >
> > > >
> > > > On 08/19/2013 05:18 PM, remi wrote:
> > > > > Hello
> > > > >
> > > > > I have this card since months,
> > > > >
> > > > > http://www.avermedia.com/avertv/Product/ProductDetail.aspx?Id=376&SI=true
> > > > >
> > > > > I have finally retested it with the cx23885 driver : card=39
> > > > >
> > > > >
> > > > >
> > > > > If I could do anything to identify : [    2.414734] cx23885[0]: i2c
> > > > > scan:
> > > > > found
> > > > > device @ 0x66  [???]
> > > > >
> > > > > Or "hookup" the xc5000 etc
> > > > >
> > > > > I'll be more than glad .
> > > > >
> > > >
> > > >
> > > > >
> > > > > ps: i opened it up a while ago,i saw an af9013 chip ? dvb-tuner looks
> > > > > like
> > > > > maybe the "device @ 0x66 i2c"
> > > > >
> > > > > I will double check , and re-write-down all the chips , i think 3 .
> > > >
> > > > You have to identify all the chips, for DVB-T there is tuner missing.
> > > >
> > > > USB-interface: cx23885
> > > > DVB-T demodulator: AF9013
> > > > RF-tuner: ?
> > > >
> > > > If there is existing driver for used RF-tuner it comes nice hacking
> > > > project for some newcomer.
> > > >
> > > > It is just tweaking and hacking to find out all settings. AF9013 driver
> > > > also needs likely some changes, currently it is used only for devices
> > > > having AF9015 with integrated AF9013, or AF9015 dual devices having
> > > > AF9015 + external AF9013 providing second tuner.
> > > >
> > > > I have bought quite similar AverMedia A301 ages back as I was looking
> > > > for that AF9013 model, but maybe I have bought just wrong one... :)
> > > >
> > > >
> > > > regards
> > > > Antti
> > > >
> > > >
> > > > --
> > > > http://palosaari.fi/
> > > > --
> > > > To unsubscribe from this list: send the line "unsubscribe linux-media"
> > > > in
> > > > the body of a message to majordomo@vger.kernel.org
> > > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-media" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-media" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

[-- Attachment #2: dmesg.a306.cx23885.txt --]
[-- Type: text/plain, Size: 17654 bytes --]

[ 3744.997672] media: Linux media interface: v0.10
[ 3745.000303] Linux video capture interface: v2.00
[ 3745.000308] WARNING: You are using an experimental version of the media stack.
[ 3745.000308] 	As the driver is backported to an older kernel, it doesn't offer
[ 3745.000308] 	enough quality for its usage in production.
[ 3745.000308] 	Use it with care.
[ 3745.000308] Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
[ 3745.000308] 	dfb9f94e8e5e7f73c8e2bcb7d4fb1de57e7c333d [media] stk1160: Build as a module if SND is m and audio support is selected
[ 3745.000308] 	9f1595245574a2dc1fb375df665e4d9fe336a9c4 [media] cx23885-video: fix two warnings
[ 3745.000308] 	5bc08e1921e46101457d3be09835697490177fdd [media] cx23885[v4]: Fix interrupt storm when enabling IR receiver
[ 3745.001773] WARNING: You are using an experimental version of the media stack.
[ 3745.001773] 	As the driver is backported to an older kernel, it doesn't offer
[ 3745.001773] 	enough quality for its usage in production.
[ 3745.001773] 	Use it with care.
[ 3745.001773] Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
[ 3745.001773] 	dfb9f94e8e5e7f73c8e2bcb7d4fb1de57e7c333d [media] stk1160: Build as a module if SND is m and audio support is selected
[ 3745.001773] 	9f1595245574a2dc1fb375df665e4d9fe336a9c4 [media] cx23885-video: fix two warnings
[ 3745.001773] 	5bc08e1921e46101457d3be09835697490177fdd [media] cx23885[v4]: Fix interrupt storm when enabling IR receiver
[ 3745.003348] WARNING: You are using an experimental version of the media stack.
[ 3745.003348] 	As the driver is backported to an older kernel, it doesn't offer
[ 3745.003348] 	enough quality for its usage in production.
[ 3745.003348] 	Use it with care.
[ 3745.003348] Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
[ 3745.003348] 	dfb9f94e8e5e7f73c8e2bcb7d4fb1de57e7c333d [media] stk1160: Build as a module if SND is m and audio support is selected
[ 3745.003348] 	9f1595245574a2dc1fb375df665e4d9fe336a9c4 [media] cx23885-video: fix two warnings
[ 3745.003348] 	5bc08e1921e46101457d3be09835697490177fdd [media] cx23885[v4]: Fix interrupt storm when enabling IR receiver
[ 3745.007711] cx23885 driver version 0.0.3 loaded
[ 3745.007846] cx23885[0]: cx23885_dev_setup() Memory configured for PCIe bridge type 885
[ 3745.007850] cx23885[0]: cx23885_init_tsport(portno=1)
[ 3745.008123] CORE cx23885[0]: subsystem: 1461:c139, board: AVerTV Hybrid Minicard PCIe A306 [card=40,autodetected]
[ 3745.008125] cx23885[0]: cx23885_pci_quirks()
[ 3745.008130] cx23885[0]: cx23885_dev_setup() tuner_type = 0x47 tuner_addr = 0x61 tuner_bus = 1
[ 3745.008133] cx23885[0]: cx23885_dev_setup() radio_type = 0x0 radio_addr = 0x0
[ 3745.008135] cx23885[0]: cx23885_reset()
[ 3745.108158] cx23885[0]: cx23885_sram_channel_setup() Configuring channel [VID A]
[ 3745.108172] cx23885[0]: cx23885_sram_channel_setup() Erasing channel [ch2]
[ 3745.108173] cx23885[0]: cx23885_sram_channel_setup() Configuring channel [TS1 B]
[ 3745.108188] cx23885[0]: cx23885_sram_channel_setup() Erasing channel [ch4]
[ 3745.108190] cx23885[0]: cx23885_sram_channel_setup() Erasing channel [ch5]
[ 3745.108191] cx23885[0]: cx23885_sram_channel_setup() Configuring channel [TS2 C]
[ 3745.108206] cx23885[0]: cx23885_sram_channel_setup() Configuring channel [TV Audio]
[ 3745.108223] cx23885[0]: cx23885_sram_channel_setup() Erasing channel [ch8]
[ 3745.108225] cx23885[0]: cx23885_sram_channel_setup() Erasing channel [ch9]
[ 3745.238409] cx23885[0]: scan bus 0:
[ 3745.249869] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
[ 3745.256761] cx23885[0]: scan bus 1:
[ 3745.270630] cx23885[0]: i2c scan: found device @ 0xc2  [tuner/mt2131/tda8275/xc5000/xc3028]
[ 3745.275114] cx23885[0]: scan bus 2:
[ 3745.277143] cx23885[0]: i2c scan: found device @ 0x66  [???]
[ 3745.277796] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
[ 3745.278106] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
[ 3745.309559] cx25840 13-0044: detecting cx25840 client on address 0x88
[ 3745.309786] cx25840 13-0044: device_id = 0x0000
[ 3745.310472] cx25840 13-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
[ 3745.956718] cx25840 13-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
[ 3745.957354] cx25840 13-0044: PLL regs = int: 15, frac: 2876105, post: 4
[ 3745.957356] cx25840 13-0044: PLL = 107.999999 MHz
[ 3745.957358] cx25840 13-0044: PLL/8 = 13.499999 MHz
[ 3745.957359] cx25840 13-0044: ADC Sampling freq = 14.317382 MHz
[ 3745.957361] cx25840 13-0044: Chroma sub-carrier freq = 3.579545 MHz
[ 3745.957363] cx25840 13-0044: hblank 122, hactive 720, vblank 26, vactive 487, vblank656 26, src_dec 543, burst 0x5b, luma_lpf 1, uv_lpf 1, comb 0x66, sc 0x087c1f
[ 3745.959132] cx25840 13-0044: decoder set video input 7, audio input 8
[ 3745.975507] tuner 12-0061: Setting mode_mask to 0x06
[ 3745.975511] tuner 12-0061: tuner 0x61: Tuner type absent
[ 3745.975514] tuner 12-0061: Tuner -1 found with type(s) Radio TV.
[ 3745.975523] tuner 12-0061: Calling set_type_addr for type=71, addr=0x61, mode=0x04, config=  (null)
[ 3745.975525] tuner 12-0061: defining GPIO callback
[ 3745.978494] xc2028: Xcv2028/3028 init called!
[ 3745.978498] xc2028 12-0061: creating new instance
[ 3745.978501] xc2028 12-0061: type set to XCeive xc2028/xc3028 tuner
[ 3745.978503] tuner 12-0061: type set to Xceive XC3028
[ 3745.978507] tuner 12-0061: cx23885[0] tuner I2C addr 0xc2 with type 71 used for 0x04
[ 3745.978509] xc2028 12-0061: xc2028_set_config called
[ 3745.978595] cx23885[0]: registered device video0 [v4l2]
[ 3745.978602] xc2028 12-0061: request_firmware_nowait(): OK
[ 3745.978605] xc2028 12-0061: load_all_firmwares called
[ 3745.978608] xc2028 12-0061: Loading 80 firmware images from xc3028-v27.fw, type: xc2028 firmware, ver 2.7
[ 3745.978616] xc2028 12-0061: Reading firmware type BASE F8MHZ (3), id 0, size=8718.
[ 3745.978627] xc2028 12-0061: Reading firmware type BASE F8MHZ MTS (7), id 0, size=8712.
[ 3745.978639] cx23885[0]: registered device vbi0
[ 3745.978641] xc2028 12-0061: Reading firmware type BASE FM (401), id 0, size=8562.
[ 3745.978655] xc2028 12-0061: Reading firmware type BASE FM INPUT1 (c01), id 0, size=8576.
[ 3745.978666] xc2028 12-0061: Reading firmware type BASE (1), id 0, size=8706.
[ 3745.978677] xc2028 12-0061: Reading firmware type BASE MTS (5), id 0, size=8682.
[ 3745.978685] xc2028 12-0061: Reading firmware type (0), id 100000007, size=161.
[ 3745.978688] xc2028 12-0061: Reading firmware type MTS (4), id 100000007, size=169.
[ 3745.978692] xc2028 12-0061: Reading firmware type (0), id 200000007, size=161.
[ 3745.978695] xc2028 12-0061: Reading firmware type MTS (4), id 200000007, size=169.
[ 3745.978699] xc2028 12-0061: Reading firmware type (0), id 400000007, size=161.
[ 3745.978702] xc2028 12-0061: Reading firmware type MTS (4), id 400000007, size=169.
[ 3745.978706] xc2028 12-0061: Reading firmware type (0), id 800000007, size=161.
[ 3745.978709] xc2028 12-0061: Reading firmware type MTS (4), id 800000007, size=169.
[ 3745.978713] xc2028 12-0061: Reading firmware type (0), id 3000000e0, size=161.
[ 3745.978716] xc2028 12-0061: Reading firmware type MTS (4), id 3000000e0, size=169.
[ 3745.978719] xc2028 12-0061: Reading firmware type (0), id c000000e0, size=161.
[ 3745.978722] xc2028 12-0061: Reading firmware type MTS (4), id c000000e0, size=169.
[ 3745.978726] xc2028 12-0061: Reading firmware type (0), id 200000, size=161.
[ 3745.978729] xc2028 12-0061: Reading firmware type MTS (4), id 200000, size=169.
[ 3745.978733] xc2028 12-0061: Reading firmware type (0), id 4000000, size=161.
[ 3745.978736] xc2028 12-0061: Reading firmware type MTS (4), id 4000000, size=169.
[ 3745.978740] xc2028 12-0061: Reading firmware type D2633 DTV6 ATSC (10030), id 0, size=149.
[ 3745.978744] xc2028 12-0061: Reading firmware type D2620 DTV6 QAM (68), id 0, size=149.
[ 3745.978749] xc2028 12-0061: Reading firmware type D2633 DTV6 QAM (70), id 0, size=149.
[ 3745.978754] xc2028 12-0061: Reading firmware type D2620 DTV7 (88), id 0, size=149.
[ 3745.978758] xc2028 12-0061: Reading firmware type D2633 DTV7 (90), id 0, size=149.
[ 3745.978762] xc2028 12-0061: Reading firmware type D2620 DTV78 (108), id 0, size=149.
[ 3745.978766] xc2028 12-0061: Reading firmware type D2633 DTV78 (110), id 0, size=149.
[ 3745.978770] xc2028 12-0061: Reading firmware type D2620 DTV8 (208), id 0, size=149.
[ 3745.978774] xc2028 12-0061: Reading firmware type D2633 DTV8 (210), id 0, size=149.
[ 3745.978778] xc2028 12-0061: Reading firmware type FM (400), id 0, size=135.
[ 3745.978782] xc2028 12-0061: Reading firmware type (0), id 10, size=161.
[ 3745.978785] cx23885[0]: registered ALSA audio device
[ 3745.978788] cx25840 13-0044: changing video std to fmt 1
[ 3745.978790] xc2028 12-0061: Reading firmware type MTS (4), id 10, size=169.
[ 3745.978794] xc2028 12-0061: Reading firmware type (0), id 1000400000, size=169.
[ 3745.978797] xc2028 12-0061: Reading firmware type (0), id c00400000, size=161.
[ 3745.978800] xc2028 12-0061: Reading firmware type (0), id 800000, size=161.
[ 3745.978803] xc2028 12-0061: Reading firmware type (0), id 8000, size=161.
[ 3745.978807] xc2028 12-0061: Reading firmware type LCD (1000), id 8000, size=161.
[ 3745.978810] xc2028 12-0061: Reading firmware type LCD NOGD (3000), id 8000, size=161.
[ 3745.978814] xc2028 12-0061: Reading firmware type MTS (4), id 8000, size=169.
[ 3745.978818] xc2028 12-0061: Reading firmware type (0), id b700, size=161.
[ 3745.978821] xc2028 12-0061: Reading firmware type LCD (1000), id b700, size=161.
[ 3745.978825] xc2028 12-0061: Reading firmware type LCD NOGD (3000), id b700, size=161.
[ 3745.978828] xc2028 12-0061: Reading firmware type (0), id 2000, size=161.
[ 3745.978832] xc2028 12-0061: Reading firmware type MTS (4), id b700, size=169.
[ 3745.978835] xc2028 12-0061: Reading firmware type MTS LCD (1004), id b700, size=169.
[ 3745.978839] xc2028 12-0061: Reading firmware type MTS LCD NOGD (3004), id b700, size=169.
[ 3745.978843] xc2028 12-0061: Reading firmware type SCODE HAS_IF_3280 (60000000), id 0, size=192.
[ 3745.978848] xc2028 12-0061: Reading firmware type SCODE HAS_IF_3300 (60000000), id 0, size=192.
[ 3745.978853] xc2028 12-0061: Reading firmware type SCODE HAS_IF_3440 (60000000), id 0, size=192.
[ 3745.978857] xc2028 12-0061: Reading firmware type SCODE HAS_IF_3460 (60000000), id 0, size=192.
[ 3745.978861] xc2028 12-0061: Reading firmware type DTV6 ATSC OREN36 SCODE HAS_IF_3800 (60210020), id 0, size=192.
[ 3745.978867] xc2028 12-0061: Reading firmware type SCODE HAS_IF_4000 (60000000), id 0, size=192.
[ 3745.978871] xc2028 12-0061: Reading firmware type DTV6 ATSC TOYOTA388 SCODE HAS_IF_4080 (60410020), id 0, size=192.
[ 3745.978877] xc2028 12-0061: Reading firmware type SCODE HAS_IF_4200 (60000000), id 0, size=192.
[ 3745.978882] xc2028 12-0061: Reading firmware type MONO SCODE HAS_IF_4320 (60008000), id 8000, size=192.
[ 3745.978886] xc2028 12-0061: Reading firmware type SCODE HAS_IF_4450 (60000000), id 0, size=192.
[ 3745.978891] xc2028 12-0061: Reading firmware type MTS LCD NOGD MONO IF SCODE HAS_IF_4500 (6002b004), id b700, size=192.
[ 3745.978898] xc2028 12-0061: Reading firmware type LCD NOGD IF SCODE HAS_IF_4600 (60023000), id 8000, size=192.
[ 3745.978903] xc2028 12-0061: Reading firmware type DTV6 QAM DTV7 DTV78 DTV8 ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0, size=192.
[ 3745.978911] xc2028 12-0061: Reading firmware type SCODE HAS_IF_4940 (60000000), id 0, size=192.
[ 3745.978915] xc2028 12-0061: Reading firmware type SCODE HAS_IF_5260 (60000000), id 0, size=192.
[ 3745.978920] xc2028 12-0061: Reading firmware type MONO SCODE HAS_IF_5320 (60008000), id f00000007, size=192.
[ 3745.978924] xc2028 12-0061: Reading firmware type DTV7 DTV78 DTV8 DIBCOM52 CHINA SCODE HAS_IF_5400 (65000380), id 0, size=192.
[ 3745.978931] xc2028 12-0061: Reading firmware type DTV6 ATSC OREN538 SCODE HAS_IF_5580 (60110020), id 0, size=192.
[ 3745.978938] xc2028 12-0061: Reading firmware type SCODE HAS_IF_5640 (60000000), id 300000007, size=192.
[ 3745.978942] xc2028 12-0061: Reading firmware type SCODE HAS_IF_5740 (60000000), id c00000007, size=192.
[ 3745.978947] xc2028 12-0061: Reading firmware type SCODE HAS_IF_5900 (60000000), id 0, size=192.
[ 3745.978951] xc2028 12-0061: Reading firmware type MONO SCODE HAS_IF_6000 (60008000), id c04c000f0, size=192.
[ 3745.978956] xc2028 12-0061: Reading firmware type DTV6 QAM ATSC LG60 F6MHZ SCODE HAS_IF_6200 (68050060), id 0, size=192.
[ 3745.978963] xc2028 12-0061: Reading firmware type SCODE HAS_IF_6240 (60000000), id 10, size=192.
[ 3745.978967] xc2028 12-0061: Reading firmware type MONO SCODE HAS_IF_6320 (60008000), id 200000, size=192.
[ 3745.978972] xc2028 12-0061: Reading firmware type SCODE HAS_IF_6340 (60000000), id 200000, size=192.
[ 3745.978977] xc2028 12-0061: Reading firmware type MONO SCODE HAS_IF_6500 (60008000), id c044000e0, size=192.
[ 3745.978982] xc2028 12-0061: Reading firmware type DTV6 ATSC ATI638 SCODE HAS_IF_6580 (60090020), id 0, size=192.
[ 3745.978988] xc2028 12-0061: Reading firmware type SCODE HAS_IF_6600 (60000000), id 3000000e0, size=192.
[ 3745.978992] xc2028 12-0061: Reading firmware type MONO SCODE HAS_IF_6680 (60008000), id 3000000e0, size=192.
[ 3745.978997] xc2028 12-0061: Reading firmware type DTV6 ATSC TOYOTA794 SCODE HAS_IF_8140 (60810020), id 0, size=192.
[ 3745.979021] xc2028 12-0061: Reading firmware type SCODE HAS_IF_8200 (60000000), id 0, size=192.
[ 3745.979025] xc2028 12-0061: Firmware files loaded.
[ 3745.979816] cx25840 13-0044: PLL regs = int: 15, frac: 2876105, post: 4
[ 3745.979820] cx25840 13-0044: PLL = 107.999999 MHz
[ 3745.979822] cx25840 13-0044: PLL/8 = 13.499999 MHz
[ 3745.979825] cx25840 13-0044: ADC Sampling freq = 14.317382 MHz
[ 3745.979827] cx25840 13-0044: Chroma sub-carrier freq = 3.579545 MHz
[ 3745.979831] cx25840 13-0044: hblank 122, hactive 720, vblank 26, vactive 487, vblank656 26, src_dec 543, burst 0x5b, luma_lpf 1, uv_lpf 1, comb 0x66, sc 0x087c1f
[ 3745.982961] tuner 12-0061: tv freq set to 400.00
[ 3745.982964] xc2028 12-0061: xc2028_set_analog_freq called
[ 3745.982967] xc2028 12-0061: generic_set_freq called
[ 3745.982970] xc2028 12-0061: should set frequency 400000 kHz
[ 3745.982972] xc2028 12-0061: check_firmware called
[ 3745.982974] xc2028 12-0061: checking firmware, user requested type=(0), id 0000000000001000, scode_tbl (0), scode_nr 0
[ 3746.021739] cx23885[0]: cx23885_sram_channel_setup() Configuring channel [TV Audio]
[ 3746.185354] xc2028 12-0061: load_firmware called
[ 3746.185358] xc2028 12-0061: seek_firmware called, want type=BASE (1), id 0000000000000000.
[ 3746.185361] xc2028 12-0061: Found firmware for type=BASE (1), id 0000000000000000.
[ 3746.185363] xc2028 12-0061: Loading firmware for type=BASE (1), id 0000000000000000.
[ 3747.357384] xc2028 12-0061: Load init1 firmware, if exists
[ 3747.357389] xc2028 12-0061: load_firmware called
[ 3747.357392] xc2028 12-0061: seek_firmware called, want type=BASE INIT1 (4001), id 0000000000000000.
[ 3747.357399] xc2028 12-0061: Can't find firmware for type=BASE INIT1 (4001), id 0000000000000000.
[ 3747.357403] xc2028 12-0061: load_firmware called
[ 3747.357405] xc2028 12-0061: seek_firmware called, want type=BASE INIT1 (4001), id 0000000000000000.
[ 3747.357410] xc2028 12-0061: Can't find firmware for type=BASE INIT1 (4001), id 0000000000000000.
[ 3747.357414] xc2028 12-0061: load_firmware called
[ 3747.357416] xc2028 12-0061: seek_firmware called, want type=(0), id 0000000000001000.
[ 3747.357420] xc2028 12-0061: Found firmware for type=(0), id 000000000000b700.
[ 3747.357423] xc2028 12-0061: Loading firmware for type=(0), id 000000000000b700.
[ 3747.372943] xc2028 12-0061: Trying to load scode 0
[ 3747.372944] xc2028 12-0061: load_scode called
[ 3747.372946] xc2028 12-0061: seek_firmware called, want type=SCODE (20000000), id 000000000000b700.
[ 3747.372948] xc2028 12-0061: Selecting best matching firmware (1 bits) for type=SCODE (20000000), id 000000000000b700:
[ 3747.372950] xc2028 12-0061: Found firmware for type=SCODE (20000000), id 0000000000008000.
[ 3747.372952] xc2028 12-0061: Loading SCODE for type=MONO SCODE HAS_IF_4320 (60008000), id 0000000000008000.
[ 3747.375268] xc2028 12-0061: xc2028_get_reg 0004 called
[ 3747.375932] xc2028 12-0061: xc2028_get_reg 0008 called
[ 3747.376615] xc2028 12-0061: Device is Xceive 3028 version 1.0, firmware version 2.7
[ 3747.489052] xc2028 12-0061: divisor= 00 00 64 00 (freq=400.000)
[ 3747.489735] cx25840 13-0044: decoder set video input -2147483439, audio input 8
[ 3747.489738] cx25840 13-0044: vid_input 0x800000d1
[ 3747.489740] cx25840 13-0044: mux cfg 0xd1 comp=1
[ 3747.501430] cx25840 13-0044: decoder set video input -2147483439, audio input 8
[ 3747.501433] cx25840 13-0044: vid_input 0x800000d1
[ 3747.501434] cx25840 13-0044: mux cfg 0xd1 comp=1
[ 3747.513175] cx23885[0]: cx23885_417_register()
[ 3747.513177] cx23885[0]: cx23885_video_dev_alloc()
[ 3747.513296] cx23885[0]: registered device video1 [mpeg]
[ 3747.513298] cx23885[0]: cx23885_initialize_codec()
[ 3747.513318] Firmware and/or mailbox pointer not initialized or corrupted, signature = 0xfefefefe, cmd = PING_FW
[ 3748.109946] cx23885[0]: Verifying firmware ...
[ 3749.480719] ERROR: Firmware load failed (checksum mismatch).
[ 3749.480734] cx23885_initialize_codec() f/w load failed
[ 3749.480739] cx23885_dev_checkrevision() Hardware revision = 0xb0
[ 3749.480744] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18, latency: 0, mmio: 0xd3000000
root@medeb:~/v4l# 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: avermedia A306 / PCIe-minicard (laptop) / CX23885
  2013-08-21 12:29         ` avermedia A306 / PCIe-minicard (laptop) / CX23885 remi
@ 2013-08-23 10:54           ` remi
  0 siblings, 0 replies; 10+ messages in thread
From: remi @ 2013-08-23 10:54 UTC (permalink / raw)
  To: linux-media; +Cc: Antti Palosaari, Steven Toth

I resubmit with the proper keyword , sorry for the pollution .

Signed-off-by: Rémi PUTHOMME-ESSAISSI <remi@remis.cc>

Hello

I suggest this patch,

For v4l/cx23885.h
    v4l/cx23885-video.c
and v4l/cx23885-cards.c

Status,

AVerMedia A306 MiniCard Hybrid DVB-T  / 14f1:8852 (rev 02) Subsystem: 1461:c139

Is beeing regognized and loaded by the driver, by it's PCI ID ,

The correct firmwares are loaded fully notably by the Xceive 3028 .

I'm testing the mpeg side, not fully yet (firmware) .

The full dmesg output, with all relevant drivers set debug=1 , is atteched to
the email .

I do not have all the cables to test (it's a laptop ..:) )
so testing is more than welcome.

Best regards

Rémi PUTHOMME-ESSAISSI .



root@medeb:~/v4l# diff -u  media_build/v4l/cx23885-cards.c
media_build.remi/v4l/cx23885-cards.c
--- media_build/v4l/cx23885-cards.c     2012-12-28 00:04:05.000000000 +0100
+++ media_build.remi/v4l/cx23885-cards.c        2013-08-21 14:15:54.173195979
+0200
@@ -604,8 +604,39 @@
                                  CX25840_NONE0_CH3 |
                                  CX25840_NONE1_CH3,
                        .amux   = CX25840_AUDIO6,
-               } },
-       }
+               }}
+        },
+       [CX23885_BOARD_AVERMEDIA_A306] = {
+                .name           = "AVerTV Hybrid Minicard PCIe A306",
+                .tuner_type     = TUNER_XC2028,
+                .tuner_addr     = 0x61, /* 0xc2 >> 1 */
+                .tuner_bus      = 1,
+                .porta          = CX23885_ANALOG_VIDEO,
+               .portb          = CX23885_MPEG_ENCODER,
+                .input          = {{
+                        .type   = CX23885_VMUX_TELEVISION,
+                        .vmux   = CX25840_VIN2_CH1 |
+                                  CX25840_VIN5_CH2 |
+                                  CX25840_NONE0_CH3 |
+                                  CX25840_NONE1_CH3,
+                        .amux   = CX25840_AUDIO8,
+                }, {
+                        .type   = CX23885_VMUX_SVIDEO,
+                        .vmux   = CX25840_VIN8_CH1 |
+                                  CX25840_NONE_CH2 |
+                                  CX25840_VIN7_CH3 |
+                                  CX25840_SVIDEO_ON,
+                        .amux   = CX25840_AUDIO6,
+                }, {
+                        .type   = CX23885_VMUX_COMPONENT,
+                        .vmux   = CX25840_VIN1_CH1 |
+                                  CX25840_NONE_CH2 |
+                                  CX25840_NONE0_CH3 |
+                                  CX25840_NONE1_CH3,
+                        .amux   = CX25840_AUDIO6,
+                }},
+
+       }       
 };
 const unsigned int cx23885_bcount = ARRAY_SIZE(cx23885_boards);
 
@@ -841,7 +872,12 @@
                .subvendor = 0x1461,
                .subdevice = 0xd939,
                .card      = CX23885_BOARD_AVERMEDIA_HC81R,
-       },
+       }, {
+                .subvendor = 0x1461,
+                .subdevice = 0xc139,
+                .card      = CX23885_BOARD_AVERMEDIA_A306,
+        },
+       
 };
 const unsigned int cx23885_idcount = ARRAY_SIZE(cx23885_subids);
 
@@ -1069,6 +1105,10 @@
                /* XC3028L Reset Command */
                bitmask = 1 << 2;
                break;
+       case CX23885_BOARD_AVERMEDIA_A306:
+                /* XC3028L Reset Command */
+                bitmask = 1 << 2;
+                break;
        }
 
        if (bitmask) {
@@ -1394,6 +1434,34 @@
                cx_set(GP0_IO, 0x00040004);
                mdelay(60);
                break;
+        case CX23885_BOARD_AVERMEDIA_A306:
+                cx_clear(MC417_CTL, 1);
+                /* GPIO-0,1,2 setup direction as output */
+                cx_set(GP0_IO, 0x00070000);
+                mdelay(10);
+                /* AF9013 demod reset */
+                cx_set(GP0_IO, 0x00010001);
+                mdelay(10);
+                cx_clear(GP0_IO, 0x00010001);
+                mdelay(10);
+                cx_set(GP0_IO, 0x00010001);
+                mdelay(10);
+                /* demod tune? */
+                cx_clear(GP0_IO, 0x00030003);
+                mdelay(10);
+                cx_set(GP0_IO, 0x00020002);
+                mdelay(10);
+                cx_set(GP0_IO, 0x00010001);
+                mdelay(10);
+                cx_clear(GP0_IO, 0x00020002);
+                /* XC3028L tuner reset */
+                cx_set(GP0_IO, 0x00040004);
+                cx_clear(GP0_IO, 0x00040004);
+                cx_set(GP0_IO, 0x00040004);
+                mdelay(60);
+                break;
+
+
        }
 }
 
@@ -1623,6 +1691,21 @@
                ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
                ts2->src_sel_val     = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
                break;
+
+        case CX23885_BOARD_AVERMEDIA_A306:
+                /* Defaults for VID B */
+                ts1->gen_ctrl_val  = 0x4; /* Parallel */
+                ts1->ts_clk_en_val = 0x1; /* Enable TS_CLK */
+                ts1->src_sel_val   = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
+                /* Defaults for VID C */
+                /* DREQ_POL, SMODE, PUNC_CLK, MCLK_POL Serial bus + punc clk */
+                ts2->gen_ctrl_val  = 0x10e;
+                ts2->ts_clk_en_val = 0x1; /* Enable TS_CLK */
+                ts2->src_sel_val     = CX23885_SRC_SEL_PARALLEL_MPEG_VIDEO;
+                break;
+
+
+
        case CX23885_BOARD_DVICO_FUSIONHDTV_7_DUAL_EXP:
        case CX23885_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL_EXP:
                ts2->gen_ctrl_val  = 0xc; /* Serial bus + punctured clock */
@@ -1758,6 +1841,18 @@
                        v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
                }
                break;
+
+        case CX23885_BOARD_AVERMEDIA_A306:
+                dev->sd_cx25840 = v4l2_i2c_new_subdev(&dev->v4l2_dev,
+                                &dev->i2c_bus[2].i2c_adap,
+                                "cx25840", 0x88 >> 1, NULL);
+                if (dev->sd_cx25840) {
+                        dev->sd_cx25840->grp_id = CX23885_HW_AV_CORE;
+                        v4l2_subdev_call(dev->sd_cx25840, core, load_fw);
+                }
+                break;
+
+
        }
 
        /* AUX-PLL 27MHz CLK */
root@medeb:~/v4l# diff -u  media_build/v4l/cx23885-video.c
media_build.remi/v4l/cx23885-video.c
--- media_build/v4l/cx23885-video.c     2013-08-02 05:45:59.000000000 +0200
+++ media_build.remi/v4l/cx23885-video.c        2013-08-21 13:55:20.017625046
+0200
@@ -511,7 +511,8 @@
                (dev->board == CX23885_BOARD_HAUPPAUGE_HVR1255_22111) ||
                (dev->board == CX23885_BOARD_HAUPPAUGE_HVR1850) ||
                (dev->board == CX23885_BOARD_MYGICA_X8507) ||
-               (dev->board == CX23885_BOARD_AVERMEDIA_HC81R)) {
+               (dev->board == CX23885_BOARD_AVERMEDIA_HC81R)||
+               (dev->board == CX23885_BOARD_AVERMEDIA_A306)) {
                /* Configure audio routing */
                v4l2_subdev_call(dev->sd_cx25840, audio, s_routing,
                        INPUT(input)->amux, 0, 0);
@@ -1888,6 +1889,20 @@
                                };
                                v4l2_subdev_call(sd, tuner, s_config, &cfg);
                        }
+                       if (dev->board == CX23885_BOARD_AVERMEDIA_A306) {
+                                struct xc2028_ctrl ctrl = {
+                                     /* .fname = "xc3028L-v36.fw", */
+                                       .fname = "xc3028-v27.fw",
+                                        .max_len = 64
+                                };
+                                struct v4l2_priv_tun_config cfg = {
+                                        .tuner = dev->tuner_type,
+                                        .priv = &ctrl
+                                };
+                                v4l2_subdev_call(sd, tuner, s_config, &cfg);
+                        }
+
+
                }
        }
 
root@medeb:~/v4l# diff -u  media_build/v4l/cx23885.h
media_build.remi/v4l/cx23885.h
--- media_build/v4l/cx23885.h   2013-03-25 05:45:50.000000000 +0100
+++ media_build.remi/v4l/cx23885.h      2013-08-21 13:55:20.010625134 +0200
@@ -93,6 +93,7 @@
 #define CX23885_BOARD_PROF_8000                37
 #define CX23885_BOARD_HAUPPAUGE_HVR4400        38
 #define CX23885_BOARD_AVERMEDIA_HC81R          39
+#define CX23885_BOARD_AVERMEDIA_A306           40
 
 #define GPIO_0 0x00000001
 #define GPIO_1 0x00000002
root@medeb:~/v4l#




> Le 20 août 2013 à 21:31, remi <remi@remis.cc> a écrit :
>
>
> Hello
>
> Seeing that card=39 worked, and, that the A306 doesnt use the LowPower version
> of the XC3028 , HC81 is an expressCard == lowpower
>
> A306 is the PCIe minicard version == not LowPower ,
>
>
> I decided to clone the HC81 entries in cx23885-video.c, cx23885.h ,
> cx23885-cards.c
>
> And intruct it to load then the xc3028-v27.fw instead,
>
> Seems to me alot better , see below ,
>
> And I added so, the card=40 in the definitions ...
>
> I dont think submiting a patch for this woth it yet ...
>
> as none of the tuners get "created" ,
>
> For the analog video composite/s-video, i'll be able to test it when i find
> the
> right cable .
>
>
>
> root@medeb:~/v4l/media_build/v4l# grep A306 *
> cx23885-cards.c:        [CX23885_BOARD_AVERMEDIA_A306] = {
> cx23885-cards.c:                .name           = "AVerTV Hybrid Minicard PCIe
> A306",
> cx23885-cards.c:                .card      = CX23885_BOARD_AVERMEDIA_A306,
> cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
> cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
> cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
> cx23885-cards.c:        case CX23885_BOARD_AVERMEDIA_A306:
> cx23885.h:#define CX23885_BOARD_AVERMEDIA_A306          40
> cx23885-video.c:                (dev->board == CX23885_BOARD_AVERMEDIA_A306))
> {
> cx23885-video.c:                        if (dev->board ==
> CX23885_BOARD_AVERMEDIA_A306) {
>
>
>
>
>                         if (dev->board == CX23885_BOARD_AVERMEDIA_HC81R) {
>                                 struct xc2028_ctrl ctrl = {
>                                         .fname = "xc3028L-v36.fw",
>                                         .max_len = 64
>                                 };
>                                 struct v4l2_priv_tun_config cfg = {
>                                         .tuner = dev->tuner_type,
>                                         .priv = &ctrl
>                                 };
>                                 v4l2_subdev_call(sd, tuner, s_config, &cfg);
>                         }
>                         if (dev->board == CX23885_BOARD_AVERMEDIA_A306) {
>                                 struct xc2028_ctrl ctrl = {
>                                      /* .fname = "xc3028L-v36.fw", */
>                                         .fname = "xc3028-v27.fw",
>                                         .max_len = 64
>                                 };
>                                 struct v4l2_priv_tun_config cfg = {
>                                         .tuner = dev->tuner_type,
>                                         .priv = &ctrl
>                                 };
>                                 v4l2_subdev_call(sd, tuner, s_config, &cfg);
>                         }
>
>
>
> [32653.087693] cx23885 driver version 0.0.3 loaded
> [32653.088091] CORE cx23885[0]: subsystem: 1461:c139, board: AVerTV Hybrid
> Minicard PCIe A306 [card=40,autodetected]
> [32653.318339] cx23885[0]: scan bus 0:
> [32653.329792] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
> [32653.336716] cx23885[0]: scan bus 1:
> [32653.350543] cx23885[0]: i2c scan: found device @ 0xc2
> [tuner/mt2131/tda8275/xc5000/xc3028]
> [32653.355042] cx23885[0]: scan bus 2:
> [32653.357050] cx23885[0]: i2c scan: found device @ 0x66  [???]
> [32653.357699] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
> [32653.358011] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
> [32653.391211] cx25840 3-0044: cx23885 A/V decoder found @ 0x88 (cx23885[0])
> [32654.031992] cx25840 3-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382
> bytes)
> [32654.049675] tuner 2-0061: Tuner -1 found with type(s) Radio TV.
> [32654.051827] xc2028: Xcv2028/3028 init called!
> [32654.051830] xc2028 2-0061: creating new instance
> [32654.051832] xc2028 2-0061: type set to XCeive xc2028/xc3028 tuner
> [32654.051834] xc2028 2-0061: xc2028_set_config called
> [32654.051963] cx23885[0]: registered device video0 [v4l2]
> [32654.052165] cx23885[0]: registered device vbi0
> [32654.052329] cx23885[0]: registered ALSA audio device
> [32654.052593] xc2028 2-0061: request_firmware_nowait(): OK
> [32654.052596] xc2028 2-0061: load_all_firmwares called
> [32654.052598] xc2028 2-0061: Loading 80 firmware images from xc3028-v27.fw,
> type: xc2028 firmware, ver 2.7
> [32654.052606] xc2028 2-0061: Reading firmware type BASE F8MHZ (3), id 0,
> size=8718.
> [32654.052614] xc2028 2-0061: Reading firmware type BASE F8MHZ MTS (7), id 0,
> size=8712.
> [32654.052623] xc2028 2-0061: Reading firmware type BASE FM (401), id 0,
> size=8562.
> [32654.052631] xc2028 2-0061: Reading firmware type BASE FM INPUT1 (c01), id
> 0,
> size=8576.
> [32654.052640] xc2028 2-0061: Reading firmware type BASE (1), id 0, size=8706.
> [32654.052647] xc2028 2-0061: Reading firmware type BASE MTS (5), id 0,
> size=8682.
> [32654.052652] xc2028 2-0061: Reading firmware type (0), id 100000007,
> size=161.
> [32654.052654] xc2028 2-0061: Reading firmware type MTS (4), id 100000007,
> size=169.
> [32654.052657] xc2028 2-0061: Reading firmware type (0), id 200000007,
> size=161.
> [32654.052659] xc2028 2-0061: Reading firmware type MTS (4), id 200000007,
> size=169.
> [32654.052661] xc2028 2-0061: Reading firmware type (0), id 400000007,
> size=161.
> [32654.052663] xc2028 2-0061: Reading firmware type MTS (4), id 400000007,
> size=169.
> [32654.052666] xc2028 2-0061: Reading firmware type (0), id 800000007,
> size=161.
> [32654.052668] xc2028 2-0061: Reading firmware type MTS (4), id 800000007,
> size=169.
> [32654.052670] xc2028 2-0061: Reading firmware type (0), id 3000000e0,
> size=161.
> [32654.052672] xc2028 2-0061: Reading firmware type MTS (4), id 3000000e0,
> size=169.
> [32654.052675] xc2028 2-0061: Reading firmware type (0), id c000000e0,
> size=161.
> [32654.052677] xc2028 2-0061: Reading firmware type MTS (4), id c000000e0,
> size=169.
> [32654.052679] xc2028 2-0061: Reading firmware type (0), id 200000, size=161.
> [32654.052681] xc2028 2-0061: Reading firmware type MTS (4), id 200000,
> size=169.
> [32654.052684] xc2028 2-0061: Reading firmware type (0), id 4000000, size=161.
> [32654.052686] xc2028 2-0061: Reading firmware type MTS (4), id 4000000,
> size=169.
> [32654.052688] xc2028 2-0061: Reading firmware type D2633 DTV6 ATSC (10030),
> id
> 0, size=149.
> [32654.052691] xc2028 2-0061: Reading firmware type D2620 DTV6 QAM (68), id 0,
> size=149.
> [32654.052694] xc2028 2-0061: Reading firmware type D2633 DTV6 QAM (70), id 0,
> size=149.
> [32654.052698] xc2028 2-0061: Reading firmware type D2620 DTV7 (88), id 0,
> size=149.
> [32654.052700] xc2028 2-0061: Reading firmware type D2633 DTV7 (90), id 0,
> size=149.
> [32654.052703] xc2028 2-0061: Reading firmware type D2620 DTV78 (108), id 0,
> size=149.
> [32654.052706] xc2028 2-0061: Reading firmware type D2633 DTV78 (110), id 0,
> size=149.
> [32654.052708] xc2028 2-0061: Reading firmware type D2620 DTV8 (208), id 0,
> size=149.
> [32654.052711] xc2028 2-0061: Reading firmware type D2633 DTV8 (210), id 0,
> size=149.
> [32654.052714] xc2028 2-0061: Reading firmware type FM (400), id 0, size=135.
> [32654.052716] xc2028 2-0061: Reading firmware type (0), id 10, size=161.
> [32654.052718] xc2028 2-0061: Reading firmware type MTS (4), id 10, size=169.
> [32654.052721] xc2028 2-0061: Reading firmware type (0), id 1000400000,
> size=169.
> [32654.052723] xc2028 2-0061: Reading firmware type (0), id c00400000,
> size=161.
> [32654.052725] xc2028 2-0061: Reading firmware type (0), id 800000, size=161.
> [32654.052727] xc2028 2-0061: Reading firmware type (0), id 8000, size=161.
> [32654.052729] xc2028 2-0061: Reading firmware type LCD (1000), id 8000,
> size=161.
> [32654.052732] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id 8000,
> size=161.
> [32654.052734] xc2028 2-0061: Reading firmware type MTS (4), id 8000,
> size=169.
> [32654.052737] xc2028 2-0061: Reading firmware type (0), id b700, size=161.
> [32654.052739] xc2028 2-0061: Reading firmware type LCD (1000), id b700,
> size=161.
> [32654.052741] xc2028 2-0061: Reading firmware type LCD NOGD (3000), id b700,
> size=161.
> [32654.052744] xc2028 2-0061: Reading firmware type (0), id 2000, size=161.
> [32654.052745] xc2028 2-0061: Reading firmware type MTS (4), id b700,
> size=169.
> [32654.052748] xc2028 2-0061: Reading firmware type MTS LCD (1004), id b700,
> size=169.
> [32654.052750] xc2028 2-0061: Reading firmware type MTS LCD NOGD (3004), id
> b700, size=169.
> [32654.052753] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3280
> (60000000), id 0, size=192.
> [32654.052756] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3300
> (60000000), id 0, size=192.
> [32654.052759] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3440
> (60000000), id 0, size=192.
> [32654.052762] xc2028 2-0061: Reading firmware type SCODE HAS_IF_3460
> (60000000), id 0, size=192.
> [32654.052765] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN36 SCODE
> HAS_IF_3800 (60210020), id 0, size=192.
> [32654.052768] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4000
> (60000000), id 0, size=192.
> [32654.052771] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA388 SCODE
> HAS_IF_4080 (60410020), id 0, size=192.
> [32654.052775] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4200
> (60000000), id 0, size=192.
> [32654.052778] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_4320
> (60008000), id 8000, size=192.
> [32654.052781] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4450
> (60000000), id 0, size=192.
> [32654.052783] xc2028 2-0061: Reading firmware type MTS LCD NOGD MONO IF SCODE
> HAS_IF_4500 (6002b004), id b700, size=192.
> [32654.052788] xc2028 2-0061: Reading firmware type LCD NOGD IF SCODE
> HAS_IF_4600 (60023000), id 8000, size=192.
> [32654.052792] xc2028 2-0061: Reading firmware type DTV6 QAM DTV7 DTV78 DTV8
> ZARLINK456 SCODE HAS_IF_4760 (620003e0), id 0, size=192.
> [32654.052796] xc2028 2-0061: Reading firmware type SCODE HAS_IF_4940
> (60000000), id 0, size=192.
> [32654.052799] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5260
> (60000000), id 0, size=192.
> [32654.052802] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_5320
> (60008000), id f00000007, size=192.
> [32654.052805] xc2028 2-0061: Reading firmware type DTV7 DTV78 DTV8 DIBCOM52
> CHINA SCODE HAS_IF_5400 (65000380), id 0, size=192.
> [32654.052809] xc2028 2-0061: Reading firmware type DTV6 ATSC OREN538 SCODE
> HAS_IF_5580 (60110020), id 0, size=192.
> [32654.052813] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5640
> (60000000), id 300000007, size=192.
> [32654.052816] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5740
> (60000000), id c00000007, size=192.
> [32654.052819] xc2028 2-0061: Reading firmware type SCODE HAS_IF_5900
> (60000000), id 0, size=192.
> [32654.052822] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6000
> (60008000), id c04c000f0, size=192.
> [32654.052825] xc2028 2-0061: Reading firmware type DTV6 QAM ATSC LG60 F6MHZ
> SCODE HAS_IF_6200 (68050060), id 0, size=192.
> [32654.052829] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6240
> (60000000), id 10, size=192.
> [32654.052834] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6320
> (60008000), id 200000, size=192.
> [32654.052837] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6340
> (60000000), id 200000, size=192.
> [32654.052840] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6500
> (60008000), id c044000e0, size=192.
> [32654.052843] xc2028 2-0061: Reading firmware type DTV6 ATSC ATI638 SCODE
> HAS_IF_6580 (60090020), id 0, size=192.
> [32654.052847] xc2028 2-0061: Reading firmware type SCODE HAS_IF_6600
> (60000000), id 3000000e0, size=192.
> [32654.052850] xc2028 2-0061: Reading firmware type MONO SCODE HAS_IF_6680
> (60008000), id 3000000e0, size=192.
> [32654.052853] xc2028 2-0061: Reading firmware type DTV6 ATSC TOYOTA794 SCODE
> HAS_IF_8140 (60810020), id 0, size=192.
> [32654.052857] xc2028 2-0061: Reading firmware type SCODE HAS_IF_8200
> (60000000), id 0, size=192.
> [32654.052860] xc2028 2-0061: Firmware files loaded.
> [32654.057869] xc2028 2-0061: xc2028_set_analog_freq called
> [32654.057872] xc2028 2-0061: generic_set_freq called
> [32654.057874] xc2028 2-0061: should set frequency 400000 kHz
> [32654.057876] xc2028 2-0061: check_firmware called
> [32654.057877] xc2028 2-0061: checking firmware, user requested type=(0), id
> 0000000c00001000, scode_tbl (0), scode_nr 0
> [32654.257895] xc2028 2-0061: load_firmware called
> [32654.257898] xc2028 2-0061: seek_firmware called, want type=BASE (1), id
> 0000000000000000.
> [32654.257900] xc2028 2-0061: Found firmware for type=BASE (1), id
> 0000000000000000.
> [32654.257902] xc2028 2-0061: Loading firmware for type=BASE (1), id
> 0000000000000000.
> [32655.425394] xc2028 2-0061: Load init1 firmware, if exists
> [32655.425399] xc2028 2-0061: load_firmware called
> [32655.425402] xc2028 2-0061: seek_firmware called, want type=BASE INIT1
> (4001),
> id 0000000000000000.
> [32655.425407] xc2028 2-0061: Can't find firmware for type=BASE INIT1 (4001),
> id
> 0000000000000000.
> [32655.425412] xc2028 2-0061: load_firmware called
> [32655.425414] xc2028 2-0061: seek_firmware called, want type=BASE INIT1
> (4001),
> id 0000000000000000.
> [32655.425418] xc2028 2-0061: Can't find firmware for type=BASE INIT1 (4001),
> id
> 0000000000000000.
> [32655.425423] xc2028 2-0061: load_firmware called
> [32655.425425] xc2028 2-0061: seek_firmware called, want type=(0), id
> 0000000c00001000.
> [32655.425429] xc2028 2-0061: Selecting best matching firmware (2 bits) for
> type=(0), id 0000000c00001000:
> [32655.425432] xc2028 2-0061: Found firmware for type=(0), id
> 0000000c000000e0.
> [32655.425435] xc2028 2-0061: Loading firmware for type=(0), id
> 0000000c000000e0.
> [32655.440874] xc2028 2-0061: Trying to load scode 0
> [32655.440875] xc2028 2-0061: load_scode called
> [32655.440877] xc2028 2-0061: seek_firmware called, want type=SCODE
> (20000000),
> id 0000000c000000e0.
> [32655.440879] xc2028 2-0061: Found firmware for type=SCODE (20000000), id
> 0000000c04c000f0.
> [32655.440881] xc2028 2-0061: Loading SCODE for type=MONO SCODE HAS_IF_6000
> (60008000), id 0000000c04c000f0.
> [32655.443192] xc2028 2-0061: xc2028_get_reg 0004 called
> [32655.443855] xc2028 2-0061: xc2028_get_reg 0008 called
> [32655.444521] xc2028 2-0061: Device is Xceive 3028 version 1.0, firmware
> version 2.7
> [32655.557141] xc2028 2-0061: divisor= 00 00 64 00 (freq=400.000)
> [32655.580856] cx23885_dev_checkrevision() Hardware revision = 0xb0
> [32655.580862] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18, latency:
> 0,
> mmio: 0xd3000000
> root@medeb:~/v4l/media_build#
>
>
>
> Best regards
>
> Rémi .
>
>
>> Le 20 août 2013 à 16:44, remi <remi@remis.cc> a écrit :
>>
>>
>> Hello
>>
>> FYI
>>
>> I digged into the firmware problem a little,
>>
>>
>> xc3028L-v36.fw  gets loaded by default , and the errors are as you saw
>> earlier
>>
>>
>> forcing the /lib/firmware/xc3028-v27.fw :
>>
>> [ 3569.941404] xc2028 2-0061: Could not load firmware
>> /lib/firmware/xc3028-v27.fw
>>
>>
>> So i searched the original dell/windows driver :
>>
>>
>> I have these files in there :
>>
>> root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070# ls -lR
>> .:
>> total 5468
>> drwxr-xr-x 2 gpunk gpunk    4096 août  20 13:24 Driver_X86
>> -rwxr-xr-x 1 gpunk gpunk 5589827 sept. 12  2007 Setup.exe
>> -rw-r--r-- 1 gpunk gpunk     197 oct.   9  2007 setup.iss
>>
>> ./Driver_X86:
>> total 1448
>> -rw-r--r-- 1 gpunk gpunk 114338 sept.  7  2007 A885VCap_ASUS_DELL_2.inf
>> -rw-r--r-- 1 gpunk gpunk  15850 sept. 11  2007 a885vcap.cat
>> -rw-r--r-- 1 gpunk gpunk 733824 sept.  7  2007 A885VCap.sys
>> -rw-r--r-- 1 gpunk gpunk 147870 avril 20  2007 cpnotify.ax
>> -rw-r--r-- 1 gpunk gpunk 376836 avril 20  2007 cx416enc.rom
>> -rw-r--r-- 1 gpunk gpunk  65536 avril 20  2007 cxtvrate.dll
>> -rw-r--r-- 1 gpunk gpunk  16382 avril 20  2007 merlinC.rom
>> root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070#
>>
>> root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86# grep
>> firmware *
>> Fichier binaire A885VCap.sys concordant
>> root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86#
>>
>>
>>
>> I'll try to find a way to extract "maybe" the right firmware for what this
>> card
>> ,
>>
>> I'd love some help
>>
>> Good news there are ALOT of infos on how to initialize the card in the .INF
>> ,
>> so
>>
>> many problems, i think, are partially solved (I need to implement them )
>>
>> I'll send a copy of theses to anyone who wishes,
>>
>> Or see
>> http://www.dell.com/support/drivers/us/en/04/DriverDetails?driverId=R169070
>> 
>> 
>>  :)
>>
>> Regards
>>
>> Rémi
>>
>>
>>
>>
>>
>>> Le 20 août 2013 à 12:32, remi <remi@remis.cc> a écrit :
>>>
>>>
>>> Hello
>>>
>>> I have just putdown my screwdrivers
>>>
>>>
>>> Yes it was three ICs
>>>
>>>
>>> on the bottom-side , no heatsinks (digital reception, that's why i guess)
>>> ,
>>> is
>>> an AF9013-N1
>>>
>>> on the top-side, with a heatsink : CX23885-13Z , PCIe A/V controler
>>>
>>> on the top-side, with heat-sink + "radio-isolation" (aluminum box)
>>> XC3028ACQ
>>> ,
>>> so the analog reception .
>>>
>>> 
>>> Its all on a PCIe bus, the reason why i baught it ...
>>>
>>>
>>>
>>> To resume :
>>>
>>>
>>> AF9013-N1
>>>
>>> CX23885-13Z
>>>
>>> XC3028ACQ
>>>
>>>
>>> the drivers while scanning
>>>
>>>
>>> gpunk@medeb:~/Bureau$ dmesg |grep i2c
>>> [    2.363784] cx23885[0]: i2c scan: found device @ 0xa0  [eeprom]
>>> [    2.384721] cx23885[0]: i2c scan: found device @ 0xc2
>>> [tuner/mt2131/tda8275/xc5000/xc3028]
>>> [    2.391502] cx23885[0]: i2c scan: found device @ 0x66  [???]
>>> [    2.392339] cx23885[0]: i2c scan: found device @ 0x88  [cx25837]
>>> [    2.392831] cx23885[0]: i2c scan: found device @ 0x98  [flatiron]
>>> [    5.306751] i2c /dev entries driver
>>> gpunk@medeb:~/Bureau$
>>>
>>>
>>>  4.560428] xc2028 2-0061: xc2028_get_reg 0008 called
>>> [    4.560989] xc2028 2-0061: Device is Xceive 0 version 0.0, firmware
>>> version
>>> 0.0
>>> [    4.560990] xc2028 2-0061: Incorrect readback of firmware version.
>>> [ *    4.561184] xc2028 2-0061: Read invalid device hardware information -
>>> tuner
>>> hung?
>>> [ *    4.561386] xc2028 2-0061: 0.0      0.0
>>> [ *    4.674072] xc2028 2-0061: divisor= 00 00 64 00 (freq=400.000)
>>> [    4.697830] cx23885_dev_checkrevision() Hardware revision = 0xb0
>>> [    4.698029] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18,
>>> latency:
>>> 0,
>>> mmio: 0xd3000000
>>>
>>> * --> I bypassed the "goto fail" to start debugging a little bit the
>>> tuner-xc2028.c/ko ... lines 869
>>> ...
>>>
>>>
>>>
>>> The firmware doesnt get all loaded .
>>> gpunk@medeb:~/Bureau$  uname -a
>>> Linux medeb 3.11.0-rc6remi #1 SMP PREEMPT Mon Aug 19 13:30:04 CEST 2013
>>> i686
>>> GNU/Linux
>>> gpunk@medeb:~/Bureau$
>>>
>>>
>>> With yesterday's tarball from linuxtv.org / media-build git .
>>>
>>>
>>>
>>> Best regards
>>>
>>> Rémi
>>>
>>>
>>>
>>>
>>>> Le 19 août 2013 à 17:18, Antti Palosaari <crope@iki.fi> a écrit :
>>>>
>>>>
>>>> On 08/19/2013 05:18 PM, remi wrote:
>>>>> Hello
>>>>>
>>>>> I have this card since months,
>>>>>
>>>>> http://www.avermedia.com/avertv/Product/ProductDetail.aspx?Id=376&SI=true
>>>>>
>>>>> I have finally retested it with the cx23885 driver : card=39
>>>>>
>>>>>
>>>>>
>>>>> If I could do anything to identify : [    2.414734] cx23885[0]: i2c
>>>>> scan:
>>>>> found
>>>>> device @ 0x66  [???]
>>>>>
>>>>> Or "hookup" the xc5000 etc
>>>>>
>>>>> I'll be more than glad .
>>>>>
>>>>
>>>>
>>>>>
>>>>> ps: i opened it up a while ago,i saw an af9013 chip ? dvb-tuner looks
>>>>> like
>>>>> maybe the "device @ 0x66 i2c"
>>>>>
>>>>> I will double check , and re-write-down all the chips , i think 3 .
>>>>
>>>> You have to identify all the chips, for DVB-T there is tuner missing.
>>>>
>>>> USB-interface: cx23885
>>>> DVB-T demodulator: AF9013
>>>> RF-tuner: ?
>>>>
>>>> If there is existing driver for used RF-tuner it comes nice hacking
>>>> project for some newcomer.
>>>>
>>>> It is just tweaking and hacking to find out all settings. AF9013 driver
>>>> also needs likely some changes, currently it is used only for devices
>>>> having AF9015 with integrated AF9013, or AF9015 dual devices having
>>>> AF9015 + external AF9013 providing second tuner.
>>>>
>>>> I have bought quite similar AverMedia A301 ages back as I was looking
>>>> for that AF9013 model, but maybe I have bought just wrong one...
>>>>
>>>>
>>>> regards
>>>> Antti
>>>>
>>>>
>>>> --
>>>> http://palosaari.fi/
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-media"
>>>> in
>>>> the body of a message to majordomo@vger.kernel.org
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>>> the body of a message to majordomo@vger.kernel.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: avermedia A306 / PCIe-minicard (laptop)
       [not found]     ` <52306619.2000808@iki.fi>
@ 2013-09-11 13:10       ` remi
  2013-09-11 13:17         ` Antti Palosaari
  0 siblings, 1 reply; 10+ messages in thread
From: remi @ 2013-09-11 13:10 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: linux-media

I agree, but at least we have video, we can at least use a composite webcam , or
a camcorder / vcr  ...

my self, i used video capture cards this way since the 90's , a lot faster than
USB webcams ...


For the 9013, do you think it's a matter of porting the existing USB code to
PCIe/I2C ?

I see a driver with 9015 that includes it,


(As I said, here we have af9013 as one stanalone CHIP ...)

If you know of a good reading, i'll be more than glad to go thru it , I paused
this project
because I dont want to play Maze ( :) ) in the sources, I do program, even in
assembly,

but didnt read alot about dvb/v4l api architecture ...


I CC the mailing list , if anybody else can orient me also .... :)



Regards



> Le 11 septembre 2013 à 14:46, Antti Palosaari <crope@iki.fi> a écrit :
>
>
> Hello
> I think you didn't get it working as I didn't saw af9013 attached?
>
>
> Antti
>
> On 09/11/2013 03:27 PM, remi wrote:
> > Hi Antti
> >
> >
> > I hope you'r doing ok, I had zero answers for my work ... :p
> >
> >
> > Are you on vacation ? :)
> >
> >
> > Is there anything else I can do to have this card "supported" / my little
> > patch
> > "assimilated"  ? :)
> >
> > I can really go further and have even the complete wiring/ PCB   reverse
> > engeneered if I get some attention :)
> >
> >
> > Or do I have to contact directly the maintainer of the XC3028 or the CX23885
> > ...
> > ?
> >
> >
> > Best regards
> >
> >
> >> Le 19 août 2013 à 17:18, Antti Palosaari <crope@iki.fi> a écrit :
> >>
> >>
> >> On 08/19/2013 05:18 PM, remi wrote:
> >>> Hello
> >>>
> >>> I have this card since months,
> >>>
> >>> http://www.avermedia.com/avertv/Product/ProductDetail.aspx?Id=376&SI=true
> >>>
> >>> I have finally retested it with the cx23885 driver : card=39
> >>>
> >>>
> >>>
> >>> If I could do anything to identify : [    2.414734] cx23885[0]: i2c scan:
> >>> found
> >>> device @ 0x66  [???]
> >>>
> >>> Or "hookup" the xc5000 etc
> >>>
> >>> I'll be more than glad .
> >>>
> >>
> >>
> >>>
> >>> ps: i opened it up a while ago,i saw an af9013 chip ? dvb-tuner looks like
> >>> maybe the "device @ 0x66 i2c"
> >>>
> >>> I will double check , and re-write-down all the chips , i think 3 .
> >>
> >> You have to identify all the chips, for DVB-T there is tuner missing.
> >>
> >> USB-interface: cx23885
> >> DVB-T demodulator: AF9013
> >> RF-tuner: ?
> >>
> >> If there is existing driver for used RF-tuner it comes nice hacking
> >> project for some newcomer.
> >>
> >> It is just tweaking and hacking to find out all settings. AF9013 driver
> >> also needs likely some changes, currently it is used only for devices
> >> having AF9015 with integrated AF9013, or AF9015 dual devices having
> >> AF9015 + external AF9013 providing second tuner.
> >>
> >> I have bought quite similar AverMedia A301 ages back as I was looking
> >> for that AF9013 model, but maybe I have bought just wrong one... :)
> >>
> >>
> >> regards
> >> Antti
> >>
> >>
> >> --
> >> http://palosaari.fi/
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> >> the body of a message to majordomo@vger.kernel.org
> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
> --
> http://palosaari.fi/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: avermedia A306 / PCIe-minicard (laptop)
  2013-09-11 13:10       ` remi
@ 2013-09-11 13:17         ` Antti Palosaari
  0 siblings, 0 replies; 10+ messages in thread
From: Antti Palosaari @ 2013-09-11 13:17 UTC (permalink / raw)
  To: remi; +Cc: linux-media

Hello
I don't know anything about CX23885 analog stuff. My interest in that 
case comes from AF9013 (digitial TV). I think it is Steven Toth 
<stoth@linuxtv.org> who is mostly responsible as he has done that 
driver. Resend your patches to linux-media mailing list and Cc Steven.

regards
Antti


On 09/11/2013 04:10 PM, remi wrote:
> I agree, but at least we have video, we can at least use a composite webcam , or
> a camcorder / vcr  ...
>
> my self, i used video capture cards this way since the 90's , a lot faster than
> USB webcams ...
>
>
> For the 9013, do you think it's a matter of porting the existing USB code to
> PCIe/I2C ?
>
> I see a driver with 9015 that includes it,
>
>
> (As I said, here we have af9013 as one stanalone CHIP ...)
>
> If you know of a good reading, i'll be more than glad to go thru it , I paused
> this project
> because I dont want to play Maze ( :) ) in the sources, I do program, even in
> assembly,
>
> but didnt read alot about dvb/v4l api architecture ...
>
>
> I CC the mailing list , if anybody else can orient me also .... :)
>
>
>
> Regards
>
>
>
>> Le 11 septembre 2013 à 14:46, Antti Palosaari <crope@iki.fi> a écrit :
>>
>>
>> Hello
>> I think you didn't get it working as I didn't saw af9013 attached?
>>
>>
>> Antti
>>
>> On 09/11/2013 03:27 PM, remi wrote:
>>> Hi Antti
>>>
>>>
>>> I hope you'r doing ok, I had zero answers for my work ... :p
>>>
>>>
>>> Are you on vacation ? :)
>>>
>>>
>>> Is there anything else I can do to have this card "supported" / my little
>>> patch
>>> "assimilated"  ? :)
>>>
>>> I can really go further and have even the complete wiring/ PCB   reverse
>>> engeneered if I get some attention :)
>>>
>>>
>>> Or do I have to contact directly the maintainer of the XC3028 or the CX23885
>>> ...
>>> ?
>>>
>>>
>>> Best regards
>>>
>>>
>>>> Le 19 août 2013 à 17:18, Antti Palosaari <crope@iki.fi> a écrit :
>>>>
>>>>
>>>> On 08/19/2013 05:18 PM, remi wrote:
>>>>> Hello
>>>>>
>>>>> I have this card since months,
>>>>>
>>>>> http://www.avermedia.com/avertv/Product/ProductDetail.aspx?Id=376&SI=true
>>>>>
>>>>> I have finally retested it with the cx23885 driver : card=39
>>>>>
>>>>>
>>>>>
>>>>> If I could do anything to identify : [    2.414734] cx23885[0]: i2c scan:
>>>>> found
>>>>> device @ 0x66  [???]
>>>>>
>>>>> Or "hookup" the xc5000 etc
>>>>>
>>>>> I'll be more than glad .
>>>>>
>>>>
>>>>
>>>>>
>>>>> ps: i opened it up a while ago,i saw an af9013 chip ? dvb-tuner looks like
>>>>> maybe the "device @ 0x66 i2c"
>>>>>
>>>>> I will double check , and re-write-down all the chips , i think 3 .
>>>>
>>>> You have to identify all the chips, for DVB-T there is tuner missing.
>>>>
>>>> USB-interface: cx23885
>>>> DVB-T demodulator: AF9013
>>>> RF-tuner: ?
>>>>
>>>> If there is existing driver for used RF-tuner it comes nice hacking
>>>> project for some newcomer.
>>>>
>>>> It is just tweaking and hacking to find out all settings. AF9013 driver
>>>> also needs likely some changes, currently it is used only for devices
>>>> having AF9015 with integrated AF9013, or AF9015 dual devices having
>>>> AF9015 + external AF9013 providing second tuner.
>>>>
>>>> I have bought quite similar AverMedia A301 ages back as I was looking
>>>> for that AF9013 model, but maybe I have bought just wrong one... :)
>>>>
>>>>
>>>> regards
>>>> Antti
>>>>
>>>>
>>>> --
>>>> http://palosaari.fi/
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>>>> the body of a message to majordomo@vger.kernel.org
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>>
>> --
>> http://palosaari.fi/


-- 
http://palosaari.fi/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: avermedia A306 / PCIe-minicard (laptop)
       [not found]       ` <CAJL_dMtRmbfbXYSwgonHyEuYoHPMa2ZQVpmGOC1mV8EN_zk=2g@mail.gmail.com>
@ 2013-09-27  0:41         ` remi
  0 siblings, 0 replies; 10+ messages in thread
From: remi @ 2013-09-27  0:41 UTC (permalink / raw)
  To: Anca Emanuel; +Cc: linux-media

Hello


The firmware got fixed, the module option, needs a file-name only, no path , lol
for once


Well, the driver says Firmware OK ,


I have seen the message of Mauro, he must be right a hundred percent,

'cause we seem to have the initialisations ok, but , for me at lease no data
coming out from the tuner ...

and it has GPIOs , that have to be used accordinly ...

No data meaning no reaction, and no tuning .

Otherwise I think we have video from the tuner ( snow ! )  and composite (
parasites )



I will as soon as i can, take macro photos heads/tails , and draw a schematic


With the datasheets i have (all ;) ) I will find out the GPIOs where they are
going ... :)


will keep you all informed of course .



Best regards



Rémi


###

               cx25840 2-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382
bytes)
[    4.392762] tuner 1-0061: Tuner -1 found with type(s) Radio TV.
[    4.395040] xc2028 1-0061: creating new instance
[    4.395043] xc2028 1-0061: type set to XCeive xc2028/xc3028 tuner
[    4.395214] cx23885[0]: registered device video1 [v4l2]
[    4.395333] cx23885[0]: registered device vbi0
[    4.395519] cx23885[0]: registered ALSA audio device
[    4.395870] xc2028 1-0061: Loading 80 firmware images from xc3028-v27.fw,
type: xc2028 firmware, ver 2.7
[    4.598038] xc2028 1-0061: Loading firmware for type=BASE (1), id
0000000000000000.
[    5.762199] xc2028 1-0061: Loading firmware for type=(0), id
000000000000b700.
[    5.777471] SCODE (20000000), id 000000000000b700:
[    5.777474] xc2028 1-0061: Loading SCODE for type=MONO SCODE HAS_IF_4320
(60008000), id 0000000000008000.
[    5.923492] cx23885_dev_checkrevision() Hardware revision = 0xb0
[    5.923499] cx23885[0]/0: found at 0000:05:00.0, rev: 2, irq: 18, latency: 0,
mmio: 0xd3000000


####



> Le 18 septembre 2013 à 16:44, Anca Emanuel <anca.emanuel@gmail.com> a écrit :
> 
> 
> On Tue, Aug 20, 2013 at 5:44 PM, remi <remi@remis.cc> wrote:
> > Hello
> >
> > FYI
> >
> > I digged into the firmware problem a little,
> >
> >
> > xc3028L-v36.fw  gets loaded by default , and the errors are as you saw earlier
> >
> >
> > forcing the /lib/firmware/xc3028-v27.fw :
> >
> > [ 3569.941404] xc2028 2-0061: Could not load firmware
> > /lib/firmware/xc3028-v27.fw
> >
> >
> > So i searched the original dell/windows driver :
> >
> >
> > I have these files in there :
> >
> > root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070# ls -lR
> > .:
> > total 5468
> > drwxr-xr-x 2 gpunk gpunk    4096 août  20 13:24 Driver_X86
> > -rwxr-xr-x 1 gpunk gpunk 5589827 sept. 12  2007 Setup.exe
> > -rw-r--r-- 1 gpunk gpunk     197 oct.   9  2007 setup.iss
> >
> > ./Driver_X86:
> > total 1448
> > -rw-r--r-- 1 gpunk gpunk 114338 sept.  7  2007 A885VCap_ASUS_DELL_2.inf
> > -rw-r--r-- 1 gpunk gpunk  15850 sept. 11  2007 a885vcap.cat
> > -rw-r--r-- 1 gpunk gpunk 733824 sept.  7  2007 A885VCap.sys
> > -rw-r--r-- 1 gpunk gpunk 147870 avril 20  2007 cpnotify.ax
> > -rw-r--r-- 1 gpunk gpunk 376836 avril 20  2007 cx416enc.rom
> > -rw-r--r-- 1 gpunk gpunk  65536 avril 20  2007 cxtvrate.dll
> > -rw-r--r-- 1 gpunk gpunk  16382 avril 20  2007 merlinC.rom
> 
> I think merlinC.rom is your xc3028-v27.fw
> 
> Compare it to http://www.linuxtv.org/wiki/index.php/Xceive_XC3028/XC2028
> the file extracted there.
> 
> > root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070#
> >
> > root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86# grep
> > firmware *
> > Fichier binaire A885VCap.sys concordant
> > root@medeb:/home/gpunk/.wine/drive_c/dell/drivers/R169070/Driver_X86#
> >
> >
> >
> > I'll try to find a way to extract "maybe" the right firmware for what this card
> > ,
> >
> > I'd love some help :)
> 
> Mauro replied this
> http://www.spinics.net/lists/linux-media/msg25746.html to me in 2010.
> 
> Then I removed the card from my PC.
> 
> Some years later I tried again. This time I found this patch to give
> me some hints: http://www.spinics.net/lists/linux-media/msg43069.html
> After compiling several versions of the patch for the upstream kernel
> (try and hope type) I posted what works for me.
> 
> Tutorial to make kernel patches: http://www.youtube.com/watch?v=LLBrBBImJt4
> Tutorial to set git send-email correctly for git: https://coderwall.com/p/dp-gka
> Tip for first kernel patch: send to your address first to spot any errors.
> Tip for linux-media patchwork to automatically get yours: use labels
> (search for discussion about this).
> 
> I hope this helps.

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-09-27  0:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-19 14:18 avermedia A306 / PCIe-minicard (laptop) remi
2013-08-19 15:18 ` Antti Palosaari
2013-08-20 10:32   ` remi
2013-08-20 14:44     ` remi
2013-08-20 19:31       ` remi
2013-08-21 12:29         ` avermedia A306 / PCIe-minicard (laptop) / CX23885 remi
2013-08-23 10:54           ` remi
     [not found]       ` <CAJL_dMtRmbfbXYSwgonHyEuYoHPMa2ZQVpmGOC1mV8EN_zk=2g@mail.gmail.com>
2013-09-27  0:41         ` avermedia A306 / PCIe-minicard (laptop) remi
     [not found]   ` <679222974.18260.1378902446194.open-xchange@email.1and1.fr>
     [not found]     ` <52306619.2000808@iki.fi>
2013-09-11 13:10       ` remi
2013-09-11 13:17         ` Antti Palosaari

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).