[linux-dvb] using nxt200x in the flexcop driver
Bryan Scott
sirbryan at gmail.com
Mon Jan 16 17:01:12 CET 2006
I'm seeing a similar thing now on my HDTV Wonder when I updated cvs the
other day... Ok, not the same code, but a kernel oops nonetheless. The
first change was installing my Twinhan/Fujiplus VP/FD-3250 alongside it.
I noticed this problem when loading all the modules from development
code Manu had checked out for the Twinhan dst code. So I tried to go
back to my working CVS version, but like a dummy did an update on the 10th.
Here's the oops output from my machine:
------------------------------
cx2388x dvb driver version 0.0.5 loaded
CORE cx88[0]: subsystem: 1002:a101, board: ATI HDTV Wonder
[card=34,autodetected]
TV tuner 68 at 0x1fe, Radio tuner -1 at 0x1fe
tuner 1-0061: chip found @ 0xc2 (cx88[0])
tuner 1-0061: type set to 68 (Philips TUV1236D ATSC/NTSC dual in)
cx88[0]/2: found at 0000:00:09.2, rev: 5, irq: 17, latency: 32, mmio:
0xe4000000
cx88[0]/2: cx2388x based dvb card
nxt200x: NXT2004 Detected
DVB: registering new adapter (cx88[0]).
DVB: registering frontend 1 (Nextwave NXT200X VSB/QAM frontend)...
nxt2004: Waiting for firmware upload (dvb-fe-nxt2004.fw)...
nxt2004: Waiting for firmware upload(2)...
nxt2004: Firmware upload complete
-------------
So far, so good. Then I run azap...
-----------------
cx88[0]/2: queue is empty - first active
cx88[0]/2: cx8802_start_dma w: 0, h: 0, f: 2
cx88[0]/2: setting the interrupt mask
cx88[0]/2: [c78d97e0/0] cx8802_buf_queue - first active
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
00000000
*pde = 18ad6067
*pte = 00000000
Oops: 0000 [#1]
PREEMPT
Modules linked in: cx88_dvb cx8802 cx88xx cx88_vp3054_i2c or51132
video_buf_dvb nxt200x cx24123 cx22702 lirc_atiusb lirc_dev snd_pcm_oss
snd_mixer_oss dvb_bt8xx dst_ca dst nxt6000 mt352 dvb_pll sp887x bt878
tuner bttv video_buf compat_ioctl32 i2c_algo_bit v4l2_common btcx_risc
ir_common tveeprom videodev dvb_core cx24110 or51211 lgdt330x i2c_core
snd_via82xx gameport snd_ac97_codec snd_ac97_bus snd_pcm snd_timer
snd_page_alloc snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore
nfsd exportfs lockd autofs4 rfcomm l2cap bluetooth sunrpc via_rhine mii
sg binfmt_misc dm_mod uhci_hcd ehci_hcd nvidia ipv6 tsdev ext3 jbd
aic7xxx scsi_transport_spi sd_mod scsi_mod
CPU: 0
EIP: 0060:[<00000000>] Tainted: P VLI
EFLAGS: 00010246 (2.6.14.3)
EIP is at stext+0x3feffde0/0x20
eax: d9da4108 ebx: 000002ee ecx: 00000000 edx: d9da4004
esi: d9da4108 edi: 00000000 ebp: ce7bd800 esp: c8e4df68
ds: 007b es: 007b ss: 0068
Process kdvb-fe-1 (pid: 28849, threadinfo=c8e4c000 task=d2a8aa90)
Stack: e0c3793d c8e4dfc8 0000000f e0c3b88c 00000001 00000000 c8e4c000
c8e4dfbc
c8e4dfbc c034c499 00000007 00000001 d0b06e60 c8e4dfb0 c011b6f2
dcecd700
d2a8aa90 de4dbdc0 c360deb4 c010303e d8170090 e0c37780 00000000
d9da4108
Call Trace:
[<e0c3793d>] dvb_frontend_thread+0x1bd/0x2c0 [dvb_core]
[<c011b6f2>] schedule_tail+0x32/0xb0
[<c010303e>] ret_from_fork+0x6/0x14
[<e0c37780>] dvb_frontend_thread+0x0/0x2c0 [dvb_core]
[<e0c37780>] dvb_frontend_thread+0x0/0x2c0 [dvb_core]
[<c0101379>] kernel_thread_helper+0x5/0xc
Code: Bad EIP value.
---------------------------
Could this be related, or a different problem, a symptom of mixing the
two DVB-ATSC cards?
-- Bryan
Kirk Lapray wrote:
> Without having a NXT2002 card to try I am not sure how much I will be
> able to help.
>
> Just by looking at what is going on here it looks like the tuner might
> not be changing. The way I wrote the nxt200x module was by taking
> taking the nxt2002 and nxt2004 modules and combining them into one. A
> lot of pieces of code were the same and were easily merged. Other
> places were completely different and a simple case function calls the
> appropriate code. A good place to start would be by looking at the
> nxt2002 and nxt200x code and comparing them for the NXT2002 chip. Most
> likely there is something that I just overlooked when I put in the
> nxt2002 code. You could also try turning on debug in the nxt200x and
> dvb-pll modules and see if that could give us some more information on
> exactly what is going on.
>
> Kirk
>
> On 1/15/06, *Michael Krufky* <mkrufky at gmail.com
> <mailto:mkrufky at gmail.com>> wrote:
>
> Michael Krufky wrote:
>
> > kernel BUG at /home/mk/v4l-dvb/v4l/dvb-pll.c:389!
> > invalid operand: 0000 [#1]
> > SMP
> > Modules linked in: b2c2_flexcop_pci b2c2_flexcop mt352 bcm3510
> stv0299
> > dvb_core nxt200x firmware_class dvb_pll stv0297_cs2 lgdt330x mt312
> > i2c_core sbp2 usb_storage snd_atiixp snd_atiixp_modem ehci_hcd
> > snd_ac97_codec snd_ac97_bus ohci_hcd ohci1394 ieee1394 usbcore
> snd_pcm
> > snd_timer snd snd_page_alloc ati_agp agpgart
> > CPU: 0
> > EIP: 0060:[<f8d2c1b5>] Not tainted VLI
> > EFLAGS: 00010246 (2.6.14)
> > EIP is at dvb_pll_configure+0x151/0x160 [dvb_pll]
> > eax: 00000000 ebx: 00000004 ecx: 00000004 edx: f8d2e050
> > esi: d7ba3f24 edi: 2b369f40 ebp: f8d2e020 esp: d7ba3ee0
> > ds: 007b es: 007b ss: 0068
> > Process kdvb-fe-0 (pid: 5988, threadinfo=d7ba2000 task=f6cc5a30)
> > Stack: 31126b1a 0000000d f8d33621 d7730a00 00000031 d7ba3eff
> 00000001
> > 40aa27cd
> > d7730a00 d7730b04 d7ba3f24 f72d8404 f8d34039 f8d2e020 d7ba3f24
> > 2b369f40
> > 00000000 00000286 f72d8400 00000001 00000000 2b369f40 f8d71515
> > d7730b04
> > Call Trace:
> > [<f8d33621>] nxt200x_microcontroller_stop+0x92/0xcf [nxt200x]
> > [<f8d34039>] nxt200x_setup_frontend_parameters+0x4f/0x615 [nxt200x]
> > [<f8d71515>] dvb_frontend_swzigzag_autotune+0x124/0x245 [dvb_core]
> > [<c0125e6f>] del_timer_sync+0x21/0x2a
> > [<f8d717c0>] dvb_frontend_swzigzag+0x18a/0x285 [dvb_core]
> > [<f8d71bf6>] dvb_frontend_thread+0x29c/0x2c1 [dvb_core]
> > [<c0131543>] autoremove_wake_function+0x0/0x4b
> > [<f8d7195a>] dvb_frontend_thread+0x0/0x2c1 [dvb_core]
> > [<c0101171>] kernel_thread_helper+0x5/0xb
> > Code: 0b ff ff ff 3b 7d 04 73 07 b8 ea ff ff ff eb 8e 3b 7d 08 8d 76
> > 00 0f 86 d9 fe ff ff b8 ea ff ff ff 90 8d 74 26 00 e9 73 ff ff ff
> <0f>
> > 0b 85 01 38 c5 d2 f8 e9 df fe ff ff 90 90 54 68 6f 6d 73 6f
>
>
>
>
> Well, I just noticed the following in dvb-pll.c and made the
> following fix:
>
> struct dvb_pll_desc dvb_pll_tbmv30111in = {
> .name = "Samsung TBMV30111IN",
> .min = 54000000,
> .max = 860000000,
> - .count = 4,
> + .count = 6,
> .entries = {
> { 172000000, 44000000, 166666, 0xb4, 0x01 },
> { 214000000, 44000000, 166666, 0xb4, 0x02 },
> { 467000000, 44000000, 166666, 0xbc, 0x02 },
> { 721000000, 44000000, 166666, 0xbc, 0x08 },
> { 841000000, 44000000, 166666, 0xf4, 0x08 },
> { 999999999, 44000000, 166666, 0xfc, 0x02 },
> }
> };
>
> .count needs to be changed to 6 ! (that may explain the oops) I will
> take care of that, (fixed in cvs as of now) then test again...
>
> [time goes by.... ]
>
> still azap is getting status 0x00, and atscscan finds nothing, but this
> time it doesnt OOPS:
>
> mk at aftermath:~$ ./azap WPIX_Digital -r using
> '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
> tuning to 587000000 Hz
> video pid 0x0031, audio pid 0x0034
> status 00 | signal 7c60 | snr 5a22 | ber 00000000 | unc 00000000 |
> status 00 | signal dc20 | snr 7b60 | ber 00000000 | unc 00000000 |
> status 00 | signal da70 | snr 80d6 | ber 00000000 | unc 00000000 |
> status 00 | signal 7190 | snr 595e | ber 00000000 | unc 00000000 |
> status 00 | signal dd80 | snr 7aa4 | ber 00000000 | unc 00000000 |
> status 00 | signal ddd0 | snr 7dc6 | ber 00000000 | unc 00000000 |
> status 00 | signal 7390 | snr 59b0 | ber 00000000 | unc 00000000 |
>
>
> b2c2-flexcop: B2C2 FlexcopII/II(b)/III digital TV receiver chip loaded
> successfully
> flexcop-pci: will use the HW PID filter.
> flexcop-pci: card revision 2
> ACPI: PCI Interrupt 0000:02:07.0[A] -> GSI 19 (level, low) -> IRQ 19
> DVB: registering new adapter (FlexCop Digital TV device).
> b2c2-flexcop: MAC address = 00:d0:d7:02:54:5f
> b2c2-flexcop: i2c master_xfer failed
> b2c2-flexcop: i2c master_xfer failed
> b2c2-flexcop: i2c master_xfer failed
> mt352_read_register: readreg error (reg=127, ret==-121)
> nxt200x: NXT2002 Detected
> b2c2-flexcop: found the nxt2002 at i2c address: 0x0a
> DVB: registering frontend 0 (Nextwave NXT200X VSB/QAM frontend)...
> b2c2-flexcop: initialization of 'Air2PC/AirStar 2 ATSC 2nd generation'
> at the 'PCI' bus controlled by a 'FlexCopIIb' complete
> nxt2002: Waiting for firmware upload (dvb-fe-nxt2002.fw)...
> nxt2002: Waiting for firmware upload(2)...
> nxt2002: Firmware upload complete
>
>
>
> -Michael
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> linux-dvb mailing list
> linux-dvb at linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
More information about the linux-dvb
mailing list