Re: (temp. solution) modprobe mantis stalls/hangs/freezes (Twinhan VP-1034 and ivtv)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.
_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux