msm: mdss: hdmi: Do not toggle HPD during HDCP re-authentication

Do not toggle the HPD circuitry during HDCP re-authentication as
this has undesirable side effects such as failure to detect cable
disconnection event. The HDCP engine already has a dedicated
software interface used to reset during HDCP re-authentication.

Change-Id: I76be51ea286fadabefc436613b420c4d6ac1946a
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
This commit is contained in:
Tatenda Chipeperekwa 2016-01-15 12:45:26 -08:00 committed by David Keitel
parent 933552698c
commit bc27abf530

View file

@ -1,4 +1,4 @@
/* Copyright (c) 2010-2015 The Linux Foundation. All rights reserved. /* Copyright (c) 2010-2016 The Linux Foundation. All rights reserved.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and * it under the terms of the GNU General Public License version 2 and
@ -1363,15 +1363,6 @@ int hdmi_hdcp_reauthenticate(void *input)
return 0; return 0;
} }
/*
* Disable HPD circuitry.
* This is needed to reset the HDCP cipher engine so that when we
* attempt a re-authentication, HW would clear the AN0_READY and
* AN1_READY bits in HDMI_HDCP_LINK0_STATUS register
*/
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); hdmi_hw_version = DSS_REG_R(io, HDMI_VERSION);
if (hdmi_hw_version >= 0x30030000) { if (hdmi_hw_version >= 0x30030000) {
DSS_REG_W(io, HDMI_CTRL_SW_RESET, BIT(1)); DSS_REG_W(io, HDMI_CTRL_SW_RESET, BIT(1));
@ -1389,11 +1380,6 @@ int hdmi_hdcp_reauthenticate(void *input)
/* Disable encryption and disable the HDCP block */ /* Disable encryption and disable the HDCP block */
DSS_REG_W(io, HDMI_HDCP_CTRL, 0); DSS_REG_W(io, HDMI_HDCP_CTRL, 0);
/* Enable HPD circuitry */
DSS_REG_W(hdcp_ctrl->init_data.core_io, HDMI_HPD_CTRL,
DSS_REG_R(hdcp_ctrl->init_data.core_io,
HDMI_HPD_CTRL) | BIT(28));
/* Restart authentication attempt */ /* Restart authentication attempt */
DEV_DBG("%s: %s: Scheduling work to start HDCP authentication", DEV_DBG("%s: %s: Scheduling work to start HDCP authentication",
__func__, HDCP_STATE_NAME); __func__, HDCP_STATE_NAME);