include/drm/intel/i915_hdcp_interface.h
Source file repositories/reference/linux-study-clean/include/drm/intel/i915_hdcp_interface.h
File Facts
- System
- Linux kernel
- Corpus path
include/drm/intel/i915_hdcp_interface.h- Extension
.h- Size
- 16654 bytes
- Lines
- 548
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/mutex.hlinux/device.hdrm/display/drm_hdcp.h
Detected Declarations
struct hdcp_port_datastruct i915_hdcp_opsstruct i915_hdcp_arbiterstruct hdcp_cmd_headerstruct hdcp_cmd_no_datastruct hdcp_port_idstruct wired_cmd_initiate_hdcp2_session_instruct wired_cmd_initiate_hdcp2_session_outstruct wired_cmd_close_session_instruct wired_cmd_close_session_outstruct wired_cmd_verify_receiver_cert_instruct wired_cmd_verify_receiver_cert_outstruct wired_cmd_ake_send_hprime_instruct wired_cmd_ake_send_hprime_outstruct wired_cmd_ake_send_pairing_info_instruct wired_cmd_ake_send_pairing_info_outstruct wired_cmd_init_locality_check_instruct wired_cmd_init_locality_check_outstruct wired_cmd_validate_locality_instruct wired_cmd_validate_locality_outstruct wired_cmd_get_session_key_instruct wired_cmd_get_session_key_outstruct wired_cmd_enable_auth_instruct wired_cmd_enable_auth_outstruct wired_cmd_verify_repeater_instruct wired_cmd_verify_repeater_outstruct wired_cmd_repeater_auth_stream_req_instruct wired_cmd_repeater_auth_stream_req_outenum hdcp_port_typeenum hdcp_wired_protocolenum hdcp_ddienum hdcp_transcoderenum fw_hdcp_statusenum hdcp_command_id
Annotated Snippet
struct hdcp_port_data {
enum hdcp_ddi hdcp_ddi;
enum hdcp_transcoder hdcp_transcoder;
u8 port_type;
u8 protocol;
u16 k;
u32 seq_num_m;
struct hdcp2_streamid_type *streams;
};
/**
* struct i915_hdcp_ops- ops for HDCP2.2 services.
* @owner: Module providing the ops
* @initiate_hdcp2_session: Initiate a Wired HDCP2.2 Tx Session.
* And Prepare AKE_Init.
* @verify_receiver_cert_prepare_km: Verify the Receiver Certificate
* AKE_Send_Cert and prepare
* AKE_Stored_Km/AKE_No_Stored_Km
* @verify_hprime: Verify AKE_Send_H_prime
* @store_pairing_info: Store pairing info received
* @initiate_locality_check: Prepare LC_Init
* @verify_lprime: Verify lprime
* @get_session_key: Prepare SKE_Send_Eks
* @repeater_check_flow_prepare_ack: Validate the Downstream topology
* and prepare rep_ack
* @verify_mprime: Verify mprime
* @enable_hdcp_authentication: Mark a port as authenticated.
* @close_hdcp_session: Close the Wired HDCP Tx session per port.
* This also disables the authenticated state of the port.
*/
struct i915_hdcp_ops {
/**
* @owner: hdcp module
*/
struct module *owner;
int (*initiate_hdcp2_session)(struct device *dev,
struct hdcp_port_data *data,
struct hdcp2_ake_init *ake_data);
int (*verify_receiver_cert_prepare_km)(struct device *dev,
struct hdcp_port_data *data,
struct hdcp2_ake_send_cert
*rx_cert,
bool *km_stored,
struct hdcp2_ake_no_stored_km
*ek_pub_km,
size_t *msg_sz);
int (*verify_hprime)(struct device *dev,
struct hdcp_port_data *data,
struct hdcp2_ake_send_hprime *rx_hprime);
int (*store_pairing_info)(struct device *dev,
struct hdcp_port_data *data,
struct hdcp2_ake_send_pairing_info
*pairing_info);
int (*initiate_locality_check)(struct device *dev,
struct hdcp_port_data *data,
struct hdcp2_lc_init *lc_init_data);
int (*verify_lprime)(struct device *dev,
struct hdcp_port_data *data,
struct hdcp2_lc_send_lprime *rx_lprime);
int (*get_session_key)(struct device *dev,
struct hdcp_port_data *data,
struct hdcp2_ske_send_eks *ske_data);
int (*repeater_check_flow_prepare_ack)(struct device *dev,
struct hdcp_port_data *data,
struct hdcp2_rep_send_receiverid_list
*rep_topology,
struct hdcp2_rep_send_ack
*rep_send_ack);
int (*verify_mprime)(struct device *dev,
struct hdcp_port_data *data,
struct hdcp2_rep_stream_ready *stream_ready);
int (*enable_hdcp_authentication)(struct device *dev,
struct hdcp_port_data *data);
int (*close_hdcp_session)(struct device *dev,
struct hdcp_port_data *data);
};
/**
* struct i915_hdcp_arbiter - Used for communication between i915
* and hdcp drivers for the HDCP2.2 services
*/
struct i915_hdcp_arbiter {
/**
* @hdcp_dev: device that provides the HDCP2.2 service from MEI Bus.
*/
struct device *hdcp_dev;
/**
* @ops: Ops implemented by hdcp driver or intel_hdcp_gsc, used by i915
Annotation
- Immediate include surface: `linux/mutex.h`, `linux/device.h`, `drm/display/drm_hdcp.h`.
- Detected declarations: `struct hdcp_port_data`, `struct i915_hdcp_ops`, `struct i915_hdcp_arbiter`, `struct hdcp_cmd_header`, `struct hdcp_cmd_no_data`, `struct hdcp_port_id`, `struct wired_cmd_initiate_hdcp2_session_in`, `struct wired_cmd_initiate_hdcp2_session_out`, `struct wired_cmd_close_session_in`, `struct wired_cmd_close_session_out`.
- Atlas domain: Repository Root And Misc / include.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.