| /OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/display/modules/hdcp/ |
| H A D | hdcp_log.h | 30 #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 …]
|
| H A D | hdcp_ddc.c | 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 218 if (is_dp_hdcp(hdcp)) { in write() 221 success = hdcp->config.ddc.funcs.write_dpcd( in write() [all …]
|
| H A D | hdcp.c | 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 55 if (hdcp->displays[i].state != MOD_HDCP_DISPLAY_INACTIVE && in is_cp_desired_hdcp1() [all …]
|
| H A D | hdcp2_execution.c | 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() 50 HDCP_2_2_DP_HDCP_CAPABLE(hdcp->auth.msg.hdcp2.rxcaps_dp[2]) ? in check_hdcp2_capable() [all …]
|
| H A D | hdcp1_execution.c | 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->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 …]
|
| 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, [all …]
|
| H A D | hdcp_psp.c | 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() 108 if (is_dp_hdcp(hdcp)) in mod_hdcp_add_display_to_topology() [all …]
|
| H A D | hdcp2_transition.c | 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() 93 set_state_id(hdcp, output, H2_A1_SEND_STORED_KM); in mod_hdcp_hdcp2_transition() [all …]
|
| H A D | hdcp1_transition.c | 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() 91 set_state_id(hdcp, output, H1_A45_AUTHENTICATED); in mod_hdcp_hdcp1_transition() [all …]
|
| H A D | Makefile | 26 HDCP = hdcp_ddc.o hdcp_log.o hdcp_psp.o hdcp.o \ 30 AMD_DAL_HDCP = $(addprefix $(AMDDALPATH)/modules/hdcp/,$(HDCP))
|
| /OK3568_Linux_fs/kernel/drivers/media/platform/rockchip/hdmirx/ |
| H A D | rk_hdmirx_hdcp.c | 30 static void hdmirx_hdcp_write(struct rk_hdmirx_hdcp *hdcp, int reg, u32 val) in hdmirx_hdcp_write() argument 32 hdcp->write(hdcp->hdmirx, reg, val); in hdmirx_hdcp_write() 35 static u32 hdmirx_hdcp_read(struct rk_hdmirx_hdcp *hdcp, int reg) in hdmirx_hdcp_read() argument 37 return hdcp->read(hdcp->hdmirx, reg); in hdmirx_hdcp_read() 40 static void hdmirx_hdcp_update_bits(struct rk_hdmirx_hdcp *hdcp, int reg, in hdmirx_hdcp_update_bits() argument 43 u32 val = hdmirx_hdcp_read(hdcp, reg) & ~mask; in hdmirx_hdcp_update_bits() 46 hdmirx_hdcp_write(hdcp, reg, val); in hdmirx_hdcp_update_bits() 49 static int hdcp_load_keys_cb(struct rk_hdmirx_hdcp *hdcp) in hdcp_load_keys_cb() argument 59 dev_dbg(hdcp->dev, "HDCP: read size %d\n", size); in hdcp_load_keys_cb() 66 hdcp->aes_encrypt = false; in hdcp_load_keys_cb() [all …]
|
| H A D | rk_hdmirx_hdcp.h | 60 int (*hdcp_start)(struct rk_hdmirx_hdcp *hdcp); 61 int (*hdcp_stop)(struct rk_hdmirx_hdcp *hdcp); 62 void (*hdcp2_connect_ctrl)(struct rk_hdmirx_hdcp *hdcp, bool en); 65 struct rk_hdmirx_hdcp *rk_hdmirx_hdcp_register(struct rk_hdmirx_hdcp *hdcp); 66 void rk_hdmirx_hdcp_unregister(struct rk_hdmirx_hdcp *hdcp);
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/bridge/synopsys/ |
| H A D | dw-hdmi-hdcp.c | 133 static void hdcp_modb(struct dw_hdcp *hdcp, u8 data, u8 mask, unsigned int reg) in hdcp_modb() argument 135 struct dw_hdmi *hdmi = hdcp->hdmi; in hdcp_modb() 136 u8 val = hdcp->read(hdmi, reg) & ~mask; in hdcp_modb() 139 hdcp->write(hdmi, val, reg); in hdcp_modb() 266 static int hdcp_load_keys_cb(struct dw_hdcp *hdcp) in hdcp_load_keys_cb() argument 271 hdcp->keys = kmalloc(HDCP_KEY_SIZE, GFP_KERNEL); in hdcp_load_keys_cb() 272 if (!hdcp->keys) in hdcp_load_keys_cb() 275 hdcp->seeds = kmalloc(HDCP_KEY_SEED_SIZE, GFP_KERNEL); in hdcp_load_keys_cb() 276 if (!hdcp->seeds) { in hdcp_load_keys_cb() 277 kfree(hdcp->keys); in hdcp_load_keys_cb() [all …]
|
| H A D | dw-hdmi-hdcp.h | 49 int (*hdcp_start)(struct dw_hdcp *hdcp); 50 int (*hdcp_stop)(struct dw_hdcp *hdcp); 51 void (*hdcp_isr)(struct dw_hdcp *hdcp, int hdcp_int);
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/rockchip/ |
| H A D | dw_hdcp2.c | 85 static void dw_hdcp_free_hl(struct dw_hdcp *hdcp) in dw_hdcp_free_hl() argument 87 dw_hdcp_free_hl_dev_slot(&hdcp->hl_dev); in dw_hdcp_free_hl() 88 hdcp->hl_dev.code_loaded = false; in dw_hdcp_free_hl() 91 static void dw_hdcp_reset(struct dw_hdcp *hdcp) in dw_hdcp_reset() argument 95 reset_control_assert(hdcp->rsts_bulk); in dw_hdcp_reset() 97 reset_control_deassert(hdcp->rsts_bulk); in dw_hdcp_reset() 99 ret = sip_hdcpkey_init(hdcp->id); in dw_hdcp_reset() 101 dev_err(hdcp->dev, "load hdcp key failed\n"); in dw_hdcp_reset() 104 static int dw_hdcp_set_reset(struct dw_hdcp *hdcp, void __user *arg) in dw_hdcp_set_reset() argument 115 dev_info(hdcp->dev, "hdcp reset\n"); in dw_hdcp_set_reset() [all …]
|
| H A D | dw-dp.c | 397 struct dw_dp_hdcp hdcp; member 578 struct dw_dp_hdcp *hdcp = &dp->hdcp; in _dw_dp_hdcp2_disable() local 583 hdcp->status = HDCP_TX_NONE; in _dw_dp_hdcp2_disable() 585 dp->hdcp.hdcp2_encrypted = false; in _dw_dp_hdcp2_disable() 619 dp->hdcp.hdcp2_encrypted = true; in dw_dp_hdcp2_auth_check() 628 struct dw_dp_hdcp *hdcp = &dp->hdcp; in _dw_dp_hdcp2_enable() local 630 hdcp->status = HDCP_TX_2; in _dw_dp_hdcp2_enable() 655 struct dw_dp_hdcp *hdcp = &dp->hdcp; in _dw_dp_hdcp_disable() local 659 hdcp->status = HDCP_TX_NONE; in _dw_dp_hdcp_disable() 661 dp->hdcp.hdcp_encrypted = false; in _dw_dp_hdcp_disable() [all …]
|
| /OK3568_Linux_fs/kernel/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() 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 622 const struct intel_hdcp_shim *shim = hdcp->shim; in intel_hdcp_auth() 623 enum transcoder cpu_transcoder = connector->hdcp.cpu_transcoder; in intel_hdcp_auth() 786 struct intel_hdcp *hdcp = &connector->hdcp; in _intel_hdcp_disable() local [all …]
|
| H A D | intel_dp_hdcp.c | 19 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() 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()
|
| /OK3568_Linux_fs/u-boot/arch/arm/mach-rockchip/ |
| H A D | vendor_misc.c | 25 struct hdcpdata *hdcp; in vendor_handle_hdcp() local 30 hdcp = (void *)vhead + sizeof(struct vendor_item); in vendor_handle_hdcp() 31 if ((hdcp->signature != HDCP_SIGNED) || !(hdcp->flags & HDCP_FLG_AES)) in vendor_handle_hdcp() 34 crc = crc32(0, hdcp->data, hdcp->length); in vendor_handle_hdcp() 35 if (crc != hdcp->crc32) { in vendor_handle_hdcp() 37 __func__, crc, hdcp->crc32); in vendor_handle_hdcp() 48 len = sizeof(struct hdcpdata) + hdcp->length; in vendor_handle_hdcp() 50 memcpy(shm, hdcp, len); in vendor_handle_hdcp() 60 memcpy(hdcp, shm, len); in vendor_handle_hdcp()
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/display/amdgpu_dm/ |
| H A D | amdgpu_dm_hdcp.c | 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() 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() 330 mod_hdcp_query_display(&hdcp_work->hdcp, aconnector->base.index, &query); in event_property_validate() 352 mod_hdcp_process_event(&hdcp_work->hdcp, in event_watchdog_timer() 370 mod_hdcp_process_event(&hdcp_work->hdcp, MOD_HDCP_EVENT_CPIRQ, &hdcp_work->output); in event_cpirq() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/i2c/rk628/ |
| H A D | rk628_hdmirx.c | 56 static int hdcp_load_keys_cb(struct rk628 *rk628, struct rk628_hdcp *hdcp) in hdcp_load_keys_cb() argument 61 hdcp->keys = kmalloc(HDCP_KEY_SIZE, GFP_KERNEL); in hdcp_load_keys_cb() 62 if (!hdcp->keys) in hdcp_load_keys_cb() 65 hdcp->seeds = kmalloc(HDCP_KEY_SEED_SIZE, GFP_KERNEL); in hdcp_load_keys_cb() 66 if (!hdcp->seeds) { in hdcp_load_keys_cb() 67 kfree(hdcp->keys); in hdcp_load_keys_cb() 68 hdcp->keys = NULL; in hdcp_load_keys_cb() 75 kfree(hdcp->keys); in hdcp_load_keys_cb() 76 hdcp->keys = NULL; in hdcp_load_keys_cb() 77 kfree(hdcp->seeds); in hdcp_load_keys_cb() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/display/modules/inc/ |
| H A D | mod_hdcp.h | 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, 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,
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/video/ |
| H A D | rockchip_hdmi.txt | 27 - rockchip,hdcp_enable: hdmi hdcp function is described as follow 28 <0>: hdcp function is disabled. 29 <1>: hdcp function is enabled.
|
| /OK3568_Linux_fs/kernel/drivers/gpu/drm/amd/display/ |
| H A D | Makefile | 40 subdir-ccflags-y += -I$(FULL_AMD_DISPLAY_PATH)/modules/hdcp 49 DAL_LIBS += modules/hdcp
|
| /OK3568_Linux_fs/kernel/Documentation/driver-api/mei/ |
| H A D | hdcp.rst | 24 .. kernel-doc:: drivers/misc/mei/hdcp/mei_hdcp.c 30 .. kernel-doc:: drivers/misc/mei/hdcp/mei_hdcp.c
|