Lines Matching refs:hdcp

1 /*	$NetBSD: hdcp.h,v 1.3 2021/12/19 12:02:39 riastradh Exp $	*/
291 typedef enum mod_hdcp_status (*mod_hdcp_action)(struct mod_hdcp *hdcp);
294 enum mod_hdcp_status *status, struct mod_hdcp *hdcp, const char *str);
295 enum mod_hdcp_status mod_hdcp_hdcp1_execution(struct mod_hdcp *hdcp,
298 enum mod_hdcp_status mod_hdcp_hdcp1_dp_execution(struct mod_hdcp *hdcp,
301 enum mod_hdcp_status mod_hdcp_hdcp1_transition(struct mod_hdcp *hdcp,
305 enum mod_hdcp_status mod_hdcp_hdcp1_dp_transition(struct mod_hdcp *hdcp,
311 enum mod_hdcp_status mod_hdcp_hdcp2_execution(struct mod_hdcp *hdcp,
314 enum mod_hdcp_status mod_hdcp_hdcp2_dp_execution(struct mod_hdcp *hdcp,
317 enum mod_hdcp_status mod_hdcp_hdcp2_transition(struct mod_hdcp *hdcp,
321 enum mod_hdcp_status mod_hdcp_hdcp2_dp_transition(struct mod_hdcp *hdcp,
333 struct mod_hdcp *hdcp);
335 struct mod_hdcp *hdcp);
336 enum mod_hdcp_status mod_hdcp_hdcp1_create_session(struct mod_hdcp *hdcp);
337 enum mod_hdcp_status mod_hdcp_hdcp1_destroy_session(struct mod_hdcp *hdcp);
338 enum mod_hdcp_status mod_hdcp_hdcp1_validate_rx(struct mod_hdcp *hdcp);
339 enum mod_hdcp_status mod_hdcp_hdcp1_enable_encryption(struct mod_hdcp *hdcp);
340 enum mod_hdcp_status mod_hdcp_hdcp1_validate_ksvlist_vp(struct mod_hdcp *hdcp);
342 struct mod_hdcp *hdcp);
343 enum mod_hdcp_status mod_hdcp_hdcp1_link_maintenance(struct mod_hdcp *hdcp);
344 enum mod_hdcp_status mod_hdcp_hdcp1_get_link_encryption_status(struct mod_hdcp *hdcp,
346 enum mod_hdcp_status mod_hdcp_hdcp2_create_session(struct mod_hdcp *hdcp);
347 enum mod_hdcp_status mod_hdcp_hdcp2_destroy_session(struct mod_hdcp *hdcp);
348 enum mod_hdcp_status mod_hdcp_hdcp2_prepare_ake_init(struct mod_hdcp *hdcp);
349 enum mod_hdcp_status mod_hdcp_hdcp2_validate_ake_cert(struct mod_hdcp *hdcp);
350 enum mod_hdcp_status mod_hdcp_hdcp2_validate_h_prime(struct mod_hdcp *hdcp);
351 enum mod_hdcp_status mod_hdcp_hdcp2_prepare_lc_init(struct mod_hdcp *hdcp);
352 enum mod_hdcp_status mod_hdcp_hdcp2_validate_l_prime(struct mod_hdcp *hdcp);
353 enum mod_hdcp_status mod_hdcp_hdcp2_prepare_eks(struct mod_hdcp *hdcp);
354 enum mod_hdcp_status mod_hdcp_hdcp2_enable_encryption(struct mod_hdcp *hdcp);
355 enum mod_hdcp_status mod_hdcp_hdcp2_validate_rx_id_list(struct mod_hdcp *hdcp);
357 struct mod_hdcp *hdcp);
359 struct mod_hdcp *hdcp);
361 struct mod_hdcp *hdcp);
362 enum mod_hdcp_status mod_hdcp_hdcp2_get_link_encryption_status(struct mod_hdcp *hdcp,
366 enum mod_hdcp_status mod_hdcp_read_bksv(struct mod_hdcp *hdcp);
367 enum mod_hdcp_status mod_hdcp_read_bcaps(struct mod_hdcp *hdcp);
368 enum mod_hdcp_status mod_hdcp_read_bstatus(struct mod_hdcp *hdcp);
369 enum mod_hdcp_status mod_hdcp_read_r0p(struct mod_hdcp *hdcp);
370 enum mod_hdcp_status mod_hdcp_read_ksvlist(struct mod_hdcp *hdcp);
371 enum mod_hdcp_status mod_hdcp_read_vp(struct mod_hdcp *hdcp);
372 enum mod_hdcp_status mod_hdcp_read_binfo(struct mod_hdcp *hdcp);
373 enum mod_hdcp_status mod_hdcp_write_aksv(struct mod_hdcp *hdcp);
374 enum mod_hdcp_status mod_hdcp_write_ainfo(struct mod_hdcp *hdcp);
375 enum mod_hdcp_status mod_hdcp_write_an(struct mod_hdcp *hdcp);
376 enum mod_hdcp_status mod_hdcp_read_hdcp2version(struct mod_hdcp *hdcp);
377 enum mod_hdcp_status mod_hdcp_read_rxcaps(struct mod_hdcp *hdcp);
378 enum mod_hdcp_status mod_hdcp_read_rxstatus(struct mod_hdcp *hdcp);
379 enum mod_hdcp_status mod_hdcp_read_ake_cert(struct mod_hdcp *hdcp);
380 enum mod_hdcp_status mod_hdcp_read_h_prime(struct mod_hdcp *hdcp);
381 enum mod_hdcp_status mod_hdcp_read_pairing_info(struct mod_hdcp *hdcp);
382 enum mod_hdcp_status mod_hdcp_read_l_prime(struct mod_hdcp *hdcp);
383 enum mod_hdcp_status mod_hdcp_read_rx_id_list(struct mod_hdcp *hdcp);
384 enum mod_hdcp_status mod_hdcp_read_stream_ready(struct mod_hdcp *hdcp);
385 enum mod_hdcp_status mod_hdcp_write_ake_init(struct mod_hdcp *hdcp);
386 enum mod_hdcp_status mod_hdcp_write_no_stored_km(struct mod_hdcp *hdcp);
387 enum mod_hdcp_status mod_hdcp_write_stored_km(struct mod_hdcp *hdcp);
388 enum mod_hdcp_status mod_hdcp_write_lc_init(struct mod_hdcp *hdcp);
389 enum mod_hdcp_status mod_hdcp_write_eks(struct mod_hdcp *hdcp);
390 enum mod_hdcp_status mod_hdcp_write_repeater_auth_ack(struct mod_hdcp *hdcp);
391 enum mod_hdcp_status mod_hdcp_write_stream_manage(struct mod_hdcp *hdcp);
392 enum mod_hdcp_status mod_hdcp_write_content_type(struct mod_hdcp *hdcp);
394 /* hdcp version helpers */
395 static inline uint8_t is_dp_hdcp(struct mod_hdcp *hdcp)
397 return (hdcp->connection.link.mode == MOD_HDCP_MODE_DP ||
398 hdcp->connection.link.mode == MOD_HDCP_MODE_DP_MST);
401 static inline uint8_t is_dp_mst_hdcp(struct mod_hdcp *hdcp)
403 return (hdcp->connection.link.mode == MOD_HDCP_MODE_DP_MST);
406 static inline uint8_t is_hdmi_dvi_sl_hdcp(struct mod_hdcp *hdcp)
408 return (hdcp->connection.link.mode == MOD_HDCP_MODE_DEFAULT);
411 /* hdcp state helpers */
412 static inline uint8_t current_state(struct mod_hdcp *hdcp)
414 return hdcp->state.id;
417 static inline void set_state_id(struct mod_hdcp *hdcp,
420 memset(&hdcp->state, 0, sizeof(hdcp->state));
421 hdcp->state.id = id;
425 HDCP_NEXT_STATE_TRACE(hdcp, id, output);
428 static inline uint8_t is_in_hdcp1_states(struct mod_hdcp *hdcp)
430 return (current_state(hdcp) > HDCP1_STATE_START &&
431 current_state(hdcp) <= HDCP1_STATE_END);
434 static inline uint8_t is_in_hdcp1_dp_states(struct mod_hdcp *hdcp)
436 return (current_state(hdcp) > HDCP1_DP_STATE_START &&
437 current_state(hdcp) <= HDCP1_DP_STATE_END);
440 static inline uint8_t is_in_hdcp2_states(struct mod_hdcp *hdcp)
442 return (current_state(hdcp) > HDCP2_STATE_START &&
443 current_state(hdcp) <= HDCP2_STATE_END);
446 static inline uint8_t is_in_hdcp2_dp_states(struct mod_hdcp *hdcp)
448 return (current_state(hdcp) > HDCP2_DP_STATE_START &&
449 current_state(hdcp) <= HDCP2_DP_STATE_END);
452 static inline uint8_t is_hdcp1(struct mod_hdcp *hdcp)
454 return (is_in_hdcp1_states(hdcp) || is_in_hdcp1_dp_states(hdcp));
457 static inline uint8_t is_hdcp2(struct mod_hdcp *hdcp)
459 return (is_in_hdcp2_states(hdcp) || is_in_hdcp2_dp_states(hdcp));
462 static inline uint8_t is_in_cp_not_desired_state(struct mod_hdcp *hdcp)
464 return current_state(hdcp) == HDCP_CP_NOT_DESIRED;
467 static inline uint8_t is_in_initialized_state(struct mod_hdcp *hdcp)
469 return current_state(hdcp) == HDCP_INITIALIZED;
473 static inline void increment_stay_counter(struct mod_hdcp *hdcp)
475 hdcp->state.stay_count++;
495 static inline void set_watchdog_in_ms(struct mod_hdcp *hdcp, uint16_t time,
518 static inline uint8_t get_active_display_count(struct mod_hdcp *hdcp)
524 if (is_display_active(&hdcp->connection.displays[i]))
529 static inline uint8_t get_added_display_count(struct mod_hdcp *hdcp)
535 if (is_display_added(&hdcp->connection.displays[i]))
541 struct mod_hdcp *hdcp)
547 if (is_display_added(&hdcp->connection.displays[i])) {
548 display = &hdcp->connection.displays[i];
555 struct mod_hdcp *hdcp, uint8_t index)
561 if (hdcp->connection.displays[i].index == index &&
562 is_display_active(&hdcp->connection.displays[i])) {
563 display = &hdcp->connection.displays[i];
570 struct mod_hdcp *hdcp)
576 if (!is_display_active(&hdcp->connection.displays[i])) {
577 display = &hdcp->connection.displays[i];
583 static inline void reset_retry_counts(struct mod_hdcp *hdcp)
585 hdcp->connection.hdcp1_retry_count = 0;
586 hdcp->connection.hdcp2_retry_count = 0;