Home
last modified time | relevance | path

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

12

/linux/drivers/gpu/drm/amd/display/modules/hdcp/
H A 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
34 #define HDCP_LOG_TRA(hdcp) do {} while (0) argument
37 #define HDCP_ERROR_TRACE(hdcp, status) \ argument
38 HDCP_LOG_ERR(hdcp, \
40 hdcp->config.index, \
42 mod_hdcp_state_id_to_str(hdcp->state.id), \
[all …]
H A Dhdcp_ddc.c152 static enum mod_hdcp_status read(struct mod_hdcp *hdcp, in read() argument
165 if (is_dp_hdcp(hdcp)) { in read()
172 success = hdcp->config.ddc.funcs.read_dpcd(hdcp->config.ddc.handle, in read()
188 success = hdcp->config.ddc.funcs.read_i2c( in read()
189 hdcp->config.ddc.handle, in read()
199 static enum mod_hdcp_status read_repeatedly(struct mod_hdcp *hdcp, in read_repeatedly() argument
211 status = read(hdcp, msg_id, buf + data_offset, cur_size); in read_repeatedly()
223 static enum mod_hdcp_status write(struct mod_hdcp *hdcp, in write() argument
236 if (is_dp_hdcp(hdcp)) { in write()
243 success = hdcp->config.ddc.funcs.write_dpcd( in write()
[all …]
H A 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()
32 const uint8_t retry_limit = hdcp->connection.link.adjust.retry_limit; in push_error_status()
36 trace->errors[trace->error_count].state_id = hdcp->state.id; in push_error_status()
38 HDCP_ERROR_TRACE(hdcp, status); in push_error_status()
41 if (is_hdcp1(hdcp)) { in push_error_status()
42 hdcp->connection.hdcp1_retry_count++; in push_error_status()
43 if (hdcp->connection.hdcp1_retry_count == retry_limit) in push_error_status()
44 hdcp->connection.link.adjust.hdcp1.disable = 1; in push_error_status()
45 } else if (is_hdcp2(hdcp)) { in push_error_status()
[all …]
H A 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 …]
H A Dhdcp2_execution.c35 static inline enum mod_hdcp_status check_receiver_id_list_ready(struct mod_hdcp *hdcp) in check_receiver_id_list_ready() argument
39 if (is_dp_hdcp(hdcp)) in check_receiver_id_list_ready()
40 is_ready = HDCP_2_2_DP_RXSTATUS_READY(hdcp->auth.msg.hdcp2.rxstatus_dp) ? 1 : 0; in check_receiver_id_list_ready()
42 is_ready = (HDCP_2_2_HDMI_RXSTATUS_READY(hdcp->auth.msg.hdcp2.rxstatus[1]) && in check_receiver_id_list_ready()
43 get_hdmi_rxstatus_msg_size(hdcp->auth.msg.hdcp2.rxstatus) != 0) ? 1 : 0; in check_receiver_id_list_ready()
48 static inline enum mod_hdcp_status check_hdcp2_capable(struct mod_hdcp *hdcp) in check_hdcp2_capable() argument
51 struct mod_hdcp_trace *trace = &hdcp->connection.trace; in check_hdcp2_capable()
53 if (is_dp_hdcp(hdcp)) in check_hdcp2_capable()
54 status = (hdcp->auth.msg.hdcp2.rxcaps_dp[0] == HDCP_2_2_RX_CAPS_VERSION_VAL) && in check_hdcp2_capable()
55 HDCP_2_2_DP_HDCP_CAPABLE(hdcp->auth.msg.hdcp2.rxcaps_dp[2]) ? in check_hdcp2_capable()
[all …]
H A Dhdcp1_execution.c28 static inline enum mod_hdcp_status validate_bksv(struct mod_hdcp *hdcp) in validate_bksv() argument
35 memcpy(bksv, hdcp->auth.msg.hdcp1.bksv, sizeof(hdcp->auth.msg.hdcp1.bksv)); in validate_bksv()
44 hdcp->connection.trace.hdcp1.attempt_count++; in validate_bksv()
52 static inline enum mod_hdcp_status check_ksv_ready(struct mod_hdcp *hdcp) in check_ksv_ready() argument
54 if (is_dp_hdcp(hdcp)) in check_ksv_ready()
55 return (hdcp->auth.msg.hdcp1.bstatus & DP_BSTATUS_READY) ? in check_ksv_ready()
58 return (hdcp->auth.msg.hdcp1.bcaps & DRM_HDCP_DDC_BCAPS_KSV_FIFO_READY) ? in check_ksv_ready()
63 static inline enum mod_hdcp_status check_hdcp_capable_dp(struct mod_hdcp *hdcp) in check_hdcp_capable_dp() argument
65 return (hdcp->auth.msg.hdcp1.bcaps & DP_BCAPS_HDCP_CAPABLE) ? in check_hdcp_capable_dp()
70 static inline enum mod_hdcp_status check_r0p_available_dp(struct mod_hdcp *hdcp) in check_r0p_available_dp() argument
[all …]
H A Dhdcp.h290 typedef enum mod_hdcp_status (*mod_hdcp_action)(struct mod_hdcp *hdcp);
293 enum mod_hdcp_status *status, struct mod_hdcp *hdcp, char *str);
294 enum mod_hdcp_status mod_hdcp_hdcp1_execution(struct mod_hdcp *hdcp,
297 enum mod_hdcp_status mod_hdcp_hdcp1_dp_execution(struct mod_hdcp *hdcp,
300 enum mod_hdcp_status mod_hdcp_hdcp1_transition(struct mod_hdcp *hdcp,
304 enum mod_hdcp_status mod_hdcp_hdcp1_dp_transition(struct mod_hdcp *hdcp,
310 enum mod_hdcp_status mod_hdcp_hdcp2_execution(struct mod_hdcp *hdcp,
313 enum mod_hdcp_status mod_hdcp_hdcp2_dp_execution(struct mod_hdcp *hdcp,
316 enum mod_hdcp_status mod_hdcp_hdcp2_transition(struct mod_hdcp *hdcp,
320 enum mod_hdcp_status mod_hdcp_hdcp2_dp_transition(struct mod_hdcp *hdcp,
[all …]
H A 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 …]
H A 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 …]
H A 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 …]
H A DMakefile26 HDCP = hdcp_ddc.o hdcp_log.o hdcp_psp.o hdcp.o \
30 AMD_DAL_HDCP = $(addprefix $(AMDDALPATH)/modules/hdcp/,$(HDCP))
/linux/drivers/gpu/drm/i915/display/
H A Dintel_hdcp.c46 struct intel_hdcp *hdcp, in intel_hdcp_adjust_hdcp_line_rekeying() argument
58 rekey_reg = TRANS_DDI_FUNC_CTL(display, hdcp->cpu_transcoder); in intel_hdcp_adjust_hdcp_line_rekeying()
62 rekey_reg = TRANS_DDI_FUNC_CTL(display, hdcp->cpu_transcoder); in intel_hdcp_adjust_hdcp_line_rekeying()
65 rekey_reg = CHICKEN_TRANS(display, hdcp->cpu_transcoder); in intel_hdcp_adjust_hdcp_line_rekeying()
119 struct hdcp_port_data *data = &dig_port->hdcp.port_data; in intel_hdcp_required_content_stream()
123 if (dig_port->hdcp.auth_status) in intel_hdcp_required_content_stream()
128 if (!dig_port->hdcp.mst_type1_capable) in intel_hdcp_required_content_stream()
171 struct hdcp_port_data *data = &dig_port->hdcp.port_data; in intel_hdcp_prepare_streams()
172 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_prepare_streams() local
179 data->streams[0].stream_type = hdcp->content_type; in intel_hdcp_prepare_streams()
[all …]
H A Dintel_dp_hdcp.c45 struct intel_hdcp *hdcp = &dp->attached_connector->hdcp; in intel_dp_hdcp_wait_for_cp_irq() local
48 #define C (hdcp->cp_irq_count_cached != atomic_read(&hdcp->cp_irq_count)) in intel_dp_hdcp_wait_for_cp_irq()
49 ret = wait_event_interruptible_timeout(hdcp->cp_irq_queue, C, in intel_dp_hdcp_wait_for_cp_irq()
404 struct intel_hdcp *hdcp = &dp->attached_connector->hdcp; in intel_dp_hdcp2_wait_for_msg() local
409 if (msg_id == HDCP_2_2_AKE_SEND_HPRIME && !hdcp->is_paired) in intel_dp_hdcp2_wait_for_msg()
522 struct intel_hdcp *hdcp = &dp->attached_connector->hdcp; in intel_dp_hdcp2_read_msg() local
540 hdcp->cp_irq_count_cached = atomic_read(&hdcp->cp_irq_count); in intel_dp_hdcp2_read_msg()
752 struct intel_hdcp *hdcp = &connector->hdcp; in intel_dp_mst_toggle_hdcp_stream_select() local
756 hdcp->stream_transcoder, enable, in intel_dp_mst_toggle_hdcp_stream_select()
770 struct intel_hdcp *hdcp = &connector->hdcp; in intel_dp_mst_hdcp_stream_encryption() local
[all …]
H A Dintel_hdcp_gsc_message.c34 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_initiate_session()
92 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_verify_receiver_cert_prepare_km()
156 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_verify_hprime()
205 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_store_pairing_info()
257 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_initiate_locality_check()
306 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_verify_lprime()
358 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_get_session_key()
413 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_repeater_check_flow_prepare_ack()
476 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_verify_mprime()
539 gsc_context = display->hdcp.gsc_context; in intel_hdcp_gsc_enable_authentication()
[all …]
H A Dintel_encoder.c120 mutex_init(&dig_port->hdcp.mutex); in intel_dig_port_alloc()
/linux/drivers/gpu/drm/bridge/cadence/
H A 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 …]
H A DMakefile6 cdns-mhdp8546-y := cdns-mhdp8546-core.o cdns-mhdp8546-hdcp.o
/linux/drivers/gpu/drm/amd/display/modules/inc/
H A Dmod_hdcp.h333 enum mod_hdcp_status mod_hdcp_setup(struct mod_hdcp *hdcp,
337 enum mod_hdcp_status mod_hdcp_teardown(struct mod_hdcp *hdcp);
340 enum mod_hdcp_status mod_hdcp_add_display(struct mod_hdcp *hdcp,
345 enum mod_hdcp_status mod_hdcp_remove_display(struct mod_hdcp *hdcp,
349 enum mod_hdcp_status mod_hdcp_update_display(struct mod_hdcp *hdcp,
356 enum mod_hdcp_status mod_hdcp_query_display(struct mod_hdcp *hdcp,
360 enum mod_hdcp_status mod_hdcp_reset_connection(struct mod_hdcp *hdcp,
364 enum mod_hdcp_status mod_hdcp_process_event(struct mod_hdcp *hdcp,
/linux/drivers/gpu/drm/amd/display/amdgpu_dm/
H A Damdgpu_dm_hdcp.c220 psp_set_srm(hdcp_work->hdcp.config.psp.handle, hdcp_work->srm, in hdcp_update_display()
247 mod_hdcp_update_display(&hdcp_w->hdcp, conn_index, &link_adjust, &display_adjust, &hdcp_w->output); in hdcp_update_display()
275 mod_hdcp_remove_display(&hdcp_w->hdcp, aconnector->base.index, &hdcp_w->output); in hdcp_remove_display()
290 mod_hdcp_reset_connection(&hdcp_w->hdcp, &hdcp_w->output); in hdcp_reset_display()
324 mod_hdcp_process_event(&hdcp_work->hdcp, MOD_HDCP_EVENT_CALLBACK, in event_callback()
425 mod_hdcp_query_display(&hdcp_work->hdcp, aconnector->base.index, in event_property_validate()
462 mod_hdcp_process_event(&hdcp_work->hdcp, in event_watchdog_timer()
477 mod_hdcp_process_event(&hdcp_work->hdcp, MOD_HDCP_EVENT_CPIRQ, &hdcp_work->output); in event_cpirq()
501 struct mod_hdcp hdcp = hdcp_work->hdcp; in enable_assr() local
502 struct psp_context *psp = hdcp.config.psp.handle; in enable_assr()
[all …]
H A Damdgpu_dm_hdcp.h50 struct mod_hdcp hdcp; member
/linux/Documentation/driver-api/mei/
H A Dhdcp.rst24 .. kernel-doc:: drivers/misc/mei/hdcp/mei_hdcp.c
30 .. kernel-doc:: drivers/misc/mei/hdcp/mei_hdcp.c
/linux/drivers/gpu/drm/amd/display/
H A DMakefile55 subdir-ccflags-y += -I$(FULL_AMD_DISPLAY_PATH)/modules/hdcp
62 DAL_LIBS += modules/hdcp
/linux/drivers/gpu/drm/amd/display/dc/hdcp/
H A DMakefile26 AMD_DAL_HDCP_MSG = $(addprefix $(AMDDALPATH)/dc/hdcp/,$(HDCP_MSG))
/linux/drivers/misc/mei/
H A DMakefile31 obj-$(CONFIG_INTEL_MEI_HDCP) += hdcp/
/linux/drivers/gpu/drm/amd/display/dc/
H A DMakefile53 DC_LIBS += hdcp

12