On Fri, 2009-02-06 at 22:44 -0500, John Bickel wrote:
> Attached is the DMESG with the debug options in /etc/modprobe.conf
>
> options tuner-simple debug=7
> options tuner debug=7
John,
>From what I can tell, this is a somewhat subtle bug in
linux/drivers/media/video/tuner-core.c:set_type()
The cx18 driver ends up indirectly calling this function 2 times:
1. When the cx18 driver loads the tuner module in
linux/drivers/media/video/cx18/cx18-driver.c:cx18_load_and_init_modules()
upon which the set_type() function doesn't do much except gripe:
[ 21.359036] tuner 1-0061: tuner 0x61: Tuner type absent
2. When the c18 driver initializes the tuner type by calling
cx18_call_i2c_clients(cx, TUNER_SET_TYPE_ADDR, &setup)
in
linux/drivers/media/video/cx18/cx18-driver.c:cx18_probe()
upon which the set_type() function calls
dvb_attach(tuner_simple_attach, ...) to attach the tuner frontend, *just
in case* this is an analog/digital hybrid tuner, sets the tuner to a
default freq, and maybe does some other things. During this process, it
blurts out:
[ 21.360786] tuner 1-0061: Calling set_type_addr for type=50, addr=0xff,
mode=0x04, config=0x32
[ 21.488974] tuner-simple 1-0061: creating new instance
[ 21.488982] tuner-simple 1-0061: type set to 50 (TCL 2002N)
[ 21.488985] tuner-simple 1-0061: tuner 0 atv rf input will be autoselected
[ 21.488988] tuner-simple 1-0061: tuner 0 dtv rf input will be autoselected
[ 21.488993] tuner 1-0061: type set to TCL 2002N
[ 21.488996] tuner 1-0061: tv freq set to 400.00
[ 21.489001] tuner-simple 1-0061: desired params (pal) undefined for tuner 50
[ 21.489004] tuner-simple 1-0061: using tuner params #0 (ntsc)
[ 21.489008] tuner-simple 1-0061: freq = 400.00 (6400), range = 1, config =
0x8e, cb = 0x02
[ 21.489013] tuner-simple 1-0061: Freq= 400.00 MHz, V_IF=38.93 MHz,
Offset=0.00 MHz, div=7023
[ 21.489017] tuner-simple 1-0061: tv 0x1b 0x6f 0x8e 0x02
[ 21.489907] tuner 1-0061: cx18 i2c driver #0-1 tuner I2C addr 0xc2 with type
50 used for 0x0e
Which is all just fine.
3. Now some time about 5 seconds later, I'm *GUESSING* something in
your system unloads the "tuner-simple" module that calls
tuner-core.c:tuner_remove()
tuner-core.c:tuner_detach()
tuner_simple.c:simple_release()
That emits
[ 53.076838] tuner-simple 1-0061: destroying instance
4. I'm also *GUESSING* that shortly after that, something reloads the
tuner-simple module which emits this:
[ 53.136315] tuner 1-0061: Setting mode_mask to 0x0e
[ 53.136330] tuner 1-0061: chip found @ 0xc2 (cx18 i2c driver #0-1)
[ 53.136334] tuner 1-0061: tuner 0x61: Tuner type absent
Just like what the cx18's initial load of the tuner module caused. Here
it is for comparison:
[ 21.359026] tuner 1-0061: Setting mode_mask to 0x0e
[ 21.359032] tuner 1-0061: chip found @ 0xc2 (cx18 i2c driver #0-1)
[ 21.359036] tuner 1-0061: tuner 0x61: Tuner type absent
I suspect you need to hunt down what script or process in your system is
unloading and reloading the tuner related modules. Udev rules
or /etc/rc.d/* scripts may provide insights.
Happy hunting.
Regards,
Andy
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel