[linux-dvb] using nxt200x in the flexcop driver

Kirk Lapray kirk.lapray at gmail.com
Sun Jan 15 22:31:52 CET 2006


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> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.linuxtv.org/pipermail/linux-dvb/attachments/20060115/75ff8b31/attachment-0001.htm


More information about the linux-dvb mailing list