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>
This commit is contained in:
Benjamin Chan 2016-09-15 22:49:49 -04:00 committed by Gerrit - the friendly Code Review server
parent 6c104f8d40
commit 870adafb68

View file

@ -356,8 +356,6 @@ static void sde_hw_rotator_dump_status(struct sde_hw_rotator *rot)
REGDMA_CSR_REGDMA_INVALID_CMD_RAM_OFFSET), REGDMA_CSR_REGDMA_INVALID_CMD_RAM_OFFSET),
SDE_ROTREG_READ(rot->mdss_base, SDE_ROTREG_READ(rot->mdss_base,
REGDMA_CSR_REGDMA_FSM_STATE)); 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; sts = (status & ROT_ERROR_BIT) ? -ENODEV : 0;
if (status & ROT_ERROR_BIT)
SDEROT_EVTLOG_TOUT_HANDLER("rot", "vbif_dbg_bus", "panic");
return sts; return sts;
} }