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:
Veera Sundaram Sankaran
2019-07-08 17:47:11 -07:00
parent a6bfb7fc1e
commit 76262482ed
2 changed files with 4 additions and 4 deletions

View File

@@ -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;

View File

@@ -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);
} }