Home
last modified time | relevance | path

Searched refs:hdcp (Results 1 – 25 of 47) sorted by relevance

12

/linux-6.6.21/drivers/gpu/drm/amd/display/modules/hdcp/
Dhdcp_log.h29 #define HDCP_LOG_ERR(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) argument
30 #define HDCP_LOG_VER(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) argument
31 #define HDCP_LOG_FSM(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) argument
32 #define HDCP_LOG_TOP(hdcp, ...) pr_debug("[HDCP_TOP]:"__VA_ARGS__) argument
33 #define HDCP_LOG_DDC(hdcp, ...) pr_debug("[HDCP_DDC]:"__VA_ARGS__) argument
36 #define HDCP_ERROR_TRACE(hdcp, status) \ argument
37 HDCP_LOG_ERR(hdcp, \
39 hdcp->config.index, \
41 mod_hdcp_state_id_to_str(hdcp->state.id), \
42 hdcp->state.stay_count)
[all …]
Dhdcp_ddc.c150 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()
209 static enum mod_hdcp_status write(struct mod_hdcp *hdcp, in write() argument
218 if (is_dp_hdcp(hdcp)) { in write()
221 success = hdcp->config.ddc.funcs.write_dpcd( in write()
[all …]
Dhdcp.c28 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 if (hdcp->connection.hdcp1_retry_count == MAX_NUM_OF_ATTEMPTS) in push_error_status()
43 hdcp->connection.link.adjust.hdcp1.disable = 1; in push_error_status()
44 } else if (is_hdcp2(hdcp)) { in push_error_status()
45 hdcp->connection.hdcp2_retry_count++; in push_error_status()
[all …]
Dhdcp_log.c54 void mod_hdcp_log_ddc_trace(struct mod_hdcp *hdcp) in mod_hdcp_log_ddc_trace() argument
56 if (is_hdcp1(hdcp)) { in mod_hdcp_log_ddc_trace()
57 HDCP_DDC_READ_TRACE(hdcp, "BKSV", hdcp->auth.msg.hdcp1.bksv, in mod_hdcp_log_ddc_trace()
58 sizeof(hdcp->auth.msg.hdcp1.bksv)); in mod_hdcp_log_ddc_trace()
59 HDCP_DDC_READ_TRACE(hdcp, "BCAPS", &hdcp->auth.msg.hdcp1.bcaps, in mod_hdcp_log_ddc_trace()
60 sizeof(hdcp->auth.msg.hdcp1.bcaps)); in mod_hdcp_log_ddc_trace()
61 HDCP_DDC_READ_TRACE(hdcp, "BSTATUS", in mod_hdcp_log_ddc_trace()
62 (uint8_t *)&hdcp->auth.msg.hdcp1.bstatus, in mod_hdcp_log_ddc_trace()
63 sizeof(hdcp->auth.msg.hdcp1.bstatus)); in mod_hdcp_log_ddc_trace()
64 HDCP_DDC_WRITE_TRACE(hdcp, "AN", hdcp->auth.msg.hdcp1.an, in mod_hdcp_log_ddc_trace()
[all …]
Dhdcp2_execution.c30 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()
50 HDCP_2_2_DP_HDCP_CAPABLE(hdcp->auth.msg.hdcp2.rxcaps_dp[2]) ? 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.c28 static inline enum mod_hdcp_status validate_bksv(struct mod_hdcp *hdcp) in validate_bksv() argument
34 memcpy(bksv, hdcp->auth.msg.hdcp1.bksv, sizeof(hdcp->auth.msg.hdcp1.bksv)); in validate_bksv()
45 static inline enum mod_hdcp_status check_ksv_ready(struct mod_hdcp *hdcp) in check_ksv_ready() argument
47 if (is_dp_hdcp(hdcp)) in check_ksv_ready()
48 return (hdcp->auth.msg.hdcp1.bstatus & DP_BSTATUS_READY) ? in check_ksv_ready()
51 return (hdcp->auth.msg.hdcp1.bcaps & DRM_HDCP_DDC_BCAPS_KSV_FIFO_READY) ? in check_ksv_ready()
56 static inline enum mod_hdcp_status check_hdcp_capable_dp(struct mod_hdcp *hdcp) in check_hdcp_capable_dp() argument
58 return (hdcp->auth.msg.hdcp1.bcaps & DP_BCAPS_HDCP_CAPABLE) ? in check_hdcp_capable_dp()
63 static inline enum mod_hdcp_status check_r0p_available_dp(struct mod_hdcp *hdcp) in check_r0p_available_dp() argument
66 if (is_dp_hdcp(hdcp)) { in check_r0p_available_dp()
[all …]
Dhdcp2_transition.c28 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()
78 increment_stay_counter(hdcp); in mod_hdcp_hdcp2_transition()
93 set_state_id(hdcp, output, H2_A1_SEND_STORED_KM); in mod_hdcp_hdcp2_transition()
[all …]
Dhdcp_psp.c34 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()
49 struct mod_hdcp *hdcp, uint8_t index) in remove_display_from_topology_v2() argument
51 struct psp_context *psp = hdcp->config.psp.handle; in remove_display_from_topology_v2()
54 get_active_display_at_index(hdcp, index); in remove_display_from_topology_v2()
77 HDCP_TOP_REMOVE_DISPLAY_TRACE(hdcp, display->index); in remove_display_from_topology_v2()
85 struct mod_hdcp *hdcp, uint8_t index) in remove_display_from_topology_v3() argument
87 struct psp_context *psp = hdcp->config.psp.handle; in remove_display_from_topology_v3()
90 get_active_display_at_index(hdcp, index); in remove_display_from_topology_v3()
111 status = remove_display_from_topology_v2(hdcp, index); in remove_display_from_topology_v3()
[all …]
Dhdcp1_transition.c28 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()
91 set_state_id(hdcp, output, H1_A45_AUTHENTICATED); in mod_hdcp_hdcp1_transition()
[all …]
DMakefile26 HDCP = hdcp_ddc.o hdcp_log.o hdcp_psp.o hdcp.o \
30 AMD_DAL_HDCP = $(addprefix $(AMDDALPATH)/modules/hdcp/,$(HDCP))
/linux-6.6.21/drivers/gpu/drm/i915/display/
Dintel_hdcp.c97 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_prepare_streams() local
100 data->streams[0].stream_type = hdcp->content_type; in intel_hdcp_prepare_streams()
146 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_capable()
168 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp2_capable() local
172 if (!hdcp->hdcp2_supported) in intel_hdcp2_capable()
188 mutex_lock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp2_capable()
189 if (!i915->display.hdcp.comp_added || !i915->display.hdcp.arbiter) { in intel_hdcp2_capable()
190 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp2_capable()
193 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp2_capable()
196 hdcp->shim->hdcp_2_2_capable(dig_port, &capable); in intel_hdcp2_capable()
[all …]
Dintel_dp_hdcp.c39 static void intel_dp_hdcp_wait_for_cp_irq(struct intel_hdcp *hdcp, int timeout) in intel_dp_hdcp_wait_for_cp_irq() argument
43 #define C (hdcp->cp_irq_count_cached != atomic_read(&hdcp->cp_irq_count)) in intel_dp_hdcp_wait_for_cp_irq()
44 ret = wait_event_interruptible_timeout(hdcp->cp_irq_queue, C, in intel_dp_hdcp_wait_for_cp_irq()
391 struct intel_hdcp *hdcp = &dp->attached_connector->hdcp; in intel_dp_hdcp2_wait_for_msg() local
396 if (msg_id == HDCP_2_2_AKE_SEND_HPRIME && !hdcp->is_paired) in intel_dp_hdcp2_wait_for_msg()
413 intel_dp_hdcp_wait_for_cp_irq(hdcp, timeout); in intel_dp_hdcp2_wait_for_msg()
502 struct intel_hdcp *hdcp = &dp->attached_connector->hdcp; in intel_dp_hdcp2_read_msg() local
520 hdcp->cp_irq_count_cached = atomic_read(&hdcp->cp_irq_count); in intel_dp_hdcp2_read_msg()
671 struct intel_hdcp *hdcp = &connector->hdcp; in intel_dp_mst_toggle_hdcp_stream_select() local
675 hdcp->stream_transcoder, enable, in intel_dp_mst_toggle_hdcp_stream_select()
[all …]
Dintel_hdcp_gsc.c684 i915->display.hdcp.hdcp_message = hdcp_message; in intel_hdcp_gsc_hdcp2_init()
696 i915->display.hdcp.hdcp_message; in intel_hdcp_gsc_free_message()
713 mutex_lock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp_gsc_init()
714 i915->display.hdcp.arbiter = data; in intel_hdcp_gsc_init()
715 i915->display.hdcp.arbiter->hdcp_dev = i915->drm.dev; in intel_hdcp_gsc_init()
716 i915->display.hdcp.arbiter->ops = &gsc_hdcp_ops; in intel_hdcp_gsc_init()
718 mutex_unlock(&i915->display.hdcp.hdcp_mutex); in intel_hdcp_gsc_init()
726 kfree(i915->display.hdcp.arbiter); in intel_hdcp_gsc_fini()
797 hdcp_message = i915->display.hdcp.hdcp_message; in intel_hdcp_gsc_msg_send()
/linux-6.6.21/drivers/gpu/drm/bridge/cadence/
Dcdns-mhdp8546-hdcp.c438 mutex_lock(&mhdp->hdcp.mutex); in cdns_mhdp_hdcp_check_link()
439 if (mhdp->hdcp.value == DRM_MODE_CONTENT_PROTECTION_UNDESIRED) in cdns_mhdp_hdcp_check_link()
452 mhdp->hdcp.value = DRM_MODE_CONTENT_PROTECTION_DESIRED; in cdns_mhdp_hdcp_check_link()
453 schedule_work(&mhdp->hdcp.prop_work); in cdns_mhdp_hdcp_check_link()
457 ret = _cdns_mhdp_hdcp_enable(mhdp, mhdp->hdcp.hdcp_content_type); in cdns_mhdp_hdcp_check_link()
459 mhdp->hdcp.value = DRM_MODE_CONTENT_PROTECTION_DESIRED; in cdns_mhdp_hdcp_check_link()
460 schedule_work(&mhdp->hdcp.prop_work); in cdns_mhdp_hdcp_check_link()
463 mutex_unlock(&mhdp->hdcp.mutex); in cdns_mhdp_hdcp_check_link()
470 struct cdns_mhdp_hdcp *hdcp = container_of(d_work, in cdns_mhdp_hdcp_check_work() local
473 struct cdns_mhdp_device *mhdp = container_of(hdcp, in cdns_mhdp_hdcp_check_work()
[all …]
DMakefile6 cdns-mhdp8546-y := cdns-mhdp8546-core.o cdns-mhdp8546-hdcp.o
/linux-6.6.21/drivers/gpu/drm/amd/display/modules/inc/
Dmod_hdcp.h282 enum mod_hdcp_status mod_hdcp_setup(struct mod_hdcp *hdcp,
286 enum mod_hdcp_status mod_hdcp_teardown(struct mod_hdcp *hdcp);
289 enum mod_hdcp_status mod_hdcp_add_display(struct mod_hdcp *hdcp,
294 enum mod_hdcp_status mod_hdcp_remove_display(struct mod_hdcp *hdcp,
298 enum mod_hdcp_status mod_hdcp_update_display(struct mod_hdcp *hdcp,
305 enum mod_hdcp_status mod_hdcp_query_display(struct mod_hdcp *hdcp,
309 enum mod_hdcp_status mod_hdcp_reset_connection(struct mod_hdcp *hdcp,
313 enum mod_hdcp_status mod_hdcp_process_event(struct mod_hdcp *hdcp,
/linux-6.6.21/drivers/gpu/drm/amd/display/amdgpu_dm/
Damdgpu_dm_hdcp.c186 psp_set_srm(hdcp_work->hdcp.config.psp.handle, hdcp_work->srm, in hdcp_update_display()
209 mod_hdcp_update_display(&hdcp_w->hdcp, conn_index, &link_adjust, &display_adjust, &hdcp_w->output); in hdcp_update_display()
239 mod_hdcp_remove_display(&hdcp_w->hdcp, aconnector->base.index, &hdcp_w->output); in hdcp_remove_display()
252 mod_hdcp_reset_connection(&hdcp_w->hdcp, &hdcp_w->output); in hdcp_reset_display()
284 mod_hdcp_process_event(&hdcp_work->hdcp, MOD_HDCP_EVENT_CALLBACK, in event_callback()
388 mod_hdcp_query_display(&hdcp_work->hdcp, aconnector->base.index, in event_property_validate()
427 mod_hdcp_process_event(&hdcp_work->hdcp, in event_watchdog_timer()
444 mod_hdcp_process_event(&hdcp_work->hdcp, MOD_HDCP_EVENT_CPIRQ, &hdcp_work->output); in event_cpirq()
469 struct mod_hdcp hdcp = hdcp_work->hdcp; in enable_assr() local
470 struct psp_context *psp = hdcp.config.psp.handle; in enable_assr()
[all …]
Damdgpu_dm_hdcp.h49 struct mod_hdcp hdcp; member
/linux-6.6.21/Documentation/devicetree/bindings/display/
Dallwinner,sun8i-a83t-dw-hdmi.yaml64 - const: hdcp
65 - const: hdcp-bus
77 - const: hdcp
227 clock-names = "iahb", "isfr", "tmds", "cec", "hdcp",
228 "hdcp-bus";
230 reset-names = "ctrl", "hdcp";
/linux-6.6.21/drivers/gpu/drm/amd/display/
DMakefile39 subdir-ccflags-y += -I$(FULL_AMD_DISPLAY_PATH)/modules/hdcp
46 DAL_LIBS += modules/hdcp
/linux-6.6.21/Documentation/driver-api/mei/
Dhdcp.rst24 .. kernel-doc:: drivers/misc/mei/hdcp/mei_hdcp.c
30 .. kernel-doc:: drivers/misc/mei/hdcp/mei_hdcp.c
/linux-6.6.21/drivers/gpu/drm/amd/display/dc/hdcp/
DMakefile26 AMD_DAL_HDCP_MSG = $(addprefix $(AMDDALPATH)/dc/hdcp/,$(HDCP_MSG))
/linux-6.6.21/drivers/misc/mei/
DMakefile31 obj-$(CONFIG_INTEL_MEI_HDCP) += hdcp/
/linux-6.6.21/drivers/gpu/drm/amd/display/dc/
DMakefile58 DC_LIBS += hdcp

12