/kernel/linux/linux-5.10/drivers/gpu/drm/amd/display/modules/hdcp/ |
H A D | hdcp_log.h | 30 #define HDCP_LOG_ERR(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) 31 #define HDCP_LOG_VER(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) 32 #define HDCP_LOG_FSM(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) 33 #define HDCP_LOG_TOP(hdcp, ...) pr_debug("[HDCP_TOP]:"__VA_ARGS__) 34 #define HDCP_LOG_DDC(hdcp, ...) pr_debug("[HDCP_DDC]:"__VA_ARGS__) 38 #define HDCP_ERROR_TRACE(hdcp, status) \ 39 HDCP_LOG_ERR(hdcp, \ 41 hdcp->config.index, \ 43 mod_hdcp_state_id_to_str(hdcp->state.id), \ 44 hdcp [all...] |
H A D | hdcp_ddc.c | 26 #include "hdcp.h" 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() 209 static enum mod_hdcp_status write(struct mod_hdcp *hdcp, in write() argument 246 mod_hdcp_read_bksv(struct mod_hdcp *hdcp) mod_hdcp_read_bksv() argument 253 mod_hdcp_read_bcaps(struct mod_hdcp *hdcp) mod_hdcp_read_bcaps() argument 260 mod_hdcp_read_bstatus(struct mod_hdcp *hdcp) mod_hdcp_read_bstatus() argument 275 mod_hdcp_read_r0p(struct mod_hdcp *hdcp) mod_hdcp_read_r0p() argument 283 mod_hdcp_read_ksvlist(struct mod_hdcp *hdcp) mod_hdcp_read_ksvlist() argument 299 mod_hdcp_read_vp(struct mod_hdcp *hdcp) mod_hdcp_read_vp() argument 329 mod_hdcp_read_binfo(struct mod_hdcp *hdcp) mod_hdcp_read_binfo() argument 343 mod_hdcp_write_aksv(struct mod_hdcp *hdcp) mod_hdcp_write_aksv() argument 350 mod_hdcp_write_ainfo(struct mod_hdcp *hdcp) mod_hdcp_write_ainfo() argument 357 mod_hdcp_write_an(struct mod_hdcp *hdcp) mod_hdcp_write_an() argument 364 mod_hdcp_read_hdcp2version(struct mod_hdcp *hdcp) mod_hdcp_read_hdcp2version() argument 378 mod_hdcp_read_rxcaps(struct mod_hdcp *hdcp) mod_hdcp_read_rxcaps() argument 392 mod_hdcp_read_rxstatus(struct mod_hdcp *hdcp) mod_hdcp_read_rxstatus() argument 408 mod_hdcp_read_ake_cert(struct mod_hdcp *hdcp) mod_hdcp_read_ake_cert() argument 426 mod_hdcp_read_h_prime(struct mod_hdcp *hdcp) mod_hdcp_read_h_prime() argument 444 mod_hdcp_read_pairing_info(struct mod_hdcp *hdcp) mod_hdcp_read_pairing_info() argument 462 mod_hdcp_read_l_prime(struct mod_hdcp *hdcp) mod_hdcp_read_l_prime() argument 480 mod_hdcp_read_rx_id_list(struct mod_hdcp *hdcp) mod_hdcp_read_rx_id_list() argument 511 mod_hdcp_read_stream_ready(struct mod_hdcp *hdcp) mod_hdcp_read_stream_ready() argument 529 mod_hdcp_write_ake_init(struct mod_hdcp *hdcp) mod_hdcp_write_ake_init() argument 544 mod_hdcp_write_no_stored_km(struct mod_hdcp *hdcp) mod_hdcp_write_no_stored_km() argument 559 mod_hdcp_write_stored_km(struct mod_hdcp *hdcp) mod_hdcp_write_stored_km() argument 574 mod_hdcp_write_lc_init(struct mod_hdcp *hdcp) mod_hdcp_write_lc_init() argument 589 mod_hdcp_write_eks(struct mod_hdcp *hdcp) mod_hdcp_write_eks() argument 606 mod_hdcp_write_repeater_auth_ack(struct mod_hdcp *hdcp) mod_hdcp_write_repeater_auth_ack() argument 621 mod_hdcp_write_stream_manage(struct mod_hdcp *hdcp) mod_hdcp_write_stream_manage() argument 638 mod_hdcp_write_content_type(struct mod_hdcp *hdcp) mod_hdcp_write_content_type() argument 651 mod_hdcp_clear_cp_irq_status(struct mod_hdcp *hdcp) mod_hdcp_clear_cp_irq_status() argument [all...] |
H A D | hdcp.c | 26 #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 68 is_cp_desired_hdcp2(struct mod_hdcp *hdcp) is_cp_desired_hdcp2() argument 89 execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, union mod_hdcp_transition_input *input) execution() argument 125 transition(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, union mod_hdcp_transition_input *input, struct mod_hdcp_output *output) transition() argument 183 reset_authentication(struct mod_hdcp *hdcp, struct mod_hdcp_output *output) reset_authentication() argument 229 reset_connection(struct mod_hdcp *hdcp, struct mod_hdcp_output *output) reset_connection() argument 257 mod_hdcp_setup(struct mod_hdcp *hdcp, struct mod_hdcp_config *config) mod_hdcp_setup() argument 272 mod_hdcp_teardown(struct mod_hdcp *hdcp) mod_hdcp_teardown() argument 287 mod_hdcp_add_display(struct mod_hdcp *hdcp, struct mod_hdcp_link *link, struct mod_hdcp_display *display, struct mod_hdcp_output *output) mod_hdcp_add_display() argument 346 mod_hdcp_remove_display(struct mod_hdcp *hdcp, uint8_t index, struct mod_hdcp_output *output) mod_hdcp_remove_display() argument 389 mod_hdcp_query_display(struct mod_hdcp *hdcp, uint8_t index, struct mod_hdcp_display_query *query) mod_hdcp_query_display() argument 427 mod_hdcp_reset_connection(struct mod_hdcp *hdcp, struct mod_hdcp_output *output) mod_hdcp_reset_connection() argument 440 mod_hdcp_process_event(struct mod_hdcp *hdcp, enum mod_hdcp_event event, struct mod_hdcp_output *output) mod_hdcp_process_event() argument [all...] |
H A D | hdcp.h | 289 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, 392 is_dp_hdcp(struct mod_hdcp *hdcp) is_dp_hdcp() argument 397 is_dp_mst_hdcp(struct mod_hdcp *hdcp) is_dp_mst_hdcp() argument 403 is_hdmi_dvi_sl_hdcp(struct mod_hdcp *hdcp) is_hdmi_dvi_sl_hdcp() argument 409 current_state(struct mod_hdcp *hdcp) current_state() argument 414 set_state_id(struct mod_hdcp *hdcp, struct mod_hdcp_output *output, uint8_t id) set_state_id() argument 425 is_in_hdcp1_states(struct mod_hdcp *hdcp) is_in_hdcp1_states() argument 431 is_in_hdcp1_dp_states(struct mod_hdcp *hdcp) is_in_hdcp1_dp_states() argument 437 is_in_hdcp2_states(struct mod_hdcp *hdcp) is_in_hdcp2_states() argument 443 is_in_hdcp2_dp_states(struct mod_hdcp *hdcp) is_in_hdcp2_dp_states() argument 449 is_hdcp1(struct mod_hdcp *hdcp) is_hdcp1() argument 454 is_hdcp2(struct mod_hdcp *hdcp) is_hdcp2() argument 459 is_in_cp_not_desired_state(struct mod_hdcp *hdcp) is_in_cp_not_desired_state() argument 464 is_in_initialized_state(struct mod_hdcp *hdcp) is_in_initialized_state() argument 470 increment_stay_counter(struct mod_hdcp *hdcp) increment_stay_counter() argument 492 set_watchdog_in_ms(struct mod_hdcp *hdcp, uint16_t time, struct mod_hdcp_output *output) set_watchdog_in_ms() argument 510 get_active_display_count(struct mod_hdcp *hdcp) get_active_display_count() argument 521 get_first_active_display( struct mod_hdcp *hdcp) get_first_active_display() argument 535 get_active_display_at_index( struct mod_hdcp *hdcp, uint8_t index) get_active_display_at_index() argument 550 get_empty_display_container( struct mod_hdcp *hdcp) get_empty_display_container() argument 564 reset_retry_counts(struct mod_hdcp *hdcp) reset_retry_counts() argument [all...] |
H A D | hdcp2_execution.c | 28 #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 in check_hdcp2_capable() 60 check_reauthentication_request( struct mod_hdcp *hdcp) check_reauthentication_request() argument 76 check_link_integrity_failure_dp( struct mod_hdcp *hdcp) check_link_integrity_failure_dp() argument 84 check_ake_cert_available(struct mod_hdcp *hdcp) check_ake_cert_available() argument 104 check_h_prime_available(struct mod_hdcp *hdcp) check_h_prime_available() argument 128 check_pairing_info_available(struct mod_hdcp *hdcp) check_pairing_info_available() argument 152 poll_l_prime_available(struct mod_hdcp *hdcp) poll_l_prime_available() argument 181 check_stream_ready_available(struct mod_hdcp *hdcp) check_stream_ready_available() argument 202 get_device_count(struct mod_hdcp *hdcp) get_device_count() argument 208 check_device_count(struct mod_hdcp *hdcp) check_device_count() argument 216 process_rxstatus(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input, enum mod_hdcp_status *status) process_rxstatus() argument 252 known_hdcp2_capable_rx(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) known_hdcp2_capable_rx() argument 275 send_ake_init(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_ake_init() argument 302 validate_ake_cert(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) validate_ake_cert() argument 332 send_no_stored_km(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_no_stored_km() argument 351 read_h_prime(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) read_h_prime() argument 377 read_pairing_info_and_validate_h_prime( struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) read_pairing_info_and_validate_h_prime() argument 407 send_stored_km(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_stored_km() argument 426 validate_h_prime(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) validate_h_prime() argument 455 locality_check(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) locality_check() argument 493 exchange_ks_and_test_for_repeater(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) exchange_ks_and_test_for_repeater() argument 516 enable_encryption(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) enable_encryption() argument 553 authenticated(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) authenticated() argument 573 wait_for_rx_id_list(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) wait_for_rx_id_list() argument 596 verify_rx_id_list_and_send_ack(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) verify_rx_id_list_and_send_ack() argument 632 send_stream_management(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_stream_management() argument 667 validate_stream_ready(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) validate_stream_ready() argument 709 determine_rx_hdcp_capable_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) determine_rx_hdcp_capable_dp() argument 732 send_content_stream_type_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_content_stream_type_dp() argument 754 mod_hdcp_hdcp2_execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) mod_hdcp_hdcp2_execution() argument 818 mod_hdcp_hdcp2_dp_execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) mod_hdcp_hdcp2_dp_execution() argument [all...] |
H A D | hdcp1_execution.c | 26 #include "hdcp.h" 28 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 in check_hdcp_capable_dp() 63 check_r0p_available_dp(struct mod_hdcp *hdcp) check_r0p_available_dp() argument 77 check_link_integrity_dp( struct mod_hdcp *hdcp) check_link_integrity_dp() argument 86 check_no_reauthentication_request_dp( struct mod_hdcp *hdcp) check_no_reauthentication_request_dp() argument 94 check_no_max_cascade(struct mod_hdcp *hdcp) check_no_max_cascade() argument 109 check_no_max_devs(struct mod_hdcp *hdcp) check_no_max_devs() argument 124 get_device_count(struct mod_hdcp *hdcp) get_device_count() argument 131 check_device_count(struct mod_hdcp *hdcp) check_device_count() argument 139 wait_for_active_rx(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) wait_for_active_rx() argument 162 exchange_ksvs(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) exchange_ksvs() argument 203 computations_validate_rx_test_for_repeater( struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) computations_validate_rx_test_for_repeater() argument 246 authenticated(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) authenticated() argument 265 wait_for_ready(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) wait_for_ready() argument 305 read_ksv_list(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) read_ksv_list() argument 369 determine_rx_hdcp_capable_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) determine_rx_hdcp_capable_dp() argument 392 wait_for_r0_prime_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) wait_for_r0_prime_dp() argument 416 authenticated_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) authenticated_dp() argument 443 mod_hdcp_execute_and_set( mod_hdcp_action func, uint8_t *flag, enum mod_hdcp_status *status, struct mod_hdcp *hdcp, char *str) mod_hdcp_execute_and_set() argument 458 mod_hdcp_hdcp1_execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) mod_hdcp_hdcp1_execution() argument 492 mod_hdcp_hdcp1_dp_execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) mod_hdcp_hdcp1_dp_execution() argument [all...] |
H A D | hdcp_psp.c | 29 #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() 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 in mod_hdcp_add_display_to_topology() 47 mod_hdcp_remove_display_from_topology( struct mod_hdcp *hdcp, uint8_t index) mod_hdcp_remove_display_from_topology() argument 129 mod_hdcp_hdcp1_create_session(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_create_session() argument 168 mod_hdcp_hdcp1_destroy_session(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_destroy_session() argument 202 mod_hdcp_hdcp1_validate_rx(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_validate_rx() argument 243 mod_hdcp_hdcp1_enable_encryption(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_enable_encryption() argument 270 mod_hdcp_hdcp1_validate_ksvlist_vp(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_validate_ksvlist_vp() argument 311 mod_hdcp_hdcp1_enable_dp_stream_encryption(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_enable_dp_stream_encryption() argument 348 mod_hdcp_hdcp1_link_maintenance(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_link_maintenance() argument 374 mod_hdcp_hdcp1_get_link_encryption_status(struct mod_hdcp *hdcp, enum mod_hdcp_encryption_status *encryption_status) mod_hdcp_hdcp1_get_link_encryption_status() argument 387 mod_hdcp_hdcp2_create_session(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_create_session() argument 434 mod_hdcp_hdcp2_destroy_session(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_destroy_session() argument 467 mod_hdcp_hdcp2_prepare_ake_init(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_prepare_ake_init() argument 499 mod_hdcp_hdcp2_validate_ake_cert(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_ake_cert() argument 557 mod_hdcp_hdcp2_validate_h_prime(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_h_prime() argument 603 mod_hdcp_hdcp2_prepare_lc_init(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_prepare_lc_init() argument 636 mod_hdcp_hdcp2_validate_l_prime(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_l_prime() argument 671 mod_hdcp_hdcp2_prepare_eks(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_prepare_eks() argument 716 mod_hdcp_hdcp2_enable_encryption(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_enable_encryption() argument 747 mod_hdcp_hdcp2_validate_rx_id_list(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_rx_id_list() argument 800 mod_hdcp_hdcp2_enable_dp_stream_encryption(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_enable_dp_stream_encryption() argument 843 mod_hdcp_hdcp2_prepare_stream_management(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_prepare_stream_management() argument 880 mod_hdcp_hdcp2_validate_stream_ready(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_stream_ready() argument [all...] |
H A D | hdcp2_transition.c | 26 #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() 78 increment_stay_counter(hdcp); in mod_hdcp_hdcp2_transition() 369 mod_hdcp_hdcp2_dp_transition(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input, struct mod_hdcp_output *output) mod_hdcp_hdcp2_dp_transition() argument [all...] |
H A D | hdcp1_transition.c | 26 #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, outpu in mod_hdcp_hdcp1_transition() 151 mod_hdcp_hdcp1_dp_transition(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input, struct mod_hdcp_output *output) mod_hdcp_hdcp1_dp_transition() argument [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/amd/display/modules/hdcp/ |
H A D | hdcp_log.h | 29 #define HDCP_LOG_ERR(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) 30 #define HDCP_LOG_VER(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) 31 #define HDCP_LOG_FSM(hdcp, ...) DRM_DEBUG_KMS(__VA_ARGS__) 32 #define HDCP_LOG_TOP(hdcp, ...) pr_debug("[HDCP_TOP]:"__VA_ARGS__) 33 #define HDCP_LOG_DDC(hdcp, ...) pr_debug("[HDCP_DDC]:"__VA_ARGS__) 36 #define HDCP_ERROR_TRACE(hdcp, status) \ 37 HDCP_LOG_ERR(hdcp, \ 39 hdcp->config.index, \ 41 mod_hdcp_state_id_to_str(hdcp->state.id), \ 42 hdcp [all...] |
H A D | hdcp_ddc.c | 26 #include "hdcp.h" 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() 209 static enum mod_hdcp_status write(struct mod_hdcp *hdcp, in write() argument 246 mod_hdcp_read_bksv(struct mod_hdcp *hdcp) mod_hdcp_read_bksv() argument 253 mod_hdcp_read_bcaps(struct mod_hdcp *hdcp) mod_hdcp_read_bcaps() argument 260 mod_hdcp_read_bstatus(struct mod_hdcp *hdcp) mod_hdcp_read_bstatus() argument 275 mod_hdcp_read_r0p(struct mod_hdcp *hdcp) mod_hdcp_read_r0p() argument 283 mod_hdcp_read_ksvlist(struct mod_hdcp *hdcp) mod_hdcp_read_ksvlist() argument 299 mod_hdcp_read_vp(struct mod_hdcp *hdcp) mod_hdcp_read_vp() argument 329 mod_hdcp_read_binfo(struct mod_hdcp *hdcp) mod_hdcp_read_binfo() argument 343 mod_hdcp_write_aksv(struct mod_hdcp *hdcp) mod_hdcp_write_aksv() argument 350 mod_hdcp_write_ainfo(struct mod_hdcp *hdcp) mod_hdcp_write_ainfo() argument 357 mod_hdcp_write_an(struct mod_hdcp *hdcp) mod_hdcp_write_an() argument 364 mod_hdcp_read_hdcp2version(struct mod_hdcp *hdcp) mod_hdcp_read_hdcp2version() argument 378 mod_hdcp_read_rxcaps(struct mod_hdcp *hdcp) mod_hdcp_read_rxcaps() argument 392 mod_hdcp_read_rxstatus(struct mod_hdcp *hdcp) mod_hdcp_read_rxstatus() argument 408 mod_hdcp_read_ake_cert(struct mod_hdcp *hdcp) mod_hdcp_read_ake_cert() argument 426 mod_hdcp_read_h_prime(struct mod_hdcp *hdcp) mod_hdcp_read_h_prime() argument 444 mod_hdcp_read_pairing_info(struct mod_hdcp *hdcp) mod_hdcp_read_pairing_info() argument 462 mod_hdcp_read_l_prime(struct mod_hdcp *hdcp) mod_hdcp_read_l_prime() argument 480 mod_hdcp_read_rx_id_list(struct mod_hdcp *hdcp) mod_hdcp_read_rx_id_list() argument 511 mod_hdcp_read_stream_ready(struct mod_hdcp *hdcp) mod_hdcp_read_stream_ready() argument 529 mod_hdcp_write_ake_init(struct mod_hdcp *hdcp) mod_hdcp_write_ake_init() argument 544 mod_hdcp_write_no_stored_km(struct mod_hdcp *hdcp) mod_hdcp_write_no_stored_km() argument 559 mod_hdcp_write_stored_km(struct mod_hdcp *hdcp) mod_hdcp_write_stored_km() argument 574 mod_hdcp_write_lc_init(struct mod_hdcp *hdcp) mod_hdcp_write_lc_init() argument 589 mod_hdcp_write_eks(struct mod_hdcp *hdcp) mod_hdcp_write_eks() argument 606 mod_hdcp_write_repeater_auth_ack(struct mod_hdcp *hdcp) mod_hdcp_write_repeater_auth_ack() argument 621 mod_hdcp_write_stream_manage(struct mod_hdcp *hdcp) mod_hdcp_write_stream_manage() argument 638 mod_hdcp_write_content_type(struct mod_hdcp *hdcp) mod_hdcp_write_content_type() argument 651 mod_hdcp_clear_cp_irq_status(struct mod_hdcp *hdcp) mod_hdcp_clear_cp_irq_status() argument [all...] |
H A D | hdcp.c | 26 #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 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() 51 is_cp_desired_hdcp1(struct mod_hdcp *hdcp) is_cp_desired_hdcp1() argument 71 is_cp_desired_hdcp2(struct mod_hdcp *hdcp) is_cp_desired_hdcp2() argument 91 execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, union mod_hdcp_transition_input *input) execution() argument 127 transition(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, union mod_hdcp_transition_input *input, struct mod_hdcp_output *output) transition() argument 188 reset_authentication(struct mod_hdcp *hdcp, struct mod_hdcp_output *output) reset_authentication() argument 234 reset_connection(struct mod_hdcp *hdcp, struct mod_hdcp_output *output) reset_connection() argument 254 update_display_adjustments(struct mod_hdcp *hdcp, struct mod_hdcp_display *display, struct mod_hdcp_display_adjustment *adj) update_display_adjustments() argument 289 mod_hdcp_setup(struct mod_hdcp *hdcp, struct mod_hdcp_config *config) mod_hdcp_setup() argument 304 mod_hdcp_teardown(struct mod_hdcp *hdcp) mod_hdcp_teardown() argument 319 mod_hdcp_add_display(struct mod_hdcp *hdcp, struct mod_hdcp_link *link, struct mod_hdcp_display *display, struct mod_hdcp_output *output) mod_hdcp_add_display() argument 378 mod_hdcp_remove_display(struct mod_hdcp *hdcp, uint8_t index, struct mod_hdcp_output *output) mod_hdcp_remove_display() argument 421 mod_hdcp_update_display(struct mod_hdcp *hdcp, uint8_t index, struct mod_hdcp_link_adjustment *link_adjust, struct mod_hdcp_display_adjustment *display_adjust, struct mod_hdcp_output *output) mod_hdcp_update_display() argument 484 mod_hdcp_query_display(struct mod_hdcp *hdcp, uint8_t index, struct mod_hdcp_display_query *query) mod_hdcp_query_display() argument 522 mod_hdcp_reset_connection(struct mod_hdcp *hdcp, struct mod_hdcp_output *output) mod_hdcp_reset_connection() argument 535 mod_hdcp_process_event(struct mod_hdcp *hdcp, enum mod_hdcp_event event, struct mod_hdcp_output *output) mod_hdcp_process_event() argument [all...] |
H A D | hdcp.h | 289 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, 391 is_dp_hdcp(struct mod_hdcp *hdcp) is_dp_hdcp() argument 396 is_dp_mst_hdcp(struct mod_hdcp *hdcp) is_dp_mst_hdcp() argument 402 is_hdmi_dvi_sl_hdcp(struct mod_hdcp *hdcp) is_hdmi_dvi_sl_hdcp() argument 408 current_state(struct mod_hdcp *hdcp) current_state() argument 413 set_state_id(struct mod_hdcp *hdcp, struct mod_hdcp_output *output, uint8_t id) set_state_id() argument 424 is_in_hdcp1_states(struct mod_hdcp *hdcp) is_in_hdcp1_states() argument 430 is_in_hdcp1_dp_states(struct mod_hdcp *hdcp) is_in_hdcp1_dp_states() argument 436 is_in_hdcp2_states(struct mod_hdcp *hdcp) is_in_hdcp2_states() argument 442 is_in_hdcp2_dp_states(struct mod_hdcp *hdcp) is_in_hdcp2_dp_states() argument 448 is_in_authenticated_states(struct mod_hdcp *hdcp) is_in_authenticated_states() argument 456 is_hdcp1(struct mod_hdcp *hdcp) is_hdcp1() argument 461 is_hdcp2(struct mod_hdcp *hdcp) is_hdcp2() argument 466 is_in_cp_not_desired_state(struct mod_hdcp *hdcp) is_in_cp_not_desired_state() argument 471 is_in_initialized_state(struct mod_hdcp *hdcp) is_in_initialized_state() argument 477 increment_stay_counter(struct mod_hdcp *hdcp) increment_stay_counter() argument 499 set_watchdog_in_ms(struct mod_hdcp *hdcp, uint16_t time, struct mod_hdcp_output *output) set_watchdog_in_ms() argument 506 set_auth_complete(struct mod_hdcp *hdcp, struct mod_hdcp_output *output) set_auth_complete() argument 524 get_active_display_count(struct mod_hdcp *hdcp) get_active_display_count() argument 535 get_first_active_display( struct mod_hdcp *hdcp) get_first_active_display() argument 549 get_active_display_at_index( struct mod_hdcp *hdcp, uint8_t index) get_active_display_at_index() argument 564 get_empty_display_container( struct mod_hdcp *hdcp) get_empty_display_container() argument 578 reset_retry_counts(struct mod_hdcp *hdcp) reset_retry_counts() argument [all...] |
H A D | hdcp_log.c | 27 #include "hdcp.h" 54 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, "BSTATU in mod_hdcp_log_ddc_trace() [all...] |
H A D | hdcp2_execution.c | 28 #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 in check_hdcp2_capable() 60 check_reauthentication_request( struct mod_hdcp *hdcp) check_reauthentication_request() argument 76 check_link_integrity_failure_dp( struct mod_hdcp *hdcp) check_link_integrity_failure_dp() argument 84 check_ake_cert_available(struct mod_hdcp *hdcp) check_ake_cert_available() argument 104 check_h_prime_available(struct mod_hdcp *hdcp) check_h_prime_available() argument 128 check_pairing_info_available(struct mod_hdcp *hdcp) check_pairing_info_available() argument 152 poll_l_prime_available(struct mod_hdcp *hdcp) poll_l_prime_available() argument 181 check_stream_ready_available(struct mod_hdcp *hdcp) check_stream_ready_available() argument 202 get_device_count(struct mod_hdcp *hdcp) get_device_count() argument 208 check_device_count(struct mod_hdcp *hdcp) check_device_count() argument 224 process_rxstatus(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input, enum mod_hdcp_status *status) process_rxstatus() argument 260 known_hdcp2_capable_rx(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) known_hdcp2_capable_rx() argument 283 send_ake_init(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_ake_init() argument 310 validate_ake_cert(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) validate_ake_cert() argument 340 send_no_stored_km(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_no_stored_km() argument 359 read_h_prime(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) read_h_prime() argument 385 read_pairing_info_and_validate_h_prime( struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) read_pairing_info_and_validate_h_prime() argument 415 send_stored_km(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_stored_km() argument 434 validate_h_prime(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) validate_h_prime() argument 463 locality_check(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) locality_check() argument 501 exchange_ks_and_test_for_repeater(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) exchange_ks_and_test_for_repeater() argument 524 enable_encryption(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) enable_encryption() argument 561 authenticated(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) authenticated() argument 578 wait_for_rx_id_list(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) wait_for_rx_id_list() argument 601 verify_rx_id_list_and_send_ack(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) verify_rx_id_list_and_send_ack() argument 637 send_stream_management(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_stream_management() argument 672 validate_stream_ready(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) validate_stream_ready() argument 714 determine_rx_hdcp_capable_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) determine_rx_hdcp_capable_dp() argument 737 send_content_stream_type_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) send_content_stream_type_dp() argument 759 mod_hdcp_hdcp2_execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) mod_hdcp_hdcp2_execution() argument 823 mod_hdcp_hdcp2_dp_execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input) mod_hdcp_hdcp2_dp_execution() argument [all...] |
H A D | hdcp1_execution.c | 26 #include "hdcp.h" 28 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 in check_hdcp_capable_dp() 63 check_r0p_available_dp(struct mod_hdcp *hdcp) check_r0p_available_dp() argument 77 check_link_integrity_dp( struct mod_hdcp *hdcp) check_link_integrity_dp() argument 86 check_no_reauthentication_request_dp( struct mod_hdcp *hdcp) check_no_reauthentication_request_dp() argument 94 check_no_max_cascade(struct mod_hdcp *hdcp) check_no_max_cascade() argument 109 check_no_max_devs(struct mod_hdcp *hdcp) check_no_max_devs() argument 124 get_device_count(struct mod_hdcp *hdcp) get_device_count() argument 131 check_device_count(struct mod_hdcp *hdcp) check_device_count() argument 148 wait_for_active_rx(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) wait_for_active_rx() argument 171 exchange_ksvs(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) exchange_ksvs() argument 212 computations_validate_rx_test_for_repeater( struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) computations_validate_rx_test_for_repeater() argument 255 authenticated(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) authenticated() argument 273 wait_for_ready(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) wait_for_ready() argument 313 read_ksv_list(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) read_ksv_list() argument 377 determine_rx_hdcp_capable_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) determine_rx_hdcp_capable_dp() argument 400 wait_for_r0_prime_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) wait_for_r0_prime_dp() argument 424 authenticated_dp(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) authenticated_dp() argument 451 mod_hdcp_execute_and_set( mod_hdcp_action func, uint8_t *flag, enum mod_hdcp_status *status, struct mod_hdcp *hdcp, char *str) mod_hdcp_execute_and_set() argument 466 mod_hdcp_hdcp1_execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) mod_hdcp_hdcp1_execution() argument 500 mod_hdcp_hdcp1_dp_execution(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input) mod_hdcp_hdcp1_dp_execution() argument [all...] |
H A D | hdcp_psp.c | 29 #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() 49 struct mod_hdcp *hdcp, uint8_t index) in remove_display_from_topology_v2() 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() 87 struct psp_context *psp = hdcp->config.psp.handle; in remove_display_from_topology_v3() 90 get_active_display_at_index(hdcp, inde in remove_display_from_topology_v3() 48 remove_display_from_topology_v2( struct mod_hdcp *hdcp, uint8_t index) remove_display_from_topology_v2() argument 84 remove_display_from_topology_v3( struct mod_hdcp *hdcp, uint8_t index) remove_display_from_topology_v3() argument 122 add_display_to_topology_v2( struct mod_hdcp *hdcp, struct mod_hdcp_display *display) add_display_to_topology_v2() argument 169 add_display_to_topology_v3( struct mod_hdcp *hdcp, struct mod_hdcp_display *display) add_display_to_topology_v3() argument 224 mod_hdcp_remove_display_from_topology( struct mod_hdcp *hdcp, uint8_t index) mod_hdcp_remove_display_from_topology() argument 237 mod_hdcp_add_display_to_topology(struct mod_hdcp *hdcp, struct mod_hdcp_display *display) mod_hdcp_add_display_to_topology() argument 250 mod_hdcp_hdcp1_create_session(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_create_session() argument 289 mod_hdcp_hdcp1_destroy_session(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_destroy_session() argument 323 mod_hdcp_hdcp1_validate_rx(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_validate_rx() argument 364 mod_hdcp_hdcp1_enable_encryption(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_enable_encryption() argument 391 mod_hdcp_hdcp1_validate_ksvlist_vp(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_validate_ksvlist_vp() argument 432 mod_hdcp_hdcp1_enable_dp_stream_encryption(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_enable_dp_stream_encryption() argument 469 mod_hdcp_hdcp1_link_maintenance(struct mod_hdcp *hdcp) mod_hdcp_hdcp1_link_maintenance() argument 495 mod_hdcp_hdcp2_create_session(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_create_session() argument 542 mod_hdcp_hdcp2_destroy_session(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_destroy_session() argument 575 mod_hdcp_hdcp2_prepare_ake_init(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_prepare_ake_init() argument 607 mod_hdcp_hdcp2_validate_ake_cert(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_ake_cert() argument 667 mod_hdcp_hdcp2_validate_h_prime(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_h_prime() argument 713 mod_hdcp_hdcp2_prepare_lc_init(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_prepare_lc_init() argument 746 mod_hdcp_hdcp2_validate_l_prime(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_l_prime() argument 781 mod_hdcp_hdcp2_prepare_eks(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_prepare_eks() argument 826 mod_hdcp_hdcp2_enable_encryption(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_enable_encryption() argument 857 mod_hdcp_hdcp2_validate_rx_id_list(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_rx_id_list() argument 910 mod_hdcp_hdcp2_enable_dp_stream_encryption(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_enable_dp_stream_encryption() argument 953 mod_hdcp_hdcp2_prepare_stream_management(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_prepare_stream_management() argument 990 mod_hdcp_hdcp2_validate_stream_ready(struct mod_hdcp *hdcp) mod_hdcp_hdcp2_validate_stream_ready() argument [all...] |
H A D | hdcp2_transition.c | 26 #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() 78 increment_stay_counter(hdcp); in mod_hdcp_hdcp2_transition() 369 mod_hdcp_hdcp2_dp_transition(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp2 *input, struct mod_hdcp_output *output) mod_hdcp_hdcp2_dp_transition() argument [all...] |
H A D | hdcp1_transition.c | 26 #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, outpu in mod_hdcp_hdcp1_transition() 151 mod_hdcp_hdcp1_dp_transition(struct mod_hdcp *hdcp, struct mod_hdcp_event_context *event_ctx, struct mod_hdcp_transition_input_hdcp1 *input, struct mod_hdcp_output *output) mod_hdcp_hdcp1_dp_transition() argument [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/i915/display/ |
H A D | intel_hdcp.c | 97 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 in intel_hdcp2_capable() 710 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_auth() local 882 struct intel_hdcp *hdcp = &connector->hdcp; _intel_hdcp_disable() local 936 struct intel_hdcp *hdcp = &connector->hdcp; _intel_hdcp_enable() local 978 intel_hdcp_to_connector(struct intel_hdcp *hdcp) intel_hdcp_to_connector() argument 988 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_update_value() local 1017 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_check_link() local 1085 struct intel_hdcp *hdcp = container_of(work, struct intel_hdcp, intel_hdcp_prop_work() local 1420 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_authentication_key_exchange() local 1508 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_locality_check() local 1544 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_session_key_exchange() local 1565 struct intel_hdcp *hdcp = &connector->hdcp; _hdcp2_propagate_stream_management_info() local 1615 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_authenticate_repeater_topology() local 1690 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_authenticate_sink() local 1738 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_enable_stream_encryption() local 1778 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_enable_encryption() local 1817 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_disable_encryption() local 1936 struct intel_hdcp *hdcp = &connector->hdcp; _intel_hdcp2_enable() local 1964 struct intel_hdcp *hdcp = &connector->hdcp; _intel_hdcp2_disable() local 2001 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp2_check_link() local 2093 struct intel_hdcp *hdcp = container_of(to_delayed_work(work), intel_hdcp_check_work() local 2248 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp2_init() local 2265 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_init() local 2347 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_enable() local 2421 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_disable() local 2454 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_update_pipe() local 2527 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_cleanup() local 2611 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_handle_cp_irq() local [all...] |
H A D | intel_dp_hdcp.c | 39 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 671 struct intel_hdcp *hdcp = &connector->hdcp; intel_dp_mst_toggle_hdcp_stream_select() local 689 struct intel_hdcp *hdcp = &connector->hdcp; intel_dp_mst_hdcp_stream_encryption() local 724 struct intel_hdcp *hdcp = &connector->hdcp; intel_dp_mst_hdcp2_stream_encryption() local 756 struct intel_hdcp *hdcp = &connector->hdcp; intel_dp_mst_hdcp2_check_link() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/i915/display/ |
H A D | intel_hdcp.c | 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() 296 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_validate_v_prime() 538 const struct intel_hdcp_shim *shim = connector->hdcp.shim; in intel_hdcp_auth_downstream() 621 struct intel_hdcp *hdcp = &connector->hdcp; in intel_hdcp_auth() local 786 struct intel_hdcp *hdcp = &connector->hdcp; _intel_hdcp_disable() local 836 struct intel_hdcp *hdcp = &connector->hdcp; _intel_hdcp_enable() local 878 intel_hdcp_to_connector(struct intel_hdcp *hdcp) intel_hdcp_to_connector() argument 888 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_update_value() local 916 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_check_link() local 984 struct intel_hdcp *hdcp = container_of(work, struct intel_hdcp, intel_hdcp_prop_work() local 1307 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_authentication_key_exchange() local 1395 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_locality_check() local 1431 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_session_key_exchange() local 1452 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_propagate_stream_management_info() local 1504 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_authenticate_repeater_topology() local 1582 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_authenticate_sink() local 1634 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_enable_encryption() local 1674 struct intel_hdcp *hdcp = &connector->hdcp; hdcp2_disable_encryption() local 1745 struct intel_hdcp *hdcp = &connector->hdcp; _intel_hdcp2_enable() local 1790 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp2_check_link() local 1879 struct intel_hdcp *hdcp = container_of(to_delayed_work(work), intel_hdcp_check_work() local 1952 struct intel_hdcp *hdcp = &connector->hdcp; initialize_hdcp_port_data() local 2030 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp2_init() local 2047 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_init() local 2079 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_enable() local 2130 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_disable() local 2163 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_update_pipe() local 2234 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_cleanup() local 2319 struct intel_hdcp *hdcp = &connector->hdcp; intel_hdcp_handle_cp_irq() local [all...] |
/kernel/linux/linux-6.6/drivers/gpu/drm/bridge/cadence/ |
H A D | cdns-mhdp8546-hdcp.c | 16 #include "cdns-mhdp8546-hdcp.h" 438 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 in cdns_mhdp_hdcp_check_work() local 484 struct cdns_mhdp_hdcp *hdcp = container_of(work, cdns_mhdp_hdcp_prop_work() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/display/amdgpu_dm/ |
H A D | amdgpu_dm_hdcp.c | 83 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_CALLBAC in event_callback() 399 struct mod_hdcp hdcp = hdcp_work->hdcp; enable_assr() local [all...] |
/kernel/linux/linux-5.10/drivers/gpu/drm/amd/display/modules/inc/ |
H A D | mod_hdcp.h | 201 /* 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, [all...] |