diff options
| author | Benjamin Chan <bkchan@codeaurora.org> | 2016-09-15 22:49:49 -0400 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-09-16 08:55:22 -0700 |
| commit | 870adafb68129c795d3d178f6ae2585228310c2f (patch) | |
| tree | 4d4c18f3480ab6ace799188aa9e6e2d3f4637bd9 | |
| parent | 6c104f8d40e59cc9299ddef18d92709d8cda3483 (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.c | 5 |
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; } |
