summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Chan <bkchan@codeaurora.org>2016-09-15 22:49:49 -0400
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-16 08:55:22 -0700
commit870adafb68129c795d3d178f6ae2585228310c2f (patch)
tree4d4c18f3480ab6ace799188aa9e6e2d3f4637bd9
parent6c104f8d40e59cc9299ddef18d92709d8cda3483 (diff)
msm: sde: Move SDE rotator timeout evtlog outside of spinlock
During an timeout event in the SDE rotator driver, a spinlock with IRQ is disabled in order to capture the rotator hw status registers. If during this time performs an evtlog timeout logging, a mutex_lock within the logging sequence will cause a panic. We must and only should perform the evtlog timeout logging after the spinlock is released. CRs-Fixed: 1067811 Change-Id: I56b7e5713069ad8ac8d5ae43a492a0ab0f4e82ff Signed-off-by: Benjamin Chan <bkchan@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c b/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
index 548131393835..e9d2dd5ec972 100644
--- a/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
+++ b/drivers/media/platform/msm/sde/rotator/sde_rotator_r3.c
@@ -356,8 +356,6 @@ static void sde_hw_rotator_dump_status(struct sde_hw_rotator *rot)
REGDMA_CSR_REGDMA_INVALID_CMD_RAM_OFFSET),
SDE_ROTREG_READ(rot->mdss_base,
REGDMA_CSR_REGDMA_FSM_STATE));
-
- SDEROT_EVTLOG_TOUT_HANDLER("rot", "vbif_dbg_bus", "panic");
}
/**
@@ -1096,6 +1094,9 @@ static u32 sde_hw_rotator_wait_done_regdma(
sts = (status & ROT_ERROR_BIT) ? -ENODEV : 0;
+ if (status & ROT_ERROR_BIT)
+ SDEROT_EVTLOG_TOUT_HANDLER("rot", "vbif_dbg_bus", "panic");
+
return sts;
}