msm: mdss: dp: fix watchdog reset with DP connected in AOD mode
With DP connected and device in AOD mode, DP is powered off during suspend operation. But at the same time, if device receives HPD_IRQ attention event, DP driver is trying to access unclocked registers. Handle HPD_IRQ attention event only if DP is fully powered ON. Change-Id: I425e34e8456fb828c1bddd6e0b4bf92772092a61 Signed-off-by: Narender Ankam <nankam@codeaurora.org>
This commit is contained in:
parent
f2485229cd
commit
7c5760d495
1 changed files with 9 additions and 6 deletions
|
@ -3978,12 +3978,6 @@ static int mdss_dp_process_hpd_irq_high(struct mdss_dp_drv_pdata *dp)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
/* In case of HPD_IRQ events without DP link being turned on such as
|
|
||||||
* adb shell stop, skip handling hpd_irq event.
|
|
||||||
*/
|
|
||||||
if (!dp->dp_initialized)
|
|
||||||
goto exit;
|
|
||||||
|
|
||||||
pr_debug("start\n");
|
pr_debug("start\n");
|
||||||
|
|
||||||
dp->hpd_irq_on = true;
|
dp->hpd_irq_on = true;
|
||||||
|
@ -4099,6 +4093,15 @@ static void mdss_dp_process_attention(struct mdss_dp_drv_pdata *dp_drv)
|
||||||
if (dp_drv->alt_mode.dp_status.hpd_irq) {
|
if (dp_drv->alt_mode.dp_status.hpd_irq) {
|
||||||
pr_debug("Attention: hpd_irq high\n");
|
pr_debug("Attention: hpd_irq high\n");
|
||||||
|
|
||||||
|
/* In case of HPD_IRQ events without DP link being
|
||||||
|
* turned on such as adb shell stop, skip handling
|
||||||
|
* hpd_irq event.
|
||||||
|
*/
|
||||||
|
if (!dp_drv->dp_initialized) {
|
||||||
|
pr_err("DP not initialized yet\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (dp_is_hdcp_enabled(dp_drv) && dp_drv->hdcp.ops->cp_irq) {
|
if (dp_is_hdcp_enabled(dp_drv) && dp_drv->hdcp.ops->cp_irq) {
|
||||||
if (!dp_drv->hdcp.ops->cp_irq(dp_drv->hdcp.data))
|
if (!dp_drv->hdcp.ops->cp_irq(dp_drv->hdcp.data))
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Reference in a new issue