[linux-dvb] LifeView TV Walker - Model LR506

Aapo Tahkola aet at rasterburn.org
Tue Jul 10 02:18:57 CEST 2007


On Thu, 05 Jul 2007 10:57:34 +0200
"Daniel Weigl" <danielweigl at gmx.at> wrote:

> Hello
> Am Thu, 05 Jul 2007 02:03:53 +0200 hat Aapo Tahkola
> <aet at rasterburn.org> geschrieben:
> 
> 
> > My bad, try this:
> > +static int m920x_twalk_i2c_xfer(struct i2c_adapter *adap, struct
> > i2c_msg msg[], int num) +{
> > [...]
> > +		}
> > +		if (i+1 < num && msg[i+1].flags & I2C_M_RD) {
> > +			if ((ret = m920x_read(d->udev,
> > M9206_TWALK_I2C_R,
> > +					msg[i].addr, msg[i].buf[0],
> > msg[i+1].buf, msg[i+1].len)) != 0)
> > +				goto unlock;
> > +			i++;
> > +		} else {
> > +			if ((ret = m920x_write_bulk(d->udev,
> > M9206_TWALK_I2C_W,
> > +					msg[i].addr, 0, msg[i].buf,
> > msg[i].len)) != 0)
> > [...]
> > +}
> >
> 
> Yes - you are right. Yesterday I took some time and investigated the  
> driver architecure more in detail. The first thing I had to change
> was the m920x_i2c_xfer functions, than I changed some details in the
> function you mentioned above.
> 
> Now I am able to connect the tuner and demod frontend. The demod
> frontend checks the TDA10046 by an version-request and gets the
> correct result. So i2c is basically working.
> 
> But something wents wrong with the initialization. After the two
> frontends are attached, it takes about 3sec than the power led of the
> Stick switches off. But there are no dmesgs when this happends.
> Strangly: If I to a lsusb the power led sitches on for ~3seconds and
> goes off again. Also no dmesgs. And the device stays in Warm-State.
> (i.e. no full reset)

Sounds like it's turned on whenever there is traffic.

> 
> But if I try to access it (e.g. with dvbscan), I get error -19 from
> the usb_control_msg function ("no such device").

It might be a good idea to test this with usbmon to ease debugging. I2C
traffic shouldn't crash the entire usb-chip so there might still be
some problem with the i2c-func. 
When does this actually start happening?

Output of "lsusb -v" when in warm-state might also be useful.

> 
> I have here the initialization of the two frontend chips, how it
> happens when the windows driver inits the stick:
>   ---> http://danyserv.selfip.org/dir/LifeView/i2c_log1
> 
> I have annother annyoing problem: If I plug in the stick, and the
> two frontends get attached, its use-count increases (lsmod). But if I
> plug it off again, both frontends does not deattach again... So its
> usecount goes up and up. If I want to change some sourcecode (for
> debugging purposes) I always have to restart, bec. I cannot
> rmmod the frontends.

You can use "-f" option of rmmod if you have CONFIG_MODULE_FORCE_UNLOAD
compiled in.

> 
> How does the deregistering work properly?
> 
> 
> TIA Daniel
> 


-- 
Aapo Tahkola



More information about the linux-dvb mailing list