[linux-dvb] KNC1 DVB-S unter openSUSE 10.0

Oliver Endriss o.endriss at gmx.de
Fri Nov 4 13:13:43 CET 2005


Chris Dietrich wrote:
> Oliver Endriss wrote:
> > Chris Dietrich wrote:
> >>Please, anyone got an idea what else I could try to get that card to work?
> > 
> > [I'm not sure whether this card has ever worked reliably with the driver.]
> > Someone has to find out why stv0299_attach() fails for this card.
> >
> > Add some printk's to stv0299_attach(stv0299.c) and find out what
> > happens. Sorry, I don't own this type of card.
> 
> Oliver, thanks for your hint to check the attach-function. I did so and
> found out, that an i2c_transfer statement in writeregI fails:
> 
> Nov  3 09:56:25 linux kernel: stv0299: stv0299_writeregI: writereg error
> (reg == 0x02, val == 0x34, ret == -5)
> Nov  3 09:56:31 linux kernel: stv0299: stv0299_readreg: readreg error
> (reg == 0x00, ret == -5)
> Nov  3 09:56:31 linux kernel: stv0299: readreg(state) returns:  0 =(dec)
> 0 (the return value is not important, writeregI failed before)
> Nov  3 09:56:31 linux kernel: stv0299: DEBUG: id != 0xa1 && id != 0x80,
> instead  id= 0
> Nov  3 09:56:31 linux kernel: budget-av: A frontend driver was not found
> for device 1131/7146 subsystem 1131/4f56
> 
> What does the return value of -5 (which seems to be returned by the
> i2c_transfer AFAIK) mean?

The stv0299 did not respond, i.e. was not found on the I2C bus.

> I also found out, that if I load the kernel 2.4 stv0299 driver (and
> budget-av etc...) and use the card, then warm reboot the machine into a
> 2.6 kernel, no error appears and the card works fine!
> So, this sounds like an initialization error, right?

Yes.

> Is it possible that 
> timing is involved, I also tried to increment the msleeps in stv0299 but
> so far with no success (that was before I found out that the
> i2c_transfer failed).
> 
> What else can I do? Should I try to just comment out the statement in
> the initialization that causes the failing writeregI???

Try the following:
(a) enable master reset in saa7146_core.c

If it does not help:
(b) Add some delay at the beginning of stv0299_attach.
    Something like msleep(1000) should do for testing.

If it does't help either you should compare the initialization code of
the old driver with the new one. Maybe the frontend power is not
turned-on for this card. This is usually done by switching some GPIO
line. See frontend_init() in budget-av.c.

Oliver

-- 
--------------------------------------------------------
VDR Remote Plugin available at
http://www.escape-edv.de/endriss/vdr/
--------------------------------------------------------



More information about the linux-dvb mailing list