msm: mdss: hdmi: reset HDCP core during reauthentication

Reset HDCP engine during HDCP reauthentication. This will
prevent HDCP engine from going into a bad state of
continuous authentication failures.

Change-Id: I727857c23673c55d77144d63fc4de2c89d6ec5a6
Signed-off-by: Casey Piper <cpiper@codeaurora.org>
This commit is contained in:
Casey Piper 2015-02-17 17:40:50 -08:00 committed by David Keitel
parent 341887ec2d
commit 8d2a693f40
2 changed files with 14 additions and 0 deletions

View file

@ -1242,6 +1242,7 @@ int hdmi_hdcp_reauthenticate(void *input)
{
struct hdmi_hdcp_ctrl *hdcp_ctrl = (struct hdmi_hdcp_ctrl *)input;
struct dss_io_data *io;
u32 hdmi_hw_version;
u32 ret = 0;
if (!hdcp_ctrl || !hdcp_ctrl->init_data.core_io) {
@ -1266,6 +1267,12 @@ int hdmi_hdcp_reauthenticate(void *input)
DSS_REG_W(io, HDMI_HPD_CTRL, DSS_REG_R(hdcp_ctrl->init_data.core_io,
HDMI_HPD_CTRL) & ~BIT(28));
hdmi_hw_version = DSS_REG_R(io, HDMI_VERSION);
if (hdmi_hw_version >= 0x30030000) {
DSS_REG_W(io, HDMI_CTRL_SW_RESET, BIT(1));
DSS_REG_W(io, HDMI_CTRL_SW_RESET, 0);
}
/* Disable HDCP interrupts */
DSS_REG_W(io, HDMI_HDCP_INT_CTRL, 0);

View file

@ -207,6 +207,13 @@
#define HDMI_CEC_RD_TOTAL_RANGE (0x00000368)
#define HDMI_CEC_RD_ERR_RESP_LO (0x0000036C)
#define HDMI_CEC_WR_CHECK_CONFIG (0x00000370)
#define HDMI_INTERNAL_TIMING_MODE (0x00000374)
#define HDMI_CTRL_SW_RESET (0x00000378)
#define HDMI_CTRL_AUDIO_RESET (0x0000037C)
#define HDMI_SCRATCH (0x00000380)
#define HDMI_CLK_CTRL (0x00000384)
#define HDMI_CLK_ACTIVE (0x00000388)
#define HDMI_VBI_CFG (0x0000038C)
#define HDMI_DDC_INT_CTRL0 (0x00000430)
#define HDMI_DDC_INT_CTRL1 (0x00000434)
#define HDMI_DDC_INT_CTRL2 (0x00000438)