drm/msm: Take single rpm refcount on behalf of all submits
Instead of separate refcount for each submit, take single rpm refcount on behalf of all the submits. This makes it easier to drop the rpm refcount during recovery in an upcoming patch. Signed-off-by: Akhil P Oommen <quic_akhilpo@quicinc.com> Patchwork: https://patchwork.freedesktop.org/patch/498392/ Link: https://lore.kernel.org/r/20220819015030.v5.2.Ifee853f6d8217a0fdacc459092bbc9e81a8a7ac7@changeid Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
parent
125e03b2b2
commit
5b26f37d13
@ -664,11 +664,12 @@ static void retire_submit(struct msm_gpu *gpu, struct msm_ringbuffer *ring,
|
||||
mutex_lock(&gpu->active_lock);
|
||||
gpu->active_submits--;
|
||||
WARN_ON(gpu->active_submits < 0);
|
||||
if (!gpu->active_submits)
|
||||
if (!gpu->active_submits) {
|
||||
msm_devfreq_idle(gpu);
|
||||
mutex_unlock(&gpu->active_lock);
|
||||
pm_runtime_put_autosuspend(&gpu->pdev->dev);
|
||||
}
|
||||
|
||||
pm_runtime_put_autosuspend(&gpu->pdev->dev);
|
||||
mutex_unlock(&gpu->active_lock);
|
||||
|
||||
msm_gem_submit_put(submit);
|
||||
}
|
||||
@ -757,14 +758,17 @@ void msm_gpu_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit)
|
||||
|
||||
/* Update devfreq on transition from idle->active: */
|
||||
mutex_lock(&gpu->active_lock);
|
||||
if (!gpu->active_submits)
|
||||
if (!gpu->active_submits) {
|
||||
pm_runtime_get(&gpu->pdev->dev);
|
||||
msm_devfreq_active(gpu);
|
||||
}
|
||||
gpu->active_submits++;
|
||||
mutex_unlock(&gpu->active_lock);
|
||||
|
||||
gpu->funcs->submit(gpu, submit);
|
||||
gpu->cur_ctx_seqno = submit->queue->ctx->seqno;
|
||||
|
||||
pm_runtime_put(&gpu->pdev->dev);
|
||||
hangcheck_timer_reset(gpu);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user