msm: mdss: fix mdp busy wait race condition
DSI software does not wait for MDP_DONE ISR
before sending new frame if burst mode feature is
enabled. It leads to race condition in below case
* MDP kicks off frame-N and mdp_busy sets to true
* MDP receives new frame-N+1 and waits for
PP_DONE interrupt before sending N+1 frame.
* MDP receives PP_DONE interrupt and kicks off
frame-N+1 (DSI_MDP_DONE interrupt is not received yet).
* Frame-N+1 kickoff sets the mdp_busy wait to true.
* DSI receives DSI_MDP_DONE interrupt for frame-N and
reset the mdp_busy to false.
* Any clock off call can turn off the clock at this moment.
DSI software must always execute busy_wait when kickoff
happens from mdp. That avoids the busy wait race condition.
Change-Id: I462cd5ad21d6ccc08dfb862e98fd6fafeef686d4
Signed-off-by:
Dhaval Patel <pdhaval@codeaurora.org>
Loading
Please register or sign in to comment