disp: msm: sde: allow fence signalling during crtc disable
With the new ASYNC power-mode changes, user-mode can request for retire/release fences during power-mode changes. This is used as a signal for power-mode completion by user-mode. Allow preparing/signalling these fences during crtc enable/disable to support it. Change-Id: I7709cd4762c8d77776ba6ba2d07aa6b76b5262d0 Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
@@ -370,13 +370,13 @@ void sde_fence_signal(struct sde_fence_context *ctx, ktime_t ts,
|
|||||||
spin_lock_irqsave(&ctx->lock, flags);
|
spin_lock_irqsave(&ctx->lock, flags);
|
||||||
if (fence_event == SDE_FENCE_RESET_TIMELINE) {
|
if (fence_event == SDE_FENCE_RESET_TIMELINE) {
|
||||||
if ((int)(ctx->done_count - ctx->commit_count) < 0) {
|
if ((int)(ctx->done_count - ctx->commit_count) < 0) {
|
||||||
SDE_ERROR(
|
SDE_DEBUG(
|
||||||
"timeline reset attempt! done count:%d commit:%d\n",
|
"timeline reset attempt! done count:%d commit:%d\n",
|
||||||
ctx->done_count, ctx->commit_count);
|
ctx->done_count, ctx->commit_count);
|
||||||
ctx->done_count = ctx->commit_count;
|
ctx->done_count = ctx->commit_count;
|
||||||
SDE_EVT32(ctx->drm_id, ctx->done_count,
|
SDE_EVT32(ctx->drm_id, ctx->done_count,
|
||||||
ctx->commit_count, ktime_to_us(ts),
|
ctx->commit_count, ktime_to_us(ts),
|
||||||
fence_event, SDE_EVTLOG_FATAL);
|
fence_event, SDE_EVTLOG_FUNC_CASE1);
|
||||||
} else {
|
} else {
|
||||||
spin_unlock_irqrestore(&ctx->lock, flags);
|
spin_unlock_irqrestore(&ctx->lock, flags);
|
||||||
return;
|
return;
|
||||||
|
@@ -1060,7 +1060,7 @@ retry:
|
|||||||
|
|
||||||
/* old_state actually contains updated crtc pointers */
|
/* old_state actually contains updated crtc pointers */
|
||||||
for_each_old_crtc_in_state(old_state, crtc, old_crtc_state, i) {
|
for_each_old_crtc_in_state(old_state, crtc, old_crtc_state, i) {
|
||||||
if (crtc->state->active)
|
if (crtc->state->active || crtc->state->active_changed)
|
||||||
sde_crtc_prepare_commit(crtc, old_crtc_state);
|
sde_crtc_prepare_commit(crtc, old_crtc_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user