Re: NXP 18211HDC1 tuner

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jarryd Beck wrote:
> On Fri, Mar 14, 2008 at 2:22 PM, Jarryd Beck <jarro.2783@xxxxxxxxx> wrote:
>   
>>  >  > Here is dmesg with debug enabled on af9013 too:
>>  >  >
>>  >  > usb 2-10: new high speed USB device using ehci_hcd and address 7
>>  >  > usb 2-10: configuration #1 chosen from 1 choice
>>  >  > af9015_usb_probe:
>>  >  > af9015_identify_state: reply:01
>>  >  > dvb-usb: found a 'Afatech AF9015 DVB-T USB2.0 stick' in cold state,
>>  >  > will try to load a firmware
>>  >  > dvb-usb: downloading firmware from file 'dvb-usb-af9015.fw'
>>  >  > af9015_download_firmware:
>>  >  > dvb-usb: found a 'Afatech AF9015 DVB-T USB2.0 stick' in warm state.
>>  >  > dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
>>  >  > DVB: registering new adapter (Afatech AF9015 DVB-T USB2.0 stick)
>>  >  > af9015_eeprom_dump:
>>  >  > 00: 31 c2 bb 0b 00 00 00 00 13 04 29 60 00 02 01 02
>>  >  > 10: 00 80 00 fa fa 10 40 ef 01 30 31 30 31 30 32 30
>>  >  > 20: 35 30 35 30 30 30 30 31 ff ff ff ff ff ff ff ff
>>  >  > 30: 00 00 3a 01 00 08 02 00 cc 10 00 00 9c ff ff ff
>>  >  > 40: ff ff ff ff ff 08 02 00 1d 8d c4 04 82 ff ff ff
>>  >  > 50: ff ff ff ff ff 26 00 00 04 03 09 04 10 03 4c 00
>>  >  > 60: 65 00 61 00 64 00 74 00 65 00 6b 00 30 03 57 00
>>  >  > 70: 69 00 6e 00 46 00 61 00 73 00 74 00 20 00 44 00
>>  >  > 80: 54 00 56 00 20 00 44 00 6f 00 6e 00 67 00 6c 00
>>  >  > 90: 65 00 20 00 47 00 6f 00 6c 00 64 00 20 03 30 00
>>  >  > a0: 31 00 30 00 31 00 30 00 31 00 30 00 31 00 30 00
>>  >  > b0: 36 00 30 00 30 00 30 00 30 00 31 00 00 ff ff ff
>>  >  > c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>>  >  > d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>>  >  > e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>>  >  > f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>>  >  > af9015_read_config: xtal:2 set adc_clock:28000
>>  >  > af9015_read_config: tuner id1:156
>>  >  > af9015_read_config: spectral inversion:0
>>  >  > af9015_set_gpios:
>>  >  > af9013: firmware version:4.95.0
>>  >  > DVB: registering frontend 2 (Afatech AF9013 DVB-T)...
>>  >  > af9015_tuner_attach:
>>  >  > af9015_tda18271_tuner_attach:
>>  >  > tda18271 5-00c0: creating new instance
>>  >  > af9013_i2c_gate_ctrl: enable:1
>>  >  > af9013_i2c_gate_ctrl: enable:0
>>  >  > TDA18271HD/C1 detected @ 5-00c0
>>  >  > tda18271_init_regs: initializing registers for device @ 5-00c0
>>  >  > af9013_i2c_gate_ctrl: enable:1
>>  >  > af9013_i2c_gate_ctrl: enable:0
>>  >  > af9013_i2c_gate_ctrl: enable:1
>>  >  > af9013_i2c_gate_ctrl: enable:0
>> [...]
>>  >  > af9013_i2c_gate_ctrl: enable:1
>>  >  > af9013_i2c_gate_ctrl: enable:0
>>  >  > input: IR-receiver inside an USB DVB receiver as /class/input/input9
>>  >  > dvb-usb: schedule remote query interval to 200 msecs.
>>  >  > dvb-usb: Afatech AF9015 DVB-T USB2.0 stick successfully initialized
>>  >  > and connected.
>>  >  > af9015_init:
>>  >  > af9015_download_ir_table:
>>  >  > input: Leadtek WinFast DTV Dongle Gold as /class/input/input10
>>  >  > input: USB HID v1.01 Keyboard [Leadtek WinFast DTV Dongle Gold] on
>>  >  > usb-0000:00:02.1-10
>>  >  >
>>  >  > and when I try to tune it I get this:
>>  >  >
>>  >  > af9013_init
>>  >  > af9013_reset
>>  >  > af9013_power_ctrl: onoff:1
>>  >  > af9013_set_adc_ctrl: adc_clock:28000
>>  >  > af913_div: a:28000000 b:1000000 x:19
>>  >  > af913_div: a:0 b:1000000 x:19 r:14680064 r:e00000
>>  >  > af9013_init: load ofsm settings
>>  >  > af9013_init: load tuner specific settings
>>  >  > af9013_init: setting ts mode
>>  >  > af9013_lock_led: onoff:1
>>  >  > tda18271_set_standby_mode: sm = 0, sm_lt = 0, sm_xt = 0
>>  >  > af9013_i2c_gate_ctrl: enable:1
>>  >  > af9013_i2c_gate_ctrl: enable:0
>>  >  > af9013_i2c_gate_ctrl: enable:1
>>  >  > af9013_i2c_gate_ctrl: enable:0
>>  >  > tda18271_init_regs: initializing registers for device @ 5-00c0
>>  >  > af9013_i2c_gate_ctrl: enable:1
>>  >  > af9013_i2c_gate_ctrl: enable:0
>>  >  >
>>  >  > the last two lines are repeated about another 30 times and it
>>  >  > just sits there doing nothing. Also for some reason it makes
>>  >  > my keyboard really slow to respond just while it's tuning.
>>  >  >
>>  >  > Jarryd.
>>  >  >
>>  >  The tda18271c1 driver does many i2c transactions during a tune request.
>>  >  This involves image rejection filter calibration, if it hasnt already
>>  >  been done at least once, and rf tracking filter calibration on every tune.
>>  >
>>  >  This all happens very quickly on the hardware that I've tested ( a
>>  >  cx23887-based pcie card and a cypress fx2-based usb device).  I've also
>>  >  heard good reports on saa713x-based pci cards.  Is the i2c slow in the
>>  >  af9013 driver?
>>  >
>>  >  The tuner driver is programmed to use 7mhz dvbt with IF centered at 3.8
>>  >  mhz -- is the demod set to the same?
>>  >
>>  >  -Mike
>>  >
>>
>>  How do I find out about the demod? Is the speed of af9013 a question for
>>  me because I have no idea.
>>     
> Somewhere along the way demod_address in a struct is set to AF9015_I2C_DEMOD
> which is 0x38. Is that what you wanted?
>   
I was hoping that Antti might know the answers those questions.

Anyhow, there is something else related to the tuner that we can try.  In the snoop log, I see that no i2c transactions are longer than 16 bytes.  The linux driver writes 39 registers at once during its initialization, but the windows driver in your snoop log breaks that into three write transactions.

Please try this patch:

[PATCH] tda18271: break 39-byte register initialization into three i2c transactions

...for testing.

diff -r d1654ab5f056 linux/drivers/media/dvb/frontends/tda18271-common.c
--- a/linux/drivers/media/dvb/frontends/tda18271-common.c	Mon Mar 10 11:27:26 2008 -0300
+++ b/linux/drivers/media/dvb/frontends/tda18271-common.c	Fri Mar 14 00:13:10 2008 -0400
@@ -311,7 +311,13 @@ int tda18271_init_regs(struct dvb_fronte
 	regs[R_EB22] = 0x48;
 	regs[R_EB23] = 0xb0;
 
+#if 0
 	tda18271_write_regs(fe, 0x00, TDA18271_NUM_REGS);
+#else
+	tda18271_write_regs(fe, 0x00, 0x10);
+	tda18271_write_regs(fe, 0x10, 0x10);
+	tda18271_write_regs(fe, 0x20, 0x07);
+#endif
 
 	/* setup agc1 gain */
 	regs[R_EB17] = 0x00;


_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux