[linux-dvb] (temp. solution) modprobe mantis stalls/hangs/freezes (Twinhan VP-1034 and ivtv)
Michel Verbraak
michel at verbraak.org
Sun Aug 26 17:38:47 CEST 2007
Hans Verkuil schreef:
> On Sunday 26 August 2007 11:18:56 Michel Verbraak wrote:
>
>> Manu Abraham schreef:
>>
>>> Michel Verbraak wrote:
>>>
>>>> I have a Twinhan VP-1034 and I use the the latest hg, today, and
>>>> http://jusst.de/manu/mantis-v4l-dvb.tar.bz2 with kernel 2.6.22.1.
>>>>
>>>> When I do a 'modprobe mantis' my prompt never returns. The machine
>>>> still is working.
>>>>
>
> ....
>
>
>> Aug 26 11:08:32 recorder kernel: ivtv0: Autodetected Hauppauge WinTV
>> PVR-350 Aug 26 11:08:32 recorder kernel: tuner 2-0061: chip found @
>> 0xc2 (ivtv i2c driver #0)
>> Aug 26 11:08:32 recorder kernel: ivtv0 i2c: i2c client attach
>> Aug 26 11:08:32 recorder kernel: mantis_i2c_write:
>> Address=[0x25] <W>[ ]
>> Aug 26 11:08:32 recorder kernel: mantis_i2c_write:
>> Address=[0x25] <W>[ 00 00 ]
>> Aug 26 11:08:32 recorder kernel: mantis_i2c_write:
>> Address=[0x25] <W>[ 00 ]
>> Aug 26 11:08:32 recorder kernel: mantis_i2c_read:
>> Address=[0x25] <R>[ 00 ]
>> Aug 26 11:08:32 recorder kernel: mantis_i2c_write:
>> Address=[0x25] <W>[ 00 01 === Interrupts[0001/0001]= [* I2C DONE *]
>>
>
> Ah, ivtv is probing for the saa7115 device. The saa7115 driver probes
> among others i2c address 0x25, which is also used by the mantis.
>
> And what's changed is that in kernel 2.6.21 the following change was
> made to the saa7115.c driver:
>
> static int saa711x_probe(struct i2c_adapter *adapter)
> {
> if (adapter->class & I2C_CLASS_TV_ANALOG || adapter->class &
> I2C_CLASS_TV_DIGITAL)
> return i2c_probe(adapter, &addr_data, &saa711x_attach);
> return 0;
> }
>
> The TV_DIGITAL check was added, so now it is also suddenly used by the
> mantis. Apparently added to support the Nexus CA.
>
> The only solution at this time is to add the following module option to
> saa7115: ignore=-1,0x25
>
> This should ensure it that it ignores i2c address 0x25. Work is being
> done to make probing unnecessary or at least much smarter, but that
> will be quite a long transition period, most likely. For the time being
> this is probably your only solution.
>
> Regards,
>
> Hans
>
Hans and Manu,
The mantis and ivtv module loaded ok with the following options for
saa7115 in /etc/modprobe.conf:
options saa7115 ignore=-1,0x25,-1,0x24,-1,0x21,-1,0x20
But ivtv is not working anymore and I get the following when I try to
watch live tv with mythtv:
ivtv0: i2c addr 0x21 not found for command 0xc0445624
ivtv0: i2c addr 0x21 not found for command 0xc008561c
ivtv1: Loaded v4l-cx2341x-enc.fw firmware (376836 bytes)
ivtv1: Encoder revision: 0x02060039
cx25840 3-0044: loaded v4l-cx25840.fw firmware (16382 bytes)
ivtv0: i2c addr 0x21 not found for command 0xc0445624
ivtv0: i2c addr 0x21 not found for command 0xc008561c
ivtv0: i2c addr 0x21 not found for command 0xc0445624
ivtv0: i2c addr 0x21 not found for command 0xc008561c
ivtv0: i2c addr 0x21 not found for command 0xc0445624
ivtv0: i2c addr 0x21 not found for command 0xc008561c
ivtv0: i2c addr 0x21 not found for command 0xc0cc5605
ivtv0: i2c addr 0x21 not found for command 0x40045613
ivtv0: i2c addr 0x21 not found for command 0x40045612
ivtv0: i2c addr 0x21 not found for command 0xc0cc5605
ivtv0: i2c addr 0x21 not found for command 0x40045613
ivtv0: i2c addr 0x21 not found for command 0x40045612
ivtv0: i2c addr 0x21 not found for command 0xc0cc5605
ivtv0: i2c addr 0x21 not found for command 0x40045613
ivtv0: i2c addr 0x21 not found for command 0x40045612
ivtv0: i2c addr 0x21 not found for command 0xc0cc5605
ivtv0: i2c addr 0x21 not found for command 0x40045613
ivtv0: i2c addr 0x21 not found for command 0x40045612
ivtv0: i2c addr 0x21 not found for command 0xc0cc5605
ivtv0: i2c addr 0x21 not found for command 0x40045613
ivtv0: i2c addr 0x21 not found for command 0x40045612
Probably because saa7115 is ignoring 0x21.
The vp-1034 is working allright.
What I did to get it working is removing the saa7115 module options.
Change the probe function in saa7115.c to:
static int saa711x_probe(struct i2c_adapter *adapter)
{
#ifdef I2C_CLASS_TV_ANALOG
if (adapter->class & I2C_CLASS_TV_ANALOG)
#else
if (adapter->id == I2C_HW_B_BT848)
#endif
return i2c_probe(adapter, &addr_data, &saa711x_attach);
return 0;
}
Recompiled and both modules load without problems now and al is working
again. I know this is not the right work around for everybody but it
works for me.
Regards,
Michel.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.linuxtv.org/pipermail/linux-dvb/attachments/20070826/0dc2f09a/attachment.htm
More information about the linux-dvb
mailing list