Lines Matching refs:hdmi
58 struct hdmi *hdmi; member
87 static int hdmi_ddc_read(struct hdmi *hdmi, u16 addr, u8 offset, in hdmi_ddc_read() argument
108 rc = i2c_transfer(hdmi->i2c, msgs, 2); in hdmi_ddc_read()
125 static int hdmi_ddc_write(struct hdmi *hdmi, u16 addr, u8 offset, in hdmi_ddc_write() argument
150 rc = i2c_transfer(hdmi->i2c, msgs, 1); in hdmi_ddc_write()
168 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_scm_wr() local
176 phy_addr = (u32)hdmi->mmio_phy_addr; in hdmi_hdcp_scm_wr()
199 hdmi_write(hdmi, preg[i], pdata[i]); in hdmi_hdcp_scm_wr()
207 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_irq() local
211 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_irq()
212 reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_INT_CTRL); in hdmi_hdcp_irq()
215 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_irq()
223 hdmi_write(hdmi, REG_HDMI_HDCP_INT_CTRL, reg_val); in hdmi_hdcp_irq()
224 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_irq()
237 reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); in hdmi_hdcp_irq()
241 queue_work(hdmi->workq, &hdcp_ctrl->hdcp_reauth_work); in hdmi_hdcp_irq()
269 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_read_validate_aksv() local
272 hdcp_ctrl->aksv_lsb = hdmi_qfprom_read(hdmi, HDCP_KSV_LSB); in hdmi_hdcp_read_validate_aksv()
273 hdcp_ctrl->aksv_msb = hdmi_qfprom_read(hdmi, HDCP_KSV_MSB); in hdmi_hdcp_read_validate_aksv()
292 struct hdmi *hdmi = hdcp_ctrl->hdmi; in reset_hdcp_ddc_failures() local
297 reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_DDC_STATUS); in reset_hdcp_ddc_failures()
314 hdmi_write(hdmi, REG_HDMI_HDCP_DDC_CTRL_0, in reset_hdcp_ddc_failures()
318 reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_DDC_CTRL_1); in reset_hdcp_ddc_failures()
320 hdmi_write(hdmi, REG_HDMI_HDCP_DDC_CTRL_1, reg_val); in reset_hdcp_ddc_failures()
323 reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_DDC_STATUS); in reset_hdcp_ddc_failures()
329 hdmi_write(hdmi, REG_HDMI_HDCP_DDC_CTRL_0, 0); in reset_hdcp_ddc_failures()
334 hdmi_read(hdmi, REG_HDMI_DDC_SW_STATUS)); in reset_hdcp_ddc_failures()
336 reg_val = hdmi_read(hdmi, REG_HDMI_DDC_CTRL); in reset_hdcp_ddc_failures()
338 hdmi_write(hdmi, REG_HDMI_DDC_CTRL, reg_val); in reset_hdcp_ddc_failures()
342 reg_val = hdmi_read(hdmi, REG_HDMI_DDC_CTRL); in reset_hdcp_ddc_failures()
344 hdmi_write(hdmi, REG_HDMI_DDC_CTRL, reg_val); in reset_hdcp_ddc_failures()
347 reg_val = hdmi_read(hdmi, REG_HDMI_DDC_CTRL); in reset_hdcp_ddc_failures()
349 hdmi_write(hdmi, REG_HDMI_DDC_CTRL, reg_val); in reset_hdcp_ddc_failures()
355 reg_val = hdmi_read(hdmi, REG_HDMI_DDC_CTRL); in reset_hdcp_ddc_failures()
357 hdmi_write(hdmi, REG_HDMI_DDC_CTRL, reg_val); in reset_hdcp_ddc_failures()
359 hdmi_read(hdmi, REG_HDMI_DDC_SW_STATUS)); in reset_hdcp_ddc_failures()
372 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_hw_ddc_clean() local
374 if (hdmi_read(hdmi, REG_HDMI_DDC_HW_STATUS) == 0) in hdmi_hdcp_hw_ddc_clean()
380 hdcp_ddc_status = hdmi_read(hdmi, REG_HDMI_HDCP_DDC_STATUS); in hdmi_hdcp_hw_ddc_clean()
381 ddc_hw_status = hdmi_read(hdmi, REG_HDMI_DDC_HW_STATUS); in hdmi_hdcp_hw_ddc_clean()
409 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_reauth_work() local
420 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_reauth_work()
421 reg_val = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); in hdmi_hdcp_reauth_work()
423 hdmi_write(hdmi, REG_HDMI_HPD_CTRL, reg_val); in hdmi_hdcp_reauth_work()
426 hdmi_write(hdmi, REG_HDMI_HDCP_INT_CTRL, 0); in hdmi_hdcp_reauth_work()
427 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_reauth_work()
429 hdmi_write(hdmi, REG_HDMI_HDCP_RESET, in hdmi_hdcp_reauth_work()
439 hdmi_write(hdmi, REG_HDMI_HDCP_CTRL, 0); in hdmi_hdcp_reauth_work()
442 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_reauth_work()
443 reg_val = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); in hdmi_hdcp_reauth_work()
445 hdmi_write(hdmi, REG_HDMI_HPD_CTRL, reg_val); in hdmi_hdcp_reauth_work()
446 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_reauth_work()
461 queue_work(hdmi->workq, &hdcp_ctrl->hdcp_auth_work); in hdmi_hdcp_reauth_work()
466 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_auth_prepare() local
482 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_prepare()
484 reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); in hdmi_hdcp_auth_prepare()
486 hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); in hdmi_hdcp_auth_prepare()
489 reg_val = hdmi_read(hdmi, REG_HDMI_DDC_ARBITRATION); in hdmi_hdcp_auth_prepare()
491 hdmi_write(hdmi, REG_HDMI_DDC_ARBITRATION, reg_val); in hdmi_hdcp_auth_prepare()
492 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_prepare()
499 hdmi_write(hdmi, REG_HDMI_HDCP_SW_LOWER_AKSV, hdcp_ctrl->aksv_lsb); in hdmi_hdcp_auth_prepare()
500 hdmi_write(hdmi, REG_HDMI_HDCP_SW_UPPER_AKSV, hdcp_ctrl->aksv_msb); in hdmi_hdcp_auth_prepare()
506 hdmi_write(hdmi, REG_HDMI_HDCP_ENTROPY_CTRL0, 0xB1FFB0FF); in hdmi_hdcp_auth_prepare()
507 hdmi_write(hdmi, REG_HDMI_HDCP_ENTROPY_CTRL1, 0xF00DFACE); in hdmi_hdcp_auth_prepare()
510 reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_DEBUG_CTRL); in hdmi_hdcp_auth_prepare()
512 hdmi_write(hdmi, REG_HDMI_HDCP_DEBUG_CTRL, reg_val); in hdmi_hdcp_auth_prepare()
514 hdmi_read(hdmi, REG_HDMI_HDCP_DEBUG_CTRL)); in hdmi_hdcp_auth_prepare()
527 hdmi_write(hdmi, REG_HDMI_HDCP_CTRL, HDMI_HDCP_CTRL_ENABLE); in hdmi_hdcp_auth_prepare()
533 link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); in hdmi_hdcp_auth_prepare()
548 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_auth_fail() local
554 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_fail()
555 reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); in hdmi_hdcp_auth_fail()
557 hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); in hdmi_hdcp_auth_fail()
558 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_fail()
561 queue_work(hdmi->workq, &hdcp_ctrl->hdcp_reauth_work); in hdmi_hdcp_auth_fail()
566 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_auth_done() local
574 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_done()
575 reg_val = hdmi_read(hdmi, REG_HDMI_DDC_ARBITRATION); in hdmi_hdcp_auth_done()
577 hdmi_write(hdmi, REG_HDMI_DDC_ARBITRATION, reg_val); in hdmi_hdcp_auth_done()
578 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_done()
581 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_done()
582 reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); in hdmi_hdcp_auth_done()
584 hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); in hdmi_hdcp_auth_done()
585 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_done()
602 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_wait_key_an_ready() local
610 link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); in hdmi_hdcp_wait_key_an_ready()
631 link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); in hdmi_hdcp_wait_key_an_ready()
657 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_send_aksv_an() local
663 link0_an[0] = hdmi_read(hdmi, REG_HDMI_HDCP_RCVPORT_DATA5); in hdmi_hdcp_send_aksv_an()
664 link0_an[1] = hdmi_read(hdmi, REG_HDMI_HDCP_RCVPORT_DATA6); in hdmi_hdcp_send_aksv_an()
667 link0_aksv_0 = hdmi_read(hdmi, REG_HDMI_HDCP_RCVPORT_DATA3); in hdmi_hdcp_send_aksv_an()
668 link0_aksv_1 = hdmi_read(hdmi, REG_HDMI_HDCP_RCVPORT_DATA4); in hdmi_hdcp_send_aksv_an()
679 rc = hdmi_ddc_write(hdmi, HDCP_PORT_ADDR, 0x18, (u8 *)link0_an, in hdmi_hdcp_send_aksv_an()
688 rc = hdmi_ddc_write(hdmi, HDCP_PORT_ADDR, 0x10, aksv, 5); in hdmi_hdcp_send_aksv_an()
701 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_recv_bksv() local
706 rc = hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x00, bksv, 5); in hdmi_hdcp_recv_bksv()
739 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_recv_bcaps() local
743 rc = hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x40, &bcaps, 1); in hdmi_hdcp_recv_bcaps()
763 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_auth_part1_key_exchange() local
785 hdmi_write(hdmi, REG_HDMI_HDCP_RCVPORT_DATA4, 0); in hdmi_hdcp_auth_part1_key_exchange()
802 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_part1_key_exchange()
803 hdmi_write(hdmi, REG_HDMI_HDCP_INT_CTRL, in hdmi_hdcp_auth_part1_key_exchange()
809 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_auth_part1_key_exchange()
817 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_auth_part1_recv_r0() local
830 rc = hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x08, buf, 2); in hdmi_hdcp_auth_part1_recv_r0()
838 hdmi_write(hdmi, REG_HDMI_HDCP_RCVPORT_DATA2_0, in hdmi_hdcp_auth_part1_recv_r0()
847 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_auth_part1_verify_r0() local
858 link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); in hdmi_hdcp_auth_part1_verify_r0()
865 hdmi_write(hdmi, REG_HDMI_HDCP_CTRL, in hdmi_hdcp_auth_part1_verify_r0()
876 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_recv_check_bstatus() local
883 rc = hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x41, buf, 2); in hdmi_hdcp_recv_check_bstatus()
943 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_auth_part2_wait_ksv_fifo_ready() local
956 rc = hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x40, &bcaps, 1); in hdmi_hdcp_auth_part2_wait_ksv_fifo_ready()
1002 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_transfer_v_h() local
1019 rc = hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, in hdmi_hdcp_transfer_v_h()
1039 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_recv_ksv_fifo() local
1044 rc = hdmi_ddc_read(hdmi, HDCP_PORT_ADDR, 0x43, in hdmi_hdcp_recv_ksv_fifo()
1126 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_write_ksv_fifo() local
1136 reg_val = hdmi_read(hdmi, REG_HDMI_HDCP_SHA_STATUS); in hdmi_hdcp_write_ksv_fifo()
1220 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_auth_part2_check_v_match() local
1225 link0_status = hdmi_read(hdmi, REG_HDMI_HDCP_LINK0_STATUS); in hdmi_hdcp_auth_part2_check_v_match()
1315 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_on() local
1326 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_on()
1327 reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); in hdmi_hdcp_on()
1329 hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); in hdmi_hdcp_on()
1330 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_on()
1335 queue_work(hdmi->workq, &hdcp_ctrl->hdcp_auth_work); in hdmi_hdcp_on()
1340 struct hdmi *hdmi = hdcp_ctrl->hdmi; in hdmi_hdcp_off() local
1356 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_off()
1357 reg_val = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); in hdmi_hdcp_off()
1359 hdmi_write(hdmi, REG_HDMI_HPD_CTRL, reg_val); in hdmi_hdcp_off()
1366 hdmi_write(hdmi, REG_HDMI_HDCP_INT_CTRL, 0); in hdmi_hdcp_off()
1367 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_off()
1380 hdmi_write(hdmi, REG_HDMI_HDCP_RESET, in hdmi_hdcp_off()
1384 hdmi_write(hdmi, REG_HDMI_HDCP_CTRL, 0); in hdmi_hdcp_off()
1386 spin_lock_irqsave(&hdmi->reg_lock, flags); in hdmi_hdcp_off()
1387 reg_val = hdmi_read(hdmi, REG_HDMI_CTRL); in hdmi_hdcp_off()
1389 hdmi_write(hdmi, REG_HDMI_CTRL, reg_val); in hdmi_hdcp_off()
1392 reg_val = hdmi_read(hdmi, REG_HDMI_HPD_CTRL); in hdmi_hdcp_off()
1394 hdmi_write(hdmi, REG_HDMI_HPD_CTRL, reg_val); in hdmi_hdcp_off()
1395 spin_unlock_irqrestore(&hdmi->reg_lock, flags); in hdmi_hdcp_off()
1402 struct hdmi_hdcp_ctrl *hdmi_hdcp_init(struct hdmi *hdmi) in hdmi_hdcp_init() argument
1406 if (!hdmi->qfprom_mmio) { in hdmi_hdcp_init()
1419 hdcp_ctrl->hdmi = hdmi; in hdmi_hdcp_init()
1431 void hdmi_hdcp_destroy(struct hdmi *hdmi) in hdmi_hdcp_destroy() argument
1433 if (hdmi && hdmi->hdcp_ctrl) { in hdmi_hdcp_destroy()
1434 kfree(hdmi->hdcp_ctrl); in hdmi_hdcp_destroy()
1435 hdmi->hdcp_ctrl = NULL; in hdmi_hdcp_destroy()