Bug #6060

PCMCIA Data rate command hangs CI CAM

Added by Enigma131 enig 8 months ago. Updated 7 months ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
Found in version:
all versions
Affected Versions:


I have wrong command for normal CI CAM ( not CI+ compatible cam)

2021-06-02 08:14:58.073 [ TRACE] en50221: dvbca0-0: pcmcia data rate set to 00
2021-06-02 08:14:58.073 [ TRACE] en50221: dvbca0: write
2021-06-02 08:14:58.073 [ TRACE] en50221: 00 01 A0 0A 01 90 02 00 02 9F 80 24 01 00 ...........$..
2021-06-02 08:14:58.577 [ ERROR] en50221: dvbca0-slot0: communication stalled for more than 500ms

Look at this peace of code:

in src/input/mpegts/en50221/en50221_apps.c :

app->cia_info_version = atag & 0x3f ;  // 0x9F8021 / 0x9F8022 / 0x9F8023 with mask 0x3f gives: 0x21/22/23
CICAM_CALL_APP_CB(app, cisw_appinfo, atag & 0x3f, s, type, manufacturer, code);
if (app->cia_info_version >= 3) /* at least CI+ v1.3 / <------------ *is always true ......
if (CICAM_CALL_APP_CB(app, cisw_pcmcia_data_rate, &rate) >= 0)
return en50221_app_pdu_send((en50221_app_t *)app, CICAM_AOT_PCMCIA_DATA_RATE, &rate, 1, 0);

so I had to modify correct value :

app->cia_info_version = atag & 0x0f ;



Updated by Flole Systems 8 months ago

What about the line right after the one you changed:

CICAM_CALL_APP_CB(app, cisw_appinfo, atag & 0x3f, s, type, manufacturer, code);



Updated by Enigma131 enig 8 months ago

I had modified my line in bold and it works.

The problem is for line:
if (app->cia_info_version >= 3) /* at least CI+ v1.3 /

The condition is always true, because app->cia_info_version is: 0x21/22/23

Your line above is unchanged in case of Ci+ compatible Cams.

Perhaps more complex code can be done, but as is, it isen't working for my Cam.


Updated by Flole Systems 7 months ago

Yes I understand that, but the line I quoted is getting the "wrong" value aswell. I am just wondering: Does it need changing aswell or is it supplying the correct/expected value to the function called?


Updated by Enigma131 enig 7 months ago

Hum good question. I havent Ci+ compatible CAM to test ...


Updated by Flole Systems 7 months ago

I just checked and apparently the atag is always the same for each version and only the ressource identifier is changing? Do I see that correctly? That ressource identifier would be 0x41, 0x42, 0x42... and with & 0x3f that would be exactly 0x01, 0x02.....

Also in the 9F 80 24 isn't mentioned?


Updated by Enigma131 enig 7 months ago

Yes, 9F 80 24 isn't mentioned in EN50221 because it isn't a CI command.
Look at your CI+ link, Table A1 page 25, Application information, it is defined only in CI+ clause 11.1
What I suggest:
made the modifiation as i have wrote in post 1, I think it is OK for all cases (Ci and Ci+)
And in case it is not ok whith a CI+ case, you can debug whith a real CI+ compatible case


Updated by Der Depp vom Dienst 7 months ago

Enigma131 enig wrote:

Why useless ?
Problem is still not solved to my case.

I had a lot of issues with CI/CI+CAMS last year. In the end i had to accept that support for EN50221 whithin tvh is incomplete. Unfortunatly a lot of experience is missing.

If your patch works in your setup: good. Don't expect more.


Updated by Flole Systems 7 months ago

I cleaned up all comments that don't belong to this issue. Please stop using the issue tracker as a place for personal discussions. Thanks.

Also available in: Atom PDF