Re: NXP 18211HDC1 tuner

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

 



On Fri, Mar 14, 2008 at 2:22 PM, Jarryd Beck <jarro.2783@xxxxxxxxx> wrote:
>
> On Fri, Mar 14, 2008 at 2:19 PM, Michael Krufky <mkrufky@xxxxxxxxxxx> wrote:
>  >
>  > Jarryd Beck wrote:
>  >  > On Fri, Mar 14, 2008 at 11:13 AM, Antti Palosaari <crope@xxxxxx> wrote:
>  >  >
>  >  >> Jarryd Beck wrote:
>  >  >>  > I found the problem, the driver I had set .no_reconnect = 1 in
>  >  >>  > af9015_properties, the one in af9015_new didn't. So after I changed
>  >  >>  > that I tried again, it still didn't work. I enabled debugging and tried
>  >  >>  > to tune to a channel and this is what I got in dmesg.
>  >  >>
>  >  >>  I know this no_reconnect problem. But haven't found proper correction
>  >  >>  yet. Looks like sometimes with some hw / sw configuration it reconnects
>  >  >>  USB-bus after firmware download and sometimes not. When there is
>  >  >>  no_reconnect set it is possible that driver loads twice (two adapters)
>  >  >>  and it causes race condition when two drivers are accessing same hw same
>  >  >>  time and it hangs (remote polling causes hangs very soon after plug).
>  >  >>  You can help and test if it is OK set no_reconnect=0 and remove #if 0
>  >  >>  -killed code by changing it to #if 1 in line where is comment "firmware
>  >  >>  is running, reconnect device in the usb bus". This forces AF9015 chipset
>  >  >>  reconnect USB.
>  >  >>
>  >  >>
>  >  >>
>  >  >>  >
>  >  >>  > usb 2-10: new high speed USB device using ehci_hcd and address 27
>  >  >>  > 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 0 (Afatech AF9013 DVB-T)...
>  >  >>  > af9015_tuner_attach:
>  >  >>  > af9015_tda18271_tuner_attach:
>  >  >>  > tda18271 5-00c0: creating new instance
>  >  >>  > TDA18271HD/C1 detected @ 5-00c0
>  >  >>  > tda18271_init_regs: initializing registers for device @ 5-00c0
>  >  >>  > input: IR-receiver inside an USB DVB receiver as /class/input/input39
>  >  >>  > 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/input40
>  >  >>  > input: USB HID v1.01 Keyboard [Leadtek WinFast DTV Dongle Gold] on
>  >  >>  > usb-0000:00:02.1-10
>  >  >>  > tda18271_set_standby_mode: sm = 0, sm_lt = 0, sm_xt = 0
>  >  >>  > tda18271_init_regs: initializing registers for device @ 5-00c0
>  >  >>  > tda18271_tune: freq = 219500000, ifc = 3800000, bw = 7000000, std = 0x1d
>  >  >>  > tda18271_set_standby_mode: sm = 0, sm_lt = 0, sm_xt = 0
>  >  >>  > tda18271_init_regs: initializing registers for device @ 5-00c0
>  >  >>  > tda18271_set_standby_mode: sm = 1, sm_lt = 0, sm_xt = 0
>  >  >>
>  >  >>  There is no debug logs from af9013 demodulator module. You can enable
>  >  >>  logs by modprobe af9013 debug=1. Remember rmmod modules first from
>  >  >>  memory rmmod dvb_usb_af9015 af9013 mt2060 dvb_usb dvb_core
>  >  >>
>  >  >>  af9013 debug should log rather much useful data when tuning to channel.
>  >  >>  Did you try change GPIO3 as mentioned earlier?
>  >  >>
>  >  >>
>  >  >>
>  >  >>  regards
>  >  >>  Antti
>  >  >>  --
>  >  >>  http://palosaari.fi/
>  >  >>
>  >  >>
>  >  >
>  >  > I tried what you said, it works with no_reconnect = 1 and #if 0, and it also
>  >  > works with no_reconnect = 0 and #if 1, but no_reconnect = 0 and #if 0
>  >  > doesn't work. It has a fit if I use no_reconnect = 1 and #if 1. It
>  >  > gives me a lot
>  >  > of this:
>  >  > Mar 14 13:42:17 localhost kernel: af9015: af9015_rw_udev: receiving failed: -22
>  >  > Mar 14 13:42:17 localhost kernel: dvb-usb: error while querying for an
>  >  > remote control event.
>  >  >
>  >  > I also tried changing the rf_spec_inv and gpio3 but that didn't seem to
>  >  > do anything. It seems like it's the tuner, from dmesg the rest seems to be
>  >  > working fine.
>  >  >
>  >  > 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
>  >  > 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
>  >  > 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
>  >  > 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
>  >  > 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
>  >  > 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
>  >  > 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
>  >  > 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.
>
>  Jarryd.
>

Somewhere along the way demod_address in a struct is set to AF9015_I2C_DEMOD
which is 0x38. Is that what you wanted?

Jarryd.

_______________________________________________
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