[linux-dvb] (temp. solution) modprobe mantis stalls/hangs/freezes (Twinhan VP-1034 and ivtv)

Michael Krufky mkrufky at linuxtv.org
Sun Aug 26 17:52:59 CEST 2007


Michel Verbraak wrote:
> 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

                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Just change the -1 to the i2c bus ID of the mantis device, to prevent saa7115 from probing on the mantis bus.  This way, it would not prevent successful attachment to the ivtv i2c bus, and you wouldn't have to do the hack described below.

Regards,

Mike


> 
> 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.



More information about the linux-dvb mailing list