[vdr] CAM auto resetting - feature request??

Marco Skambraks marco at ammec.de
Sat Dec 18 18:33:30 CET 2010


hello Klaus,

I tried the patch below with a knc1 dvb-c, tt c1500 and tt connect ct-3650
I used a alphacrypt light and I also tried the classic module

always the same behavior - if I zap from encrypted channel to encrypted 
channel in some situations vdr says "channel not available"
if I reset the cam manually it works again immediately
I also tried vdr 1.4 with my old tt ff c2300 and I had no problems

maybe its a general vdr 1.7.x cam handling problem

any idea - what I can do or test to identify where the problem is?

thanks

marco



On Mon, 13 Dec 2010, Simon Baxter wrote:

>>>>> Sep  2 08:17:55 freddy vdr: [27707] ERROR: can't write to CI adapter on
>>>>> device 0: Input/output error
>>>>> Sep  2 08:17:55 freddy kernel: dvb_ca adapter 0: DVB CAM detected and
>>>>> initialised successfully
>>>> 
>>>> This looks more like a driver bug to me.
>>> 
>>> Well maybe but unfortunately responds to my mails in linux-dvb /
>>> linux-media mailinglist for that problem.
>>> 
>>> @Klaus:
>>> If that problem happens, a manual reset of the cam under vdr's
>>> menu->settings->ci brings the cam back.
>>> 
>>> What about trying to reset a cam automatically when it's Status is !=
>>> msReady?
>>> 
>>> Like this:
>>> diff --git a/device.c b/device.c
>>> index 681049b..7904de2 100644
>>> --- a/device.c
>>> +++ b/device.c
>>> @@ -239,6 +239,8 @@ cDevice *cDevice::GetDevice(const cChannel *Channel, 
>>> int Priority, bool LiveView
>>>    if (Channel->Ca() >= CA_ENCRYPTED_MIN) {
>>>       for (cCamSlot *CamSlot = CamSlots.First(); CamSlot; CamSlot = 
>>> CamSlots.Next(CamSlot)) {
>>>           SlotPriority[CamSlot->Index()] = MAXPRIORITY + 1; // assumes it 
>>> can't be used
>>> +         if (CamSlot->ModuleStatus() == msPresent)
>>> +            CamSlot->Reset();
>>>           if (CamSlot->ModuleStatus() == msReady) {
>>>              if (CamSlot->ProvidesCa(Channel->Caids())) {
>>>                 if 
>>> (!ChannelCamRelations.CamChecked(Channel->GetChannelID(), 
>>> CamSlot->SlotNumber())) {
>> 
>> Have you tested this?
>> Did it actually work?
>> 
>> Klaus
>
> Will give it a try and report back.... 
>
> _______________________________________________
> vdr mailing list
> vdr at linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>

--------------------------------------------------
AMMEC - Accessible MultiMedia Entertainment Center

http://www.ammec.de
Support Telefon: +49 6421 968255



More information about the vdr mailing list