Mailing List archive

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

[linux-dvb] Possible changes to dvb ca interface



Hi, heres a patch with the changes I'm proposing. As the v4 API should sort 
most of these things out, and I don't want to break the existing API, the 
changes are as minimal as possible.

As I can see the naming of the CA_CI_LINK value is going to be contentious, I 
suggest just changing it to CA_EN50221, and deprecating the old name (but 
keeping the values the same to preserve APIs). I find telling userspace that 
the driver implements the link level protocol when it's actually expecting 
transport level packets very confusing, and a wee bit inconsistent.

As for CA_CI and CA_SC, nothing implements them (any more). And its pointless 
having CA_CI_PHYS because I've just spent several days implementing a generic 
layer on top of it!

The other change is to ca_msg, so I can pass the connection_id in without 
doing anything hacky with the msg buffer.


Index: ca.h
===================================================================
RCS file: /cvs/linuxtv/dvb-kernel/linux/include/linux/dvb/ca.h,v
retrieving revision 1.3
diff -a -u -b -r1.3 ca.h
--- ca.h	7 Mar 2003 11:40:08 -0000	1.3
+++ ca.h	29 Jan 2004 20:24:09 -0000
@@ -30,11 +30,14 @@
         int num;               /* slot number */
 
         int type;              /* CA interface this slot supports */
-#define CA_CI            1     /* CI high level interface */
-#define CA_CI_LINK       2     /* CI link layer level interface */
-#define CA_CI_PHYS       4     /* CI physical layer level interface */
-#define CA_DESCR         8     /* built-in descrambler */
-#define CA_SC          128     /* simple smart card interface */
+#define CA_EN50221       2     /* EN50221 transport layer */
+#define CA_DESCR         8     /* Built-in descrambler */
+#define CA_ALPHACAM      16    /* Alphacam proprietary interface */
+
+#define CA_CI            1     /* Deprecated */
+#define CA_CI_LINK       2     /* Deprecated */
+#define CA_CI_PHYS       4     /* Deprecated */
+#define CA_SC          128     /* Deprecated */
 
         unsigned int flags;
 #define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
@@ -61,8 +64,14 @@
 
 /* a message to/from a CI-CAM */
 typedef struct ca_msg {
-        unsigned int index;
-        unsigned int type;
+        unsigned int index;        /* slot message is destined for */
+        unsigned int type;         /* message type. One of the values defined 
for ca_slot_info->type */
+        union {
+	        struct {
+		        unsigned char connection_id;
+		} en50221;
+	} params;
+    
         unsigned int length;
         unsigned char msg[256];
 } ca_msg_t;


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



Home | Main Index | Thread Index