Mailing List archive

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

[linux-dvb] Re: first version of budget-ci implementation



> Apr  6 13:51:07 htpc kernel: dvb_ca_en50221_link_init
> Apr  6 13:51:07 htpc kernel: dvb_ca_en50221_wait_if_status
> Apr  6 13:51:07 htpc kernel: dvb_ca_en50221_wait_if_status succeeded
> timeout:0
> Apr  6 13:51:07 htpc kernel: dvb_ca_en50221_wait_if_status
> Apr  6 13:51:07 htpc kernel: dvb_ca_en50221_wait_if_status failed
> timeout:101
> Apr  6 13:51:07 htpc kernel: dvb_ca: DVB CAM link initialisation failed :(
>
>
> It looks like it's communicating with the CAM, doesn't it? But it
> doesn't work quite yet. Let me know if you want me to try something else.

Hmm, on further thought, it might be objecting to the IRQ enable bits I'm 
using... they're "sort of" standard, but defined in a later document than the 
original standard. Perhaps some CAMs don't like them.

The attached patch will disable them just during the link_init procedure.
Index: linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c,v
retrieving revision 1.2
diff -r1.2 dvb_ca_en50221.c
325c325
<         if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN | CMDREG_SR)) != 0) return ret;
---
>         if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, /* IRQEN | */ CMDREG_SR)) != 0) return ret;
328c328
<         if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN)) != 0) return ret;
---
>         if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, /*IRQEN*/ 0 )) != 0) return ret;
339c339
<         if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN | CMDREG_SW)) != 0) return ret;
---
>         if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, /* IRQEN | */ CMDREG_SW)) != 0) return ret;
342c342
<         if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN)) != 0) return ret;
---
>         if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, /*IRQEN*/ 0)) != 0) return ret;

Home | Main Index | Thread Index