Mailing List archive

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

[vdr] Re: CAM Support.



> Kenneth Aafløy wrote:
> 
> Hi,
> 
> I've tested vdr, and was stumped by it complaining about my CAM, so I had a look see at the code, and :
> 
> Caps.slot_type is a bitmask, == should be &
> 
> line 3131 ci.c vdr-1.2.1:

I assume this should have been line 1313, right?

>      if (ioctl(fd_ca, CA_GET_CAP, &Caps) == 0) {
>         int NumSlots = Caps.slot_num;
>         if (NumSlots > 0) {
>            //XXX dsyslog("CAM: found %d CAM slots", NumSlots); // TODO let's do this only once we can be sure that there _really_ is a CAM adapter!
>            if (Caps.slot_type == CA_CI_LINK)
>               return new cCiHandler(fd_ca, NumSlots);
>            else
>               isyslog("CAM doesn't support link layer interface");
>            }
>         else
>            esyslog("ERROR: no CAM slots found");
>         }

So does this mean that if you change the line

if (Caps.slot_type == CA_CI_LINK)

into

if (Caps.slot_type & CA_CI_LINK)

this works for you?
From the description of 'slot_type'

unsigned int slot_type;    /* OR of all supported types */

you are certainly right, but when I look at the places in the DVB driver where
'slot_type' is set:

driver/av7110/av7110.c: cap.slot_type= FW_CI_LL_SUPPORT(av7110->arm_app) ? CA_CI_LINK : CA_CI;
driver/av7110/av7110.c: cap.slot_type=CA_CI;

it doesn't look like that variable ever gets any value other that '1' (CA_CI) or
'2' (CA_CI_LINK). Therefore I wonder why this would make any change for you.
Or are you using a different/modified driver that the DVB driver from the linuxtv.org CVS?

Klaus


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index