On Thu, 05 Jul 2007 10:57:34 +0200
"Daniel Weigl" <[EMAIL PROTECTED]> wrote:
> Hello
> Am Thu, 05 Jul 2007 02:03:53 +0200 hat Aapo Tahkola
> <[EMAIL PROTECTED]> 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
_______________________________________________
linux-dvb mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb