[linux-dvb] en50221_tl_poll: CAWrite failed

Julian Scheel julian at jusst.de
Wed May 2 12:06:47 CEST 2007


Am Mittwoch 02 Mai 2007 12:01 schrieb Simon Baxter:
> > > > [root at media1 gnutv]# ./gnutv -cammenu
> > > > en50221_tl_poll: CAWrite failed
> > > > en50221_stdcam_llci_poll: Error reported by stack:-2
> > >
> > > It is indeed not flaky hardware as i wrote earlier. -2 is timeout. It
> > > is due to a bug in debiread/write
> >
> > -2 is not timeout but read/write error. What CAM are you using? - And is
>
> this
>
> > running on a SMP (Core Duo, etc) system?
> > With some CAMs I ran into trouble with read/write errors, but that was on
> > initialising. It helped to simply outcomment the checks for STATUSREG_RE
>
> in
>
> > dvb_ca_en50221.c. You might try that, though it will also break correct
> > error-detection.
> >
> > -Julian
>
> I'm using an Irdeto 2 CAM.  Have installed the same v4l-dvb drivers on 2
> different machines with the same results.
> One is an Intel P2 350, the other a P4 Dell GX260.
>
> Which lines should I comment in dvb_ca_en50221.c   ???
>
> [root at media2 v4l-dvb]# find . | grep dvb_ca_en50221.c
> ./linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
> ./v4l/dvb_ca_en50221.c

In dvb_ca_en50221_read_data outcomment this block:

	if (status & STATUSREG_RE) {
                ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_LINKINIT;
                status = -EIO;
                goto exit;
        }

and this one in dvb_ca_en50221_write_data:

	if (status & (STATUSREG_DA | STATUSREG_RE)) {
                status = -EAGAIN;
                goto exitnowrite;
        }

you might also try to outcomment this, also in dvb_ca_en50221_write_data:

	if (status & STATUSREG_WE) {
                ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_LINKINIT;
                status = -EIO;
                goto exit;
        }

Pleas keep in mind that this just disables some error checks. Actually for me 
it solved some troubles.

Regards,
Julian



More information about the linux-dvb mailing list