Re: [PATCH v2 00/26] Improve DVB documentation and reduce its gap

From: Mauro Carvalho Chehab
Date: Sun Sep 03 2017 - 20:54:33 EST


Em Sun, 3 Sep 2017 22:05:23 +0200
Honza PetrouÅ <jpetrous@xxxxxxxxx> escreveu:

> 1) #define CA_SET_DESCR _IOW('o', 134, ca_descr_t)
> ============================================
>
> CA_SET_DESCR is used for feeding descrambler device
> with correct keys (called here "control words") what
> allows to get services unscrambled.
>
> The best docu is:
>
> "Digital Video Broadcasting (DVB);
> Support for use of the DVB Scrambling Algorithm version 3
> within digital broadcasting systems"
>
> Defined as DVB Document A125 and publicly
> available here:
>
> https://www.dvb.org/resources/public/standards/a125_dvb-csa3.pdf
>
>
> typedef struct ca_descr {
> unsigned int index;
> unsigned int parity; /* 0 == even, 1 == odd */
> unsigned char cw[8];
> } ca_descr_t;
>
> The 'index' is adress of the descrambler instance, as there exist
> limited number of them (retieved by CA_GET_DESCR_INFO).

Thanks for the info. If I understood well, the enclosed patch should
be documenting it.


Thanks,
Mauro

[PATCH] media: ca docs: document CA_SET_DESCR ioctl and structs

The av7110 driver uses CA_SET_DESCR to store the descrambler
control words at the CA descrambler slots.

Document it.

Thanks-to: Honza PetrouÅ <jpetrous@xxxxxxxxx>
Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxxx>

diff --git a/Documentation/media/uapi/dvb/ca-set-descr.rst b/Documentation/media/uapi/dvb/ca-set-descr.rst
index 9c484317d55c..a6c47205ffd8 100644
--- a/Documentation/media/uapi/dvb/ca-set-descr.rst
+++ b/Documentation/media/uapi/dvb/ca-set-descr.rst
@@ -28,22 +28,11 @@ Arguments
``msg``
Pointer to struct :c:type:`ca_descr`.

-.. c:type:: ca_descr
-
-.. code-block:: c
-
- struct ca_descr {
- unsigned int index;
- unsigned int parity;
- unsigned char cw[8];
- };
-
-
Description
-----------

-.. note:: This ioctl is undocumented. Documentation is welcome.
-
+CA_SET_DESCR is used for feeding descrambler CA slots with descrambling
+keys (refered as control words).

Return Value
------------
diff --git a/include/uapi/linux/dvb/ca.h b/include/uapi/linux/dvb/ca.h
index f66ed53f4dc7..a62ddf0cebcd 100644
--- a/include/uapi/linux/dvb/ca.h
+++ b/include/uapi/linux/dvb/ca.h
@@ -109,9 +109,16 @@ struct ca_msg {
unsigned char msg[256];
};

+/**
+ * struct ca_descr - CA descrambler control words info
+ *
+ * @index: CA Descrambler slot
+ * @parity: control words parity, where 0 means even and 1 means odd
+ * @cw: CA Descrambler control words
+ */
struct ca_descr {
unsigned int index;
- unsigned int parity; /* 0 == even, 1 == odd */
+ unsigned int parity;
unsigned char cw[8];
};