_sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget+/translations/zh_CN/driver-api/media/dtv-camodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/driver-api/media/dtv-camodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/driver-api/media/dtv-camodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/driver-api/media/dtv-camodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/driver-api/media/dtv-camodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/pt_BR/driver-api/media/dtv-camodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/driver-api/media/dtv-camodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhE/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca.rsthKubhsection)}(hhh](htitle)}(h"Digital TV Conditional Access kABIh]h"Digital TV Conditional Access kABI}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singledvb_ca_en50221 (C struct)c.dvb_ca_en50221hNtauh1hhhhhhNhNubhdesc)}(hhh](hdesc_signature)}(hdvb_ca_en50221h]hdesc_signature_line)}(hstruct dvb_ca_en50221h](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1hhhhhhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhhhhhjhKubh desc_name)}(hdvb_ca_en50221h]h desc_sig_name)}(hhh]hdvb_ca_en50221}(hj*hhhNhNubah}(h]h ]nah"]h$]h&]uh1j(hj$ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j"hhhhhjhKubeh}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1hsphinx_line_type declaratorhhhhhjhKubah}(h]hah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1hhjhKhhhhubh desc_content)}(hhh]h paragraph)}(h#Structure describing a CA interfaceh]h#Structure describing a CA interface}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK%hjVhhubah}(h]h ]h"]h$]h&]uh1jThhhhhjhKubeh}(h]h ](cstructeh"]h$]h&]domainjsobjtypejtdesctypejtnoindex noindexentrynocontentsentryuh1hhhhhhNhNubh container)}(hX**Definition**:: struct dvb_ca_en50221 { struct module *owner; int (*read_attribute_mem)(struct dvb_ca_en50221 *ca, int slot, int address); int (*write_attribute_mem)(struct dvb_ca_en50221 *ca, int slot, int address, u8 value); int (*read_cam_control)(struct dvb_ca_en50221 *ca, int slot, u8 address); int (*write_cam_control)(struct dvb_ca_en50221 *ca, int slot, u8 address, u8 value); int (*read_data)(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount); int (*write_data)(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount); int (*slot_reset)(struct dvb_ca_en50221 *ca, int slot); int (*slot_shutdown)(struct dvb_ca_en50221 *ca, int slot); int (*slot_ts_enable)(struct dvb_ca_en50221 *ca, int slot); int (*poll_slot_status)(struct dvb_ca_en50221 *ca, int slot, int open); void *data; void *private; }; **Members** ``owner`` the module owning this structure ``read_attribute_mem`` function for reading attribute memory on the CAM ``write_attribute_mem`` function for writing attribute memory on the CAM ``read_cam_control`` function for reading the control interface on the CAM ``write_cam_control`` function for reading the control interface on the CAM ``read_data`` function for reading data (block mode) ``write_data`` function for writing data (block mode) ``slot_reset`` function to reset the CAM slot ``slot_shutdown`` function to shutdown a CAM slot ``slot_ts_enable`` function to enable the Transport Stream on a CAM slot ``poll_slot_status`` function to poll slot status. Only necessary if DVB_CA_FLAG_EN50221_IRQ_CAMCHANGE is not set. ``data`` private data, used by caller. ``private`` Opaque data used by the dvb_ca core. Do not modify!h](jZ)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK)hjubh literal_block)}(hXUstruct dvb_ca_en50221 { struct module *owner; int (*read_attribute_mem)(struct dvb_ca_en50221 *ca, int slot, int address); int (*write_attribute_mem)(struct dvb_ca_en50221 *ca, int slot, int address, u8 value); int (*read_cam_control)(struct dvb_ca_en50221 *ca, int slot, u8 address); int (*write_cam_control)(struct dvb_ca_en50221 *ca, int slot, u8 address, u8 value); int (*read_data)(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount); int (*write_data)(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount); int (*slot_reset)(struct dvb_ca_en50221 *ca, int slot); int (*slot_shutdown)(struct dvb_ca_en50221 *ca, int slot); int (*slot_ts_enable)(struct dvb_ca_en50221 *ca, int slot); int (*poll_slot_status)(struct dvb_ca_en50221 *ca, int slot, int open); void *data; void *private; };h]hXUstruct dvb_ca_en50221 { struct module *owner; int (*read_attribute_mem)(struct dvb_ca_en50221 *ca, int slot, int address); int (*write_attribute_mem)(struct dvb_ca_en50221 *ca, int slot, int address, u8 value); int (*read_cam_control)(struct dvb_ca_en50221 *ca, int slot, u8 address); int (*write_cam_control)(struct dvb_ca_en50221 *ca, int slot, u8 address, u8 value); int (*read_data)(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount); int (*write_data)(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount); int (*slot_reset)(struct dvb_ca_en50221 *ca, int slot); int (*slot_shutdown)(struct dvb_ca_en50221 *ca, int slot); int (*slot_ts_enable)(struct dvb_ca_en50221 *ca, int slot); int (*poll_slot_status)(struct dvb_ca_en50221 *ca, int slot, int open); void *data; void *private; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK+hjubjZ)}(h **Members**h]j)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK;hjubhdefinition_list)}(hhh](hdefinition_list_item)}(h+``owner`` the module owning this structure h](hterm)}(h ``owner``h]hliteral)}(hjh]howner}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK(hjubh definition)}(hhh]jZ)}(h the module owning this structureh]h the module owning this structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK(hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK(hjubj)}(hH``read_attribute_mem`` function for reading attribute memory on the CAM h](j)}(h``read_attribute_mem``h]j)}(hjh]hread_attribute_mem}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK)hjubj)}(hhh]jZ)}(h0function for reading attribute memory on the CAMh]h0function for reading attribute memory on the CAM}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj-hK)hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj-hK)hjubj)}(hI``write_attribute_mem`` function for writing attribute memory on the CAM h](j)}(h``write_attribute_mem``h]j)}(hjQh]hwrite_attribute_mem}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK*hjKubj)}(hhh]jZ)}(h0function for writing attribute memory on the CAMh]h0function for writing attribute memory on the CAM}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjfhK*hjgubah}(h]h ]h"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]uh1jhjfhK*hjubj)}(hK``read_cam_control`` function for reading the control interface on the CAM h](j)}(h``read_cam_control``h]j)}(hjh]hread_cam_control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK+hjubj)}(hhh]jZ)}(h5function for reading the control interface on the CAMh]h5function for reading the control interface on the CAM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK+hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK+hjubj)}(hL``write_cam_control`` function for reading the control interface on the CAM h](j)}(h``write_cam_control``h]j)}(hjh]hwrite_cam_control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK,hjubj)}(hhh]jZ)}(h5function for reading the control interface on the CAMh]h5function for reading the control interface on the CAM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK,hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK,hjubj)}(h5``read_data`` function for reading data (block mode) h](j)}(h ``read_data``h]j)}(hjh]h read_data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK-hjubj)}(hhh]jZ)}(h&function for reading data (block mode)h]h&function for reading data (block mode)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK-hjubj)}(h6``write_data`` function for writing data (block mode) h](j)}(h``write_data``h]j)}(hj5h]h write_data}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK.hj/ubj)}(hhh]jZ)}(h&function for writing data (block mode)h]h&function for writing data (block mode)}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjJhK.hjKubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhjJhK.hjubj)}(h.``slot_reset`` function to reset the CAM slot h](j)}(h``slot_reset``h]j)}(hjnh]h slot_reset}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK/hjhubj)}(hhh]jZ)}(hfunction to reset the CAM sloth]hfunction to reset the CAM slot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK/hjubah}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ]h"]h$]h&]uh1jhjhK/hjubj)}(h2``slot_shutdown`` function to shutdown a CAM slot h](j)}(h``slot_shutdown``h]j)}(hjh]h slot_shutdown}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK0hjubj)}(hhh]jZ)}(hfunction to shutdown a CAM sloth]hfunction to shutdown a CAM slot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK0hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK0hjubj)}(hI``slot_ts_enable`` function to enable the Transport Stream on a CAM slot h](j)}(h``slot_ts_enable``h]j)}(hjh]hslot_ts_enable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK1hjubj)}(hhh]jZ)}(h5function to enable the Transport Stream on a CAM sloth]h5function to enable the Transport Stream on a CAM slot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK1hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK1hjubj)}(hs``poll_slot_status`` function to poll slot status. Only necessary if DVB_CA_FLAG_EN50221_IRQ_CAMCHANGE is not set. h](j)}(h``poll_slot_status``h]j)}(hjh]hpoll_slot_status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK3hjubj)}(hhh]jZ)}(h]function to poll slot status. Only necessary if DVB_CA_FLAG_EN50221_IRQ_CAMCHANGE is not set.h]h]function to poll slot status. Only necessary if DVB_CA_FLAG_EN50221_IRQ_CAMCHANGE is not set.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK2hj/ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj.hK3hjubj)}(h'``data`` private data, used by caller. h](j)}(h``data``h]j)}(hjSh]hdata}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK4hjMubj)}(hhh]jZ)}(hprivate data, used by caller.h]hprivate data, used by caller.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhhK4hjiubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjhhK4hjubj)}(h?``private`` Opaque data used by the dvb_ca core. Do not modify!h](j)}(h ``private``h]j)}(hjh]hprivate}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK4hjubj)}(hhh]jZ)}(h3Opaque data used by the dvb_ca core. Do not modify!h]h3Opaque data used by the dvb_ca core. Do not modify!}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK5hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK4hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubjZ)}(h**NOTE**h]j)}(hjh]hNOTE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK8hhhhubjZ)}(hthe read_*, write_* and poll_slot_status functions will be called for different slots concurrently and need to use locks where and if appropriate. There will be no concurrent access to one slot.h]hthe read_*, write_* and poll_slot_status functions will be called for different slots concurrently and need to use locks where and if appropriate. There will be no concurrent access to one slot.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK6hhhhubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h)dvb_ca_en50221_camchange_irq (C function)c.dvb_ca_en50221_camchange_irqhNtauh1hhhhhhNhNubh)}(hhh](h)}(h[void dvb_ca_en50221_camchange_irq (struct dvb_ca_en50221 *pubca, int slot, int change_type)h]h)}(hZvoid dvb_ca_en50221_camchange_irq(struct dvb_ca_en50221 *pubca, int slot, int change_type)h](hdesc_sig_keyword_type)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1j hj hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK\ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhjhK\ubj#)}(hdvb_ca_en50221_camchange_irqh]j))}(hdvb_ca_en50221_camchange_irqh]hdvb_ca_en50221_camchange_irq}(hj1hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj-ubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hj hhhjhK\ubhdesc_parameterlist)}(h9(struct dvb_ca_en50221 *pubca, int slot, int change_type)h](hdesc_parameter)}(hstruct dvb_ca_en50221 *pubcah](j)}(hjh]hstruct}(hjQhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubh)}(hhh]j))}(hdvb_ca_en50221h]hdvb_ca_en50221}(hjohhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjlubah}(h]h ]h"]h$]h&] refdomainjsreftype identifier reftargetjqmodnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)}jj3sbc.dvb_ca_en50221_camchange_irqasbuh1hhjMubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjMubhdesc_sig_punctuation)}(h*h]h*}(hjhhhNhNubah}(h]h ]pah"]h$]h&]uh1jhjMubj))}(hpubcah]hpubca}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjMubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhjGubjL)}(hint sloth](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj))}(hsloth]hslot}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhjGubjL)}(hint change_typeh](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj))}(h change_typeh]h change_type}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhjGubeh}(h]h ]h"]h$]h&]hhuh1jEhj hhhjhK\ubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhjhhhjhK\ubah}(h]jah ](jLjMeh"]h$]h&]jQjR)jShuh1hhjhK\hjhhubjU)}(hhh]jZ)}(hA CAMCHANGE IRQ has occurred.h]hA CAMCHANGE IRQ has occurred.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK\hjGhhubah}(h]h ]h"]h$]h&]uh1jThjhhhjhK\ubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyjbjzjbj{j|j}uh1hhhhhhNhNubj)}(h**Parameters** ``struct dvb_ca_en50221 *pubca`` CA instance. ``int slot`` Slot concerned. ``int change_type`` One of the DVB_CA_CAMCHANGE_* valuesh](jZ)}(h**Parameters**h]j)}(hjlh]h Parameters}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjjubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK`hjfubj)}(hhh](j)}(h.``struct dvb_ca_en50221 *pubca`` CA instance. h](j)}(h ``struct dvb_ca_en50221 *pubca``h]j)}(hjh]hstruct dvb_ca_en50221 *pubca}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK^hjubj)}(hhh]jZ)}(h CA instance.h]h CA instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK^hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK^hjubj)}(h``int slot`` Slot concerned. h](j)}(h ``int slot``h]j)}(hjh]hint slot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK_hjubj)}(hhh]jZ)}(hSlot concerned.h]hSlot concerned.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK_hjubj)}(h8``int change_type`` One of the DVB_CA_CAMCHANGE_* valuesh](j)}(h``int change_type``h]j)}(hjh]hint change_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKahjubj)}(hhh]jZ)}(h$One of the DVB_CA_CAMCHANGE_* valuesh]h$One of the DVB_CA_CAMCHANGE_* values}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKahjubeh}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h(dvb_ca_en50221_camready_irq (C function)c.dvb_ca_en50221_camready_irqhNtauh1hhhhhhNhNubh)}(hhh](h)}(hIvoid dvb_ca_en50221_camready_irq (struct dvb_ca_en50221 *pubca, int slot)h]h)}(hHvoid dvb_ca_en50221_camready_irq(struct dvb_ca_en50221 *pubca, int slot)h](j)}(hvoidh]hvoid}(hjWhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjShhhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKfubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhjehKfubj#)}(hdvb_ca_en50221_camready_irqh]j))}(hdvb_ca_en50221_camready_irqh]hdvb_ca_en50221_camready_irq}(hjxhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjtubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hjShhhjehKfubjF)}(h((struct dvb_ca_en50221 *pubca, int slot)h](jL)}(hstruct dvb_ca_en50221 *pubcah](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j))}(hdvb_ca_en50221h]hdvb_ca_en50221}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetjmodnameN classnameNjj)}j]j)}jjzsbc.dvb_ca_en50221_camready_irqasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj))}(hpubcah]hpubca}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhjubjL)}(hint sloth](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1j hjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj))}(hsloth]hslot}(hj"hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhjubeh}(h]h ]h"]h$]h&]hhuh1jEhjShhhjehKfubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhjOhhhjehKfubah}(h]jJah ](jLjMeh"]h$]h&]jQjR)jShuh1hhjehKfhjLhhubjU)}(hhh]jZ)}(hA CAMREADY IRQ has occurred.h]hA CAMREADY IRQ has occurred.}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKfhjIhhubah}(h]h ]h"]h$]h&]uh1jThjLhhhjehKfubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyjdjzjdj{j|j}uh1hhhhhhNhNubj)}(h_**Parameters** ``struct dvb_ca_en50221 *pubca`` CA instance. ``int slot`` Slot concerned.h](jZ)}(h**Parameters**h]j)}(hjnh]h Parameters}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjlubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKjhjhubj)}(hhh](j)}(h.``struct dvb_ca_en50221 *pubca`` CA instance. h](j)}(h ``struct dvb_ca_en50221 *pubca``h]j)}(hjh]hstruct dvb_ca_en50221 *pubca}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKhhjubj)}(hhh]jZ)}(h CA instance.h]h CA instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjhKhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhhjubj)}(h``int slot`` Slot concerned.h](j)}(h ``int slot``h]j)}(hjh]hint slot}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKjhjubj)}(hhh]jZ)}(hSlot concerned.h]hSlot concerned.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKjhjubeh}(h]h ]h"]h$]h&]uh1jhjhubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h$dvb_ca_en50221_frda_irq (C function)c.dvb_ca_en50221_frda_irqhNtauh1hhhhhhNhNubh)}(hhh](h)}(hBvoid dvb_ca_en50221_frda_irq (struct dvb_ca_en50221 *ca, int slot)h]h)}(hAvoid dvb_ca_en50221_frda_irq(struct dvb_ca_en50221 *ca, int slot)h](j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKnubj)}(h h]h }(hj/ hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj. hKnubj#)}(hdvb_ca_en50221_frda_irqh]j))}(hdvb_ca_en50221_frda_irqh]hdvb_ca_en50221_frda_irq}(hjA hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj= ubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hj hhhj. hKnubjF)}(h%(struct dvb_ca_en50221 *ca, int slot)h](jL)}(hstruct dvb_ca_en50221 *cah](j)}(hjh]hstruct}(hj] hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhjY ubj)}(h h]h }(hjj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY ubh)}(hhh]j))}(hdvb_ca_en50221h]hdvb_ca_en50221}(hj{ hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjx ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetj} modnameN classnameNjj)}j]j)}jjC sbc.dvb_ca_en50221_frda_irqasbuh1hhjY ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjY ubj))}(hcah]hca}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjY ubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhjU ubjL)}(hint sloth](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj))}(hsloth]hslot}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhjU ubeh}(h]h ]h"]h$]h&]hhuh1jEhj hhhj. hKnubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhj hhhj. hKnubah}(h]j ah ](jLjMeh"]h$]h&]jQjR)jShuh1hhj. hKnhj hhubjU)}(hhh]jZ)}(hAn FR or a DA IRQ has occurred.h]hAn FR or a DA IRQ has occurred.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKnhj hhubah}(h]h ]h"]h$]h&]uh1jThj hhhj. hKnubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyj- jzj- j{j|j}uh1hhhhhhNhNubj)}(h\**Parameters** ``struct dvb_ca_en50221 *ca`` CA instance. ``int slot`` Slot concerned.h](jZ)}(h**Parameters**h]j)}(hj7 h]h Parameters}(hj9 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5 ubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKrhj1 ubj)}(hhh](j)}(h+``struct dvb_ca_en50221 *ca`` CA instance. h](j)}(h``struct dvb_ca_en50221 *ca``h]j)}(hjV h]hstruct dvb_ca_en50221 *ca}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKphjP ubj)}(hhh]jZ)}(h CA instance.h]h CA instance.}(hjo hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjk hKphjl ubah}(h]h ]h"]h$]h&]uh1jhjP ubeh}(h]h ]h"]h$]h&]uh1jhjk hKphjM ubj)}(h``int slot`` Slot concerned.h](j)}(h ``int slot``h]j)}(hj h]hint slot}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKrhj ubj)}(hhh]jZ)}(hSlot concerned.h]hSlot concerned.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKqhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKrhjM ubeh}(h]h ]h"]h$]h&]uh1jhj1 ubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h dvb_ca_en50221_init (C function)c.dvb_ca_en50221_inithNtauh1hhhhhhNhNubh)}(hhh](h)}(hoint dvb_ca_en50221_init (struct dvb_adapter *dvb_adapter, struct dvb_ca_en50221 *ca, int flags, int slot_count)h]h)}(hnint dvb_ca_en50221_init(struct dvb_adapter *dvb_adapter, struct dvb_ca_en50221 *ca, int flags, int slot_count)h](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKzubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKzubj#)}(hdvb_ca_en50221_inith]j))}(hdvb_ca_en50221_inith]hdvb_ca_en50221_init}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hj hhhj hKzubjF)}(hW(struct dvb_adapter *dvb_adapter, struct dvb_ca_en50221 *ca, int flags, int slot_count)h](jL)}(hstruct dvb_adapter *dvb_adapterh](j)}(hjh]hstruct}(hj& hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj" ubj)}(h h]h }(hj3 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj" ubh)}(hhh]j))}(h dvb_adapterh]h dvb_adapter}(hjD hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjA ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetjF modnameN classnameNjj)}j]j)}jj sbc.dvb_ca_en50221_initasbuh1hhj" ubj)}(h h]h }(hjd hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj" ubj)}(hjh]h*}(hjr hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj" ubj))}(h dvb_adapterh]h dvb_adapter}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj" ubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhj ubjL)}(hstruct dvb_ca_en50221 *cah](j)}(hjh]hstruct}(hj hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubh)}(hhh]j))}(hdvb_ca_en50221h]hdvb_ca_en50221}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetj modnameN classnameNjj)}j]j` c.dvb_ca_en50221_initasbuh1hhj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hjh]h*}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj))}(hcah]hca}(hj hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhj ubjL)}(h int flagsh](j)}(hinth]hint}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj ubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj))}(hflagsh]hflags}(hj$ hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhj ubjL)}(hint slot_counth](j)}(hinth]hint}(hj= hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj9 ubj)}(h h]h }(hjK hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj9 ubj))}(h slot_counth]h slot_count}(hjY hhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj9 ubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhj ubeh}(h]h ]h"]h$]h&]hhuh1jEhj hhhj hKzubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhj hhhj hKzubah}(h]j ah ](jLjMeh"]h$]h&]jQjR)jShuh1hhj hKzhj hhubjU)}(hhh]jZ)}(hInitialise a new DVB CA device.h]hInitialise a new DVB CA device.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKzhj hhubah}(h]h ]h"]h$]h&]uh1jThj hhhj hKzubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyj jzj j{j|j}uh1hhhhhhNhNubj)}(hXO**Parameters** ``struct dvb_adapter *dvb_adapter`` DVB adapter to attach the new CA device to. ``struct dvb_ca_en50221 *ca`` The dvb_ca instance. ``int flags`` Flags describing the CA device (DVB_CA_EN50221_FLAG_*). ``int slot_count`` Number of slots supported. **Description** **return** 0 on success, nonzero on failureh](jZ)}(h**Parameters**h]j)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK~hj ubj)}(hhh](j)}(hP``struct dvb_adapter *dvb_adapter`` DVB adapter to attach the new CA device to. h](j)}(h#``struct dvb_adapter *dvb_adapter``h]j)}(hj h]hstruct dvb_adapter *dvb_adapter}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK|hj ubj)}(hhh]jZ)}(h+DVB adapter to attach the new CA device to.h]h+DVB adapter to attach the new CA device to.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj hK|hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hK|hj ubj)}(h3``struct dvb_ca_en50221 *ca`` The dvb_ca instance. h](j)}(h``struct dvb_ca_en50221 *ca``h]j)}(hj h]hstruct dvb_ca_en50221 *ca}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK}hj ubj)}(hhh]jZ)}(hThe dvb_ca instance.h]hThe dvb_ca instance.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj hK}hj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hK}hj ubj)}(hF``int flags`` Flags describing the CA device (DVB_CA_EN50221_FLAG_*). h](j)}(h ``int flags``h]j)}(hj6 h]h int flags}(hj8 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4 ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhK~hj0 ubj)}(hhh]jZ)}(h7Flags describing the CA device (DVB_CA_EN50221_FLAG_*).h]h7Flags describing the CA device (DVB_CA_EN50221_FLAG_*).}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhjK hK~hjL ubah}(h]h ]h"]h$]h&]uh1jhj0 ubeh}(h]h ]h"]h$]h&]uh1jhjK hK~hj ubj)}(h.``int slot_count`` Number of slots supported. h](j)}(h``int slot_count``h]j)}(hjo h]hint slot_count}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjm ubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKhji ubj)}(hhh]jZ)}(hNumber of slots supported.h]hNumber of slots supported.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jYhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhji ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubjZ)}(h**Description**h]j)}(hj h]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKhj ubjZ)}(h+**return** 0 on success, nonzero on failureh](j)}(h **return**h]hreturn}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh! 0 on success, nonzero on failure}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubh)}(hhh]h}(h]h ]h"]h$]h&]entries](h#dvb_ca_en50221_release (C function)c.dvb_ca_en50221_releasehNtauh1hhhhhhNhNubh)}(hhh](h)}(h7void dvb_ca_en50221_release (struct dvb_ca_en50221 *ca)h]h)}(h6void dvb_ca_en50221_release(struct dvb_ca_en50221 *ca)h](j)}(hvoidh]hvoid}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1j hj hhhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKubj)}(h h]h }(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj hhhj hKubj#)}(hdvb_ca_en50221_releaseh]j))}(hdvb_ca_en50221_releaseh]hdvb_ca_en50221_release}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjubah}(h]h ](j;j<eh"]h$]h&]hhuh1j"hj hhhj hKubjF)}(h(struct dvb_ca_en50221 *ca)h]jL)}(hstruct dvb_ca_en50221 *cah](j)}(hjh]hstruct}(hj:hhhNhNubah}(h]h ]j ah"]h$]h&]uh1hhj6ubj)}(h h]h }(hjGhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubh)}(hhh]j))}(hdvb_ca_en50221h]hdvb_ca_en50221}(hjXhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hjUubah}(h]h ]h"]h$]h&] refdomainjsreftypej reftargetjZmodnameN classnameNjj)}j]j)}jj sbc.dvb_ca_en50221_releaseasbuh1hhj6ubj)}(h h]h }(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(hjh]h*}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj))}(hcah]hca}(hjhhhNhNubah}(h]h ]j4ah"]h$]h&]uh1j(hj6ubeh}(h]h ]h"]h$]h&]noemphhhuh1jKhj2ubah}(h]h ]h"]h$]h&]hhuh1jEhj hhhj hKubeh}(h]h ]h"]h$]h&]hhjFuh1hjGjHhj hhhj hKubah}(h]j ah ](jLjMeh"]h$]h&]jQjR)jShuh1hhj hKhj hhubjU)}(hhh]jZ)}(hRelease a DVB CA device.h]hRelease a DVB CA device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jThj hhhj hKubeh}(h]h ](jsfunctioneh"]h$]h&]jxjsjyjjzjj{j|j}uh1hhhhhhNhNubj)}(hO**Parameters** ``struct dvb_ca_en50221 *ca`` The associated dvb_ca instance.h](jZ)}(h**Parameters**h]j)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKhjubj)}(hhh]j)}(h=``struct dvb_ca_en50221 *ca`` The associated dvb_ca instance.h](j)}(h``struct dvb_ca_en50221 *ca``h]j)}(hjh]hstruct dvb_ca_en50221 *ca}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKhjubj)}(hhh]jZ)}(hThe associated dvb_ca instance.h]hThe associated dvb_ca instance.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jYhe/var/lib/git/docbuild/linux/Documentation/driver-api/media/dtv-ca:6: ./include/media/dvb_ca_en50221.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j~hhhhhNhNubeh}(h]"digital-tv-conditional-access-kabiah ]h"]"digital tv conditional access kabiah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}jDjAs nametypes}jDsh}(jAhhhjjjJjOj j j j j j u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.