Home
last modified time | relevance | path

Searched full:hdcp (Results 1 – 25 of 104) sorted by relevance

12345

/Linux-v5.10/drivers/gpu/drm/amd/display/modules/hdcp/
Dhdcp_log.h30 #define HDCP_LOG_ERR(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) argument
31 #define HDCP_LOG_VER(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) argument
32 #define HDCP_LOG_FSM(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) argument
33 #define HDCP_LOG_TOP(hdcp, ...) pr_debug("[HDCP_TOP]:"__VA_ARGS__) argument
34 #define HDCP_LOG_DDC(hdcp, ...) pr_debug("[HDCP_DDC]:"__VA_ARGS__) argument
38 #define HDCP_ERROR_TRACE(hdcp, status) \ argument
39 HDCP_LOG_ERR(hdcp, \
41 hdcp->config.index, \
43 mod_hdcp_state_id_to_str(hdcp->state.id), \
44 hdcp->state.stay_count)
[all …]
Dhdcp_ddc.c26 #include "hdcp.h"
38 /* HDCP 1.4 */
56 /* HDCP 2.2 */
150 static enum mod_hdcp_status read(struct mod_hdcp *hdcp, in read() argument
159 if (is_dp_hdcp(hdcp)) { in read()
162 success = hdcp->config.ddc.funcs.read_dpcd(hdcp->config.ddc.handle, in read()
174 success = hdcp->config.ddc.funcs.read_i2c( in read()
175 hdcp->config.ddc.handle, in read()
185 static enum mod_hdcp_status read_repeatedly(struct mod_hdcp *hdcp, in read_repeatedly() argument
197 status = read(hdcp, msg_id, buf + data_offset, cur_size); in read_repeatedly()
[all …]
Dhdcp.c26 #include "hdcp.h"
28 static void push_error_status(struct mod_hdcp *hdcp, in push_error_status() argument
31 struct mod_hdcp_trace *trace = &hdcp->connection.trace; in push_error_status()
35 trace->errors[trace->error_count].state_id = hdcp->state.id; in push_error_status()
37 HDCP_ERROR_TRACE(hdcp, status); in push_error_status()
40 if (is_hdcp1(hdcp)) { in push_error_status()
41 hdcp->connection.hdcp1_retry_count++; in push_error_status()
42 } else if (is_hdcp2(hdcp)) { in push_error_status()
43 hdcp->connection.hdcp2_retry_count++; in push_error_status()
47 static uint8_t is_cp_desired_hdcp1(struct mod_hdcp *hdcp) in is_cp_desired_hdcp1() argument
[all …]
Dhdcp2_execution.c28 #include "hdcp.h"
30 static inline enum mod_hdcp_status check_receiver_id_list_ready(struct mod_hdcp *hdcp) in check_receiver_id_list_ready() argument
34 if (is_dp_hdcp(hdcp)) in check_receiver_id_list_ready()
35 is_ready = HDCP_2_2_DP_RXSTATUS_READY(hdcp->auth.msg.hdcp2.rxstatus_dp) ? 1 : 0; in check_receiver_id_list_ready()
37 is_ready = (HDCP_2_2_HDMI_RXSTATUS_READY(hdcp->auth.msg.hdcp2.rxstatus[1]) && in check_receiver_id_list_ready()
38 (HDCP_2_2_HDMI_RXSTATUS_MSG_SZ_HI(hdcp->auth.msg.hdcp2.rxstatus[1]) << 8 | in check_receiver_id_list_ready()
39 hdcp->auth.msg.hdcp2.rxstatus[0])) ? 1 : 0; in check_receiver_id_list_ready()
44 static inline enum mod_hdcp_status check_hdcp2_capable(struct mod_hdcp *hdcp) in check_hdcp2_capable() argument
48 if (is_dp_hdcp(hdcp)) in check_hdcp2_capable()
49 status = (hdcp->auth.msg.hdcp2.rxcaps_dp[0] == HDCP_2_2_RX_CAPS_VERSION_VAL) && in check_hdcp2_capable()
[all …]
Dhdcp.h289 typedef enum mod_hdcp_status (*mod_hdcp_action)(struct mod_hdcp *hdcp);
292 enum mod_hdcp_status *status, struct mod_hdcp *hdcp, char *str);
293 enum mod_hdcp_status mod_hdcp_hdcp1_execution(struct mod_hdcp *hdcp,
296 enum mod_hdcp_status mod_hdcp_hdcp1_dp_execution(struct mod_hdcp *hdcp,
299 enum mod_hdcp_status mod_hdcp_hdcp1_transition(struct mod_hdcp *hdcp,
303 enum mod_hdcp_status mod_hdcp_hdcp1_dp_transition(struct mod_hdcp *hdcp,
309 enum mod_hdcp_status mod_hdcp_hdcp2_execution(struct mod_hdcp *hdcp,
312 enum mod_hdcp_status mod_hdcp_hdcp2_dp_execution(struct mod_hdcp *hdcp,
315 enum mod_hdcp_status mod_hdcp_hdcp2_transition(struct mod_hdcp *hdcp,
319 enum mod_hdcp_status mod_hdcp_hdcp2_dp_transition(struct mod_hdcp *hdcp,
[all …]
Dhdcp1_execution.c26 #include "hdcp.h"
28 static inline enum mod_hdcp_status validate_bksv(struct mod_hdcp *hdcp) in validate_bksv() argument
33 memcpy(&n, hdcp->auth.msg.hdcp1.bksv, sizeof(uint64_t)); in validate_bksv()
43 static inline enum mod_hdcp_status check_ksv_ready(struct mod_hdcp *hdcp) in check_ksv_ready() argument
45 if (is_dp_hdcp(hdcp)) in check_ksv_ready()
46 return (hdcp->auth.msg.hdcp1.bstatus & DP_BSTATUS_READY) ? in check_ksv_ready()
49 return (hdcp->auth.msg.hdcp1.bcaps & DRM_HDCP_DDC_BCAPS_KSV_FIFO_READY) ? in check_ksv_ready()
54 static inline enum mod_hdcp_status check_hdcp_capable_dp(struct mod_hdcp *hdcp) in check_hdcp_capable_dp() argument
56 return (hdcp->auth.msg.hdcp1.bcaps & DP_BCAPS_HDCP_CAPABLE) ? in check_hdcp_capable_dp()
61 static inline enum mod_hdcp_status check_r0p_available_dp(struct mod_hdcp *hdcp) in check_r0p_available_dp() argument
[all …]
Dhdcp_psp.c29 #include "hdcp.h"
34 static void hdcp2_message_init(struct mod_hdcp *hdcp, in hdcp2_message_init() argument
37 in->session_handle = hdcp->auth.id; in hdcp2_message_init()
48 struct mod_hdcp *hdcp, uint8_t index) in mod_hdcp_remove_display_from_topology() argument
50 struct psp_context *psp = hdcp->config.psp.handle; in mod_hdcp_remove_display_from_topology()
53 get_active_display_at_index(hdcp, index); in mod_hdcp_remove_display_from_topology()
76 HDCP_TOP_REMOVE_DISPLAY_TRACE(hdcp, display->index); in mod_hdcp_remove_display_from_topology()
82 enum mod_hdcp_status mod_hdcp_add_display_to_topology(struct mod_hdcp *hdcp, in mod_hdcp_add_display_to_topology() argument
85 struct psp_context *psp = hdcp->config.psp.handle; in mod_hdcp_add_display_to_topology()
87 struct mod_hdcp_link *link = &hdcp->connection.link; in mod_hdcp_add_display_to_topology()
[all …]
Dhdcp2_transition.c26 #include "hdcp.h"
28 enum mod_hdcp_status mod_hdcp_hdcp2_transition(struct mod_hdcp *hdcp, in mod_hdcp_hdcp2_transition() argument
34 struct mod_hdcp_connection *conn = &hdcp->connection; in mod_hdcp_hdcp2_transition()
35 struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust; in mod_hdcp_hdcp2_transition()
37 switch (current_state(hdcp)) { in mod_hdcp_hdcp2_transition()
43 set_state_id(hdcp, output, HDCP_INITIALIZED); in mod_hdcp_hdcp2_transition()
46 set_state_id(hdcp, output, H2_A1_SEND_AKE_INIT); in mod_hdcp_hdcp2_transition()
60 set_watchdog_in_ms(hdcp, 100, output); in mod_hdcp_hdcp2_transition()
62 set_state_id(hdcp, output, H2_A1_VALIDATE_AKE_CERT); in mod_hdcp_hdcp2_transition()
69 /* some hdmi receivers are not ready for HDCP in mod_hdcp_hdcp2_transition()
[all …]
Dhdcp1_transition.c26 #include "hdcp.h"
28 enum mod_hdcp_status mod_hdcp_hdcp1_transition(struct mod_hdcp *hdcp, in mod_hdcp_hdcp1_transition() argument
34 struct mod_hdcp_connection *conn = &hdcp->connection; in mod_hdcp_hdcp1_transition()
35 struct mod_hdcp_link_adjustment *adjust = &hdcp->connection.link.adjust; in mod_hdcp_hdcp1_transition()
37 switch (current_state(hdcp)) { in mod_hdcp_hdcp1_transition()
42 increment_stay_counter(hdcp); in mod_hdcp_hdcp1_transition()
46 set_state_id(hdcp, output, H1_A1_EXCHANGE_KSVS); in mod_hdcp_hdcp1_transition()
64 set_state_id(hdcp, output, in mod_hdcp_hdcp1_transition()
87 set_watchdog_in_ms(hdcp, 5000, output); in mod_hdcp_hdcp1_transition()
88 set_state_id(hdcp, output, H1_A8_WAIT_FOR_READY); in mod_hdcp_hdcp1_transition()
[all …]
DMakefile23 # Makefile for the 'hdcp' sub-module of DAL.
26 HDCP = hdcp_ddc.o hdcp_log.o hdcp_psp.o hdcp.o \ macro
30 AMD_DAL_HDCP = $(addprefix $(AMDDALPATH)/modules/hdcp/,$(HDCP))
/Linux-v5.10/drivers/gpu/drm/i915/display/
Dintel_hdcp.c49 /* HDCP spec states that we must retry the bksv if it is invalid */ in intel_hdcp_read_valid_bksv()
69 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_capable()
91 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_capable() local
95 if (!hdcp->hdcp2_supported) in intel_hdcp2_capable()
107 hdcp->shim->hdcp_2_2_capable(dig_port, &capable); in intel_hdcp2_capable()
169 * Another req for hdcp key loadability is enabled state of pll for in hdcp_key_loadable()
202 * Initiate loading the HDCP key from fuses. in intel_hdcp_load_keys()
204 * BXT+ platforms, HDCP key needs to be loaded by SW. Only Gen 9 in intel_hdcp_load_keys()
213 "Failed to initiate HDCP key load (%d)\n", in intel_hdcp_load_keys()
296 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_validate_v_prime()
[all …]
Dintel_dp_hdcp.c19 static void intel_dp_hdcp_wait_for_cp_irq(struct intel_hdcp *hdcp, int timeout) in intel_dp_hdcp_wait_for_cp_irq() argument
23 #define C (hdcp->cp_irq_count_cached != atomic_read(&hdcp->cp_irq_count)) in intel_dp_hdcp_wait_for_cp_irq()
24 ret = wait_event_interruptible_timeout(hdcp->cp_irq_queue, C, in intel_dp_hdcp_wait_for_cp_irq()
90 * For some reason the HDMI and DP HDCP specs call this register in intel_dp_hdcp_read_bstatus()
369 struct intel_hdcp *hdcp = &dp->attached_connector->hdcp; in intel_dp_hdcp2_wait_for_msg() local
374 if (msg_id == HDCP_2_2_AKE_SEND_HPRIME && !hdcp->is_paired) in intel_dp_hdcp2_wait_for_msg()
391 intel_dp_hdcp_wait_for_cp_irq(hdcp, timeout); in intel_dp_hdcp2_wait_for_msg()
422 struct intel_hdcp *hdcp = &dp->attached_connector->hdcp; in intel_dp_hdcp2_write_msg() local
438 hdcp->cp_irq_count_cached = atomic_read(&hdcp->cp_irq_count); in intel_dp_hdcp2_write_msg()
638 drm_dbg_kms(&i915->drm, "%s HDCP signalling failed (%d)\n", in intel_dp_mst_hdcp_toggle_signalling()
/Linux-v5.10/drivers/misc/mei/hdcp/
Dmei_hdcp.h14 /* me_hdcp_status: Enumeration of all HDCP Status Codes */
51 /* New status for HDCP 2.1 */
54 /* New status code for HDCP 2.2 Rx */
84 /* hdcp capable bit is not set in rx_caps(error is unique to DP) */
137 /* hdcp_command_id: Enumeration of all WIRED HDCP Command IDs */
144 /* The wired HDCP Tx commands */
170 /* HDCP HECI message header. All header values are little endian. */
184 /* Uniquely identifies the hdcp port being addressed for a given command. */
198 /* HECI struct for integrated wired HDCP Tx session initiation. */
212 /* HECI struct for ending an integrated wired HDCP Tx session. */
[all …]
Dmei_hdcp.c5 * mei_hdcp.c: HDCP client driver for mei bus
14 * The mei_hdcp driver acts as a translation layer between HDCP 2.2
33 * @data: Intel HW specific hdcp data
96 * @data: Intel HW specific hdcp data
176 * @data: Intel HW specific hdcp data
233 * @data: Intel HW specific hdcp data
292 * @data: Intel HW specific hdcp data
348 * @data: Intel HW specific hdcp data
407 * @data: Intel HW specific hdcp data
466 * @data: Intel HW specific hdcp data
[all …]
/Linux-v5.10/drivers/gpu/drm/msm/hdmi/
Dhdmi_hdcp.c21 /* QFPROM Registers for HDMI/HDCP */
217 DBG("hdcp irq %x", hdcp_int_status); in msm_hdmi_hdcp_irq()
296 * Indicates that the last HDCP HW DDC transfer failed. in msm_reset_hdcp_ddc_failures()
297 * This occurs when a transfer is attempted with HDCP DDC in msm_reset_hdcp_ddc_failures()
316 pr_info("%s: Unable to clear HDCP DDC Failure\n", in msm_reset_hdcp_ddc_failures()
319 /* Re-Enable HDCP DDC */ in msm_reset_hdcp_ddc_failures()
404 DBG("HDCP REAUTH WORK"); in msm_hdmi_hdcp_reauth_work()
407 * This is needed to reset the HDCP cipher engine so that when we in msm_hdmi_hdcp_reauth_work()
416 /* Disable HDCP interrupts */ in msm_hdmi_hdcp_reauth_work()
429 /* Disable encryption and disable the HDCP block */ in msm_hdmi_hdcp_reauth_work()
[all …]
/Linux-v5.10/drivers/gpu/drm/amd/display/amdgpu_dm/
Damdgpu_dm_hdcp.c83 DRM_WARN("Failed to get hdcp srm. HDCP TA is not initialized."); in psp_get_srm()
109 DRM_WARN("Failed to get hdcp srm. HDCP TA is not initialized."); in psp_set_srm()
178 mod_hdcp_query_display(&hdcp_w->hdcp, aconnector->base.index, &query); in hdcp_update_display()
182 mod_hdcp_remove_display(&hdcp_w->hdcp, aconnector->base.index, &hdcp_w->output); in hdcp_update_display()
187 /* Explicitly set the saved SRM as sysfs call will be after we already enabled hdcp in hdcp_update_display()
191 psp_set_srm(hdcp_work->hdcp.config.psp.handle, hdcp_work->srm, hdcp_work->srm_size, in hdcp_update_display()
214 mod_hdcp_add_display(&hdcp_w->hdcp, link, display, &hdcp_w->output); in hdcp_update_display()
229 mod_hdcp_remove_display(&hdcp_w->hdcp, aconnector->base.index, &hdcp_w->output); in hdcp_remove_display()
240 mod_hdcp_reset_connection(&hdcp_w->hdcp, &hdcp_w->output); in hdcp_reset_display()
271 mod_hdcp_process_event(&hdcp_work->hdcp, MOD_HDCP_EVENT_CALLBACK, in event_callback()
[all …]
/Linux-v5.10/drivers/gpu/drm/bridge/analogix/
Danalogix-i2c-dptx.h15 /* HDCP Status Register */
20 /* HDCP Control Register 0 */
29 /* HDCP Function Enabled */
32 /* HDCP Receiver BSTATUS Register 0 */
34 /* HDCP Receiver BSTATUS Register 1 */
37 /* HDCP Embedded "Blue Screen" Content Registers */
42 /* HDCP Wait R0 Timing Register */
45 /* HDCP Link Integrity Check Timer Register */
48 /* HDCP Repeater Ready Wait Timer Register */
51 /* HDCP Auto Timer Register */
[all …]
/Linux-v5.10/include/drm/
Di915_mei_hdcp_interface.h17 * enum hdcp_port_type - HDCP port implementation type defined by ME FW
18 * @HDCP_PORT_TYPE_INVALID: Invalid hdcp port type
33 * enum hdcp_wired_protocol - HDCP adaptation used on the port
34 * @HDCP_PROTOCOL_INVALID: Invalid HDCP adaptation protocol
35 * @HDCP_PROTOCOL_HDMI: HDMI adaptation of HDCP used on the port
36 * @HDCP_PROTOCOL_DP: DP adaptation of HDCP used on the port
79 * struct hdcp_port_data - intel specific HDCP port data
82 * @port_type: HDCP port type as per ME FW classification
83 * @protocol: HDCP adaptation as per ME FW
119 * @close_hdcp_session: Close the Wired HDCP Tx session per port.
Ddrm_hdcp.h14 /* Period of hdcp checks (to ensure we're still authenticated) */
29 /* Slave address for the HDCP registers in the receiver */
35 /* HDCP register offsets for HDMI/DVI devices */
54 * - Type0: Can be transmitted with HDCP 1.4+
55 * - Type1: Can be transmitted with HDCP 2.2+
139 * The TxCaps field specified in the HDCP HDMI, DP specs
146 /* Reserved for HDCP and DP Spec. Read as Zero */
254 * Helper functions to convert 24bit big endian hdcp sequence number to
/Linux-v5.10/drivers/gpu/drm/amd/display/modules/inc/
Dmod_hdcp.h201 /* per link events dm has to notify to hdcp module */
243 /* a query structure for a display's hdcp information */
264 enum mod_hdcp_status mod_hdcp_setup(struct mod_hdcp *hdcp,
268 enum mod_hdcp_status mod_hdcp_teardown(struct mod_hdcp *hdcp);
271 enum mod_hdcp_status mod_hdcp_add_display(struct mod_hdcp *hdcp,
276 enum mod_hdcp_status mod_hdcp_remove_display(struct mod_hdcp *hdcp,
279 /* called to query hdcp information on a specific index */
280 enum mod_hdcp_status mod_hdcp_query_display(struct mod_hdcp *hdcp,
284 enum mod_hdcp_status mod_hdcp_reset_connection(struct mod_hdcp *hdcp,
288 enum mod_hdcp_status mod_hdcp_process_event(struct mod_hdcp *hdcp,
/Linux-v5.10/drivers/gpu/drm/
Ddrm_hdcp.c263 * @drm_dev: drm_device for which HDCP revocation check is requested
264 * @ksvs: List of KSVs (HDCP receiver IDs)
267 * This function reads the HDCP System renewability Message(SRM Table)
268 * from userspace as a firmware and parses it for the revoked HDCP
277 * 1. Renewability chapter on 55th page of HDCP 1.4 specification
278 …* https://www.digital-cp.com/sites/default/files/specifications/HDCP%20Specification%20Rev1_4_Secu…
279 * 2. Renewability chapter on 63rd page of HDCP 2.2 specification
280 …* https://www.digital-cp.com/sites/default/files/specifications/HDCP%20on%20HDMI%20Specification%2…
321 { DRM_MODE_HDCP_CONTENT_TYPE0, "HDCP Type0" },
322 { DRM_MODE_HDCP_CONTENT_TYPE1, "HDCP Type1" },
[all …]
/Linux-v5.10/Documentation/driver-api/mei/
Dhdcp.rst3 HDCP:
11 according the HDCP 2.2 spec. The Intel graphics sends the created blob
19 the HDCP encryption keys to Intel graphics hardware.
24 .. kernel-doc:: drivers/misc/mei/hdcp/mei_hdcp.c
30 .. kernel-doc:: drivers/misc/mei/hdcp/mei_hdcp.c
/Linux-v5.10/Documentation/devicetree/bindings/display/
Dallwinner,sun8i-a83t-dw-hdmi.yaml55 - description: HDCP Clock
56 - description: HDCP Bus Clock
66 - const: hdcp
67 - const: hdcp-bus
74 - description: HDCP Reset
81 - const: hdcp
245 clock-names = "iahb", "isfr", "tmds", "cec", "hdcp",
246 "hdcp-bus";
248 reset-names = "ctrl", "hdcp";
/Linux-v5.10/drivers/media/i2c/
Dtda1997x_regs.h238 #define HDMI_FLAGS_HDCP BIT(4) /* HDCP detected */
296 /* HDCP DE Control */
311 /* HDCP EP Filter Control */
434 #define INTERRUPT_HDCP BIT(6) /* HDCP module */
443 #define MASK_HDCP_MTP BIT(7) /* HDCP MTP busy */
444 #define MASK_HDCP_DLMTP BIT(4) /* HDCP end download MTP to SRAM */
445 #define MASK_HDCP_DLRAM BIT(3) /* HDCP end download keys from SRAM */
446 #define MASK_HDCP_ENC BIT(2) /* HDCP ENC */
447 #define MASK_STATE_C5 BIT(1) /* HDCP State C5 reached */
475 #define MASK_HDCP_DDC_SW BIT(2) /* HDCP DDC switching finished */
[all …]
/Linux-v5.10/Documentation/devicetree/bindings/display/bridge/
Dite,it6505.yaml14 fully compliant with DisplayPort 1.1a, HDCP 1.3 specifications.
25 Each IT6505 chip comes preprogrammed with an unique HDCP key,
26 in compliance with the HDCP 1.3 standard so as to provide secure
28 purchase any HDCP keys or ROMs.

12345