hdcp_ctrl 50 drivers/gpu/drm/msm/hdmi/hdmi.c if (hdmi->hdcp_ctrl) hdcp_ctrl 51 drivers/gpu/drm/msm/hdmi/hdmi.c msm_hdmi_hdcp_irq(hdmi->hdcp_ctrl); hdcp_ctrl 257 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->hdcp_ctrl = msm_hdmi_hdcp_init(hdmi); hdcp_ctrl 258 drivers/gpu/drm/msm/hdmi/hdmi.c if (IS_ERR(hdmi->hdcp_ctrl)) { hdcp_ctrl 260 drivers/gpu/drm/msm/hdmi/hdmi.c hdmi->hdcp_ctrl = NULL; hdcp_ctrl 77 drivers/gpu/drm/msm/hdmi/hdmi.h struct hdmi_hdcp_ctrl *hdcp_ctrl; hdcp_ctrl 253 drivers/gpu/drm/msm/hdmi/hdmi.h void msm_hdmi_hdcp_on(struct hdmi_hdcp_ctrl *hdcp_ctrl); hdcp_ctrl 254 drivers/gpu/drm/msm/hdmi/hdmi.h void msm_hdmi_hdcp_off(struct hdmi_hdcp_ctrl *hdcp_ctrl); hdcp_ctrl 255 drivers/gpu/drm/msm/hdmi/hdmi.h void msm_hdmi_hdcp_irq(struct hdmi_hdcp_ctrl *hdcp_ctrl); hdcp_ctrl 262 drivers/gpu/drm/msm/hdmi/hdmi.h static inline void msm_hdmi_hdcp_on(struct hdmi_hdcp_ctrl *hdcp_ctrl) {} hdcp_ctrl 263 drivers/gpu/drm/msm/hdmi/hdmi.h static inline void msm_hdmi_hdcp_off(struct hdmi_hdcp_ctrl *hdcp_ctrl) {} hdcp_ctrl 264 drivers/gpu/drm/msm/hdmi/hdmi.h static inline void msm_hdmi_hdcp_irq(struct hdmi_hdcp_ctrl *hdcp_ctrl) {} hdcp_ctrl 166 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c if (hdmi->hdcp_ctrl) hdcp_ctrl 167 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_hdcp_on(hdmi->hdcp_ctrl); hdcp_ctrl 184 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c if (hdmi->hdcp_ctrl) hdcp_ctrl 185 drivers/gpu/drm/msm/hdmi/hdmi_bridge.c msm_hdmi_hdcp_off(hdmi->hdcp_ctrl); hdcp_ctrl 156 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_scm_wr(struct hdmi_hdcp_ctrl *hdcp_ctrl, u32 *preg, hdcp_ctrl 159 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 166 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (hdcp_ctrl->tz_hdcp) { hdcp_ctrl 196 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c void msm_hdmi_hdcp_irq(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 198 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 221 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (HDCP_STATE_AUTHENTICATING == hdcp_ctrl->hdcp_state) { hdcp_ctrl 222 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c set_bit(AUTH_RESULT_RDY_EV, &hdcp_ctrl->auth_event); hdcp_ctrl 223 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c wake_up_all(&hdcp_ctrl->auth_event_queue); hdcp_ctrl 231 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (HDCP_STATE_AUTHENTICATED == hdcp_ctrl->hdcp_state) hdcp_ctrl 232 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c queue_work(hdmi->workq, &hdcp_ctrl->hdcp_reauth_work); hdcp_ctrl 234 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdcp_state) { hdcp_ctrl 235 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c set_bit(AUTH_RESULT_RDY_EV, &hdcp_ctrl->auth_event); hdcp_ctrl 236 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c wake_up_all(&hdcp_ctrl->auth_event_queue); hdcp_ctrl 241 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_msleep(struct hdmi_hdcp_ctrl *hdcp_ctrl, u32 ms, u32 ev) hdcp_ctrl 245 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = wait_event_timeout(hdcp_ctrl->auth_event_queue, hdcp_ctrl 246 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c !!test_bit(ev, &hdcp_ctrl->auth_event), hdcp_ctrl 251 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c clear_bit(ev, &hdcp_ctrl->auth_event); hdcp_ctrl 258 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_read_validate_aksv(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 260 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 263 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->aksv_lsb = hdmi_qfprom_read(hdmi, HDCP_KSV_LSB); hdcp_ctrl 264 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->aksv_msb = hdmi_qfprom_read(hdmi, HDCP_KSV_MSB); hdcp_ctrl 267 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if ((hweight32(hdcp_ctrl->aksv_lsb) + hweight32(hdcp_ctrl->aksv_msb)) hdcp_ctrl 272 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c __func__, hdcp_ctrl->aksv_msb, hdcp_ctrl 273 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->aksv_lsb); hdcp_ctrl 276 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c DBG("AKSV=%02x%08x", hdcp_ctrl->aksv_msb, hdcp_ctrl->aksv_lsb); hdcp_ctrl 281 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_reset_hdcp_ddc_failures(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 283 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 331 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 20, AUTH_ABORT_EV); hdcp_ctrl 344 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 20, AUTH_ABORT_EV); hdcp_ctrl 356 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_hw_ddc_clean(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 363 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 388 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 20, AUTH_ABORT_EV); hdcp_ctrl 398 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi_hdcp_ctrl *hdcp_ctrl = container_of(work, hdcp_ctrl 400 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 424 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (msm_hdmi_hdcp_hw_ddc_clean(hdcp_ctrl)) { hdcp_ctrl 442 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (++hdcp_ctrl->auth_retries == AUTH_RETRIES_TIME) { hdcp_ctrl 443 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdcp_state = HDCP_STATE_INACTIVE; hdcp_ctrl 444 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->auth_retries = 0; hdcp_ctrl 451 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdcp_state = HDCP_STATE_AUTHENTICATING; hdcp_ctrl 452 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c queue_work(hdmi->workq, &hdcp_ctrl->hdcp_auth_work); hdcp_ctrl 455 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_auth_prepare(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 457 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 463 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (!hdcp_ctrl->aksv_valid) { hdcp_ctrl 464 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_read_validate_aksv(hdcp_ctrl); hdcp_ctrl 467 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdcp_state = HDCP_STATE_NO_AKSV; hdcp_ctrl 470 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->aksv_valid = true; hdcp_ctrl 490 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_SW_LOWER_AKSV, hdcp_ctrl->aksv_lsb); hdcp_ctrl 491 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi_write(hdmi, REG_HDMI_HDCP_SW_UPPER_AKSV, hdcp_ctrl->aksv_msb); hdcp_ctrl 532 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_reset_hdcp_ddc_failures(hdcp_ctrl); hdcp_ctrl 537 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static void msm_hdmi_hdcp_auth_fail(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 539 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 551 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdcp_state = HDCP_STATE_AUTH_FAILED; hdcp_ctrl 552 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c queue_work(hdmi->workq, &hdcp_ctrl->hdcp_reauth_work); hdcp_ctrl 555 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static void msm_hdmi_hdcp_auth_done(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 557 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 578 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdcp_state = HDCP_STATE_AUTHENTICATED; hdcp_ctrl 579 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->auth_retries = 0; hdcp_ctrl 590 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_wait_key_an_ready(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 593 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 615 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 20, AUTH_ABORT_EV); hdcp_ctrl 637 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 20, AUTH_ABORT_EV); hdcp_ctrl 645 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_send_aksv_an(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 648 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 689 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_recv_bksv(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 692 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 703 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->bksv_lsb = bksv[0] | (bksv[1] << 8) | hdcp_ctrl 705 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->bksv_msb = bksv[4]; hdcp_ctrl 706 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c DBG(":BKSV=%02x%08x", hdcp_ctrl->bksv_msb, hdcp_ctrl->bksv_lsb); hdcp_ctrl 709 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if ((hweight32(hdcp_ctrl->bksv_lsb) + hweight32(hdcp_ctrl->bksv_msb)) hdcp_ctrl 719 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c data[0] = hdcp_ctrl->bksv_lsb; hdcp_ctrl 721 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c data[1] = hdcp_ctrl->bksv_msb; hdcp_ctrl 722 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_scm_wr(hdcp_ctrl, reg, data, 2); hdcp_ctrl 727 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_recv_bcaps(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 730 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 742 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->ds_type = (bcaps & BIT(6)) ? DS_REPEATER : DS_RECEIVER; hdcp_ctrl 747 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_scm_wr(hdcp_ctrl, ®, &data, 1); hdcp_ctrl 752 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_auth_part1_key_exchange(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 754 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 759 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_wait_key_an_ready(hdcp_ctrl); hdcp_ctrl 766 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_recv_bcaps(hdcp_ctrl); hdcp_ctrl 779 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_send_aksv_an(hdcp_ctrl); hdcp_ctrl 786 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_recv_bksv(hdcp_ctrl); hdcp_ctrl 806 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_auth_part1_recv_r0(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 808 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 816 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 125, AUTH_ABORT_EV); hdcp_ctrl 836 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_auth_part1_verify_r0(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 838 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 843 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 10000, AUTH_RESULT_RDY_EV); hdcp_ctrl 863 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_recv_check_bstatus(struct hdmi_hdcp_ctrl *hdcp_ctrl, hdcp_ctrl 867 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 923 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->dev_count = down_stream_devices; hdcp_ctrl 924 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->max_cascade_exceeded = max_cascade_exceeded; hdcp_ctrl 925 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->max_dev_exceeded = max_devs_exceeded; hdcp_ctrl 926 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->depth = repeater_cascade_depth; hdcp_ctrl 931 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 934 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 962 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 20, AUTH_ABORT_EV); hdcp_ctrl 967 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_recv_check_bstatus(hdcp_ctrl, &bstatus); hdcp_ctrl 976 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_scm_wr(hdcp_ctrl, ®, &data, 1); hdcp_ctrl 991 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_transfer_v_h(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 993 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 1021 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_scm_wr(hdcp_ctrl, reg, data, size); hdcp_ctrl 1027 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_recv_ksv_fifo(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 1030 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 1033 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c ksv_bytes = 5 * hdcp_ctrl->dev_count; hdcp_ctrl 1036 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->ksv_list, ksv_bytes); hdcp_ctrl 1043 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_reset_sha_engine(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 1053 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_scm_wr(hdcp_ctrl, reg, data, 2); hdcp_ctrl 1059 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 1075 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_recv_ksv_fifo(hdcp_ctrl); hdcp_ctrl 1085 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 25, AUTH_ABORT_EV); hdcp_ctrl 1090 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_transfer_v_h(hdcp_ctrl); hdcp_ctrl 1097 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_reset_sha_engine(hdcp_ctrl); hdcp_ctrl 1114 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_write_ksv_fifo(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 1117 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 1123 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c ksv_bytes = 5 * hdcp_ctrl->dev_count; hdcp_ctrl 1126 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (hdcp_ctrl->ksv_fifo_w_index) { hdcp_ctrl 1129 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (hdcp_ctrl->ksv_fifo_w_index == ksv_bytes) { hdcp_ctrl 1146 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c ksv_bytes -= hdcp_ctrl->ksv_fifo_w_index; hdcp_ctrl 1152 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c ksv_fifo = hdcp_ctrl->ksv_list; hdcp_ctrl 1153 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c ksv_fifo += hdcp_ctrl->ksv_fifo_w_index; hdcp_ctrl 1163 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_scm_wr(hdcp_ctrl, ®, &data, 1); hdcp_ctrl 1169 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->ksv_fifo_w_index += ksv_bytes; hdcp_ctrl 1179 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 1184 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->ksv_fifo_w_index = 0; hdcp_ctrl 1187 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_write_ksv_fifo(hdcp_ctrl); hdcp_ctrl 1200 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 20, AUTH_ABORT_EV); hdcp_ctrl 1208 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c static int msm_hdmi_hdcp_auth_part2_check_v_match(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 1211 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 1226 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_msleep(hdcp_ctrl, 20, AUTH_ABORT_EV); hdcp_ctrl 1236 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi_hdcp_ctrl *hdcp_ctrl = container_of(work, hdcp_ctrl 1240 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_auth_prepare(hdcp_ctrl); hdcp_ctrl 1247 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_auth_part1_key_exchange(hdcp_ctrl); hdcp_ctrl 1253 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_auth_part1_recv_r0(hdcp_ctrl); hdcp_ctrl 1259 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_auth_part1_verify_r0(hdcp_ctrl); hdcp_ctrl 1265 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (hdcp_ctrl->ds_type == DS_RECEIVER) hdcp_ctrl 1269 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_auth_part2_wait_ksv_fifo_ready(hdcp_ctrl); hdcp_ctrl 1275 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_auth_part2_recv_ksv_fifo(hdcp_ctrl); hdcp_ctrl 1281 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_auth_part2_write_ksv_fifo(hdcp_ctrl); hdcp_ctrl 1287 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c rc = msm_hdmi_hdcp_auth_part2_check_v_match(hdcp_ctrl); hdcp_ctrl 1298 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c msm_hdmi_hdcp_auth_fail(hdcp_ctrl); hdcp_ctrl 1300 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c msm_hdmi_hdcp_auth_done(hdcp_ctrl); hdcp_ctrl 1304 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c void msm_hdmi_hdcp_on(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 1306 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 1310 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if ((HDCP_STATE_INACTIVE != hdcp_ctrl->hdcp_state) || hdcp_ctrl 1311 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c (HDCP_STATE_NO_AKSV == hdcp_ctrl->hdcp_state)) { hdcp_ctrl 1323 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->auth_event = 0; hdcp_ctrl 1324 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdcp_state = HDCP_STATE_AUTHENTICATING; hdcp_ctrl 1325 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->auth_retries = 0; hdcp_ctrl 1326 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c queue_work(hdmi->workq, &hdcp_ctrl->hdcp_auth_work); hdcp_ctrl 1329 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c void msm_hdmi_hdcp_off(struct hdmi_hdcp_ctrl *hdcp_ctrl) hdcp_ctrl 1331 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi *hdmi = hdcp_ctrl->hdmi; hdcp_ctrl 1335 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if ((HDCP_STATE_INACTIVE == hdcp_ctrl->hdcp_state) || hdcp_ctrl 1336 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c (HDCP_STATE_NO_AKSV == hdcp_ctrl->hdcp_state)) { hdcp_ctrl 1366 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c set_bit(AUTH_ABORT_EV, &hdcp_ctrl->auth_event); hdcp_ctrl 1367 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c wake_up_all(&hdcp_ctrl->auth_event_queue); hdcp_ctrl 1368 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c cancel_work_sync(&hdcp_ctrl->hdcp_auth_work); hdcp_ctrl 1369 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c cancel_work_sync(&hdcp_ctrl->hdcp_reauth_work); hdcp_ctrl 1388 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdcp_state = HDCP_STATE_INACTIVE; hdcp_ctrl 1395 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c struct hdmi_hdcp_ctrl *hdcp_ctrl = NULL; hdcp_ctrl 1403 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl = kzalloc(sizeof(*hdcp_ctrl), GFP_KERNEL); hdcp_ctrl 1404 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c if (!hdcp_ctrl) hdcp_ctrl 1407 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c INIT_WORK(&hdcp_ctrl->hdcp_auth_work, msm_hdmi_hdcp_auth_work); hdcp_ctrl 1408 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c INIT_WORK(&hdcp_ctrl->hdcp_reauth_work, msm_hdmi_hdcp_reauth_work); hdcp_ctrl 1409 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c init_waitqueue_head(&hdcp_ctrl->auth_event_queue); hdcp_ctrl 1410 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdmi = hdmi; hdcp_ctrl 1411 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->hdcp_state = HDCP_STATE_INACTIVE; hdcp_ctrl 1412 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->aksv_valid = false; hdcp_ctrl 1415 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->tz_hdcp = true; hdcp_ctrl 1417 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdcp_ctrl->tz_hdcp = false; hdcp_ctrl 1419 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c return hdcp_ctrl; hdcp_ctrl 1425 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c kfree(hdmi->hdcp_ctrl); hdcp_ctrl 1426 drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c hdmi->hdcp_ctrl = NULL;