lkml.org 
[lkml]   [2021]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 027/168] drm/etnaviv: keep MMU context across runtime suspend/resume
    Date
    From: Lucas Stach <l.stach@pengutronix.de>

    commit 8f3eea9d01d7b0f95b0fe04187c0059019ada85b upstream.

    The MMU state may be kept across a runtime suspend/resume cycle, as we
    avoid a full hardware reset to keep the latency of the runtime PM small.

    Don't pretend that the MMU state is lost in driver state. The MMU
    context is pushed out when new HW jobs with a different context are
    coming in. The only exception to this is when the GPU is unbound, in
    which case we need to make sure to also free the last active context.

    Cc: stable@vger.kernel.org # 5.4
    Reported-by: Michael Walle <michael@walle.cc>
    Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
    Tested-by: Michael Walle <michael@walle.cc>
    Tested-by: Marek Vasut <marex@denx.de>
    Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
    +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
    @@ -1590,9 +1590,6 @@ static int etnaviv_gpu_hw_suspend(struct
    */
    etnaviv_gpu_wait_idle(gpu, 100);

    - etnaviv_iommu_context_put(gpu->mmu_context);
    - gpu->mmu_context = NULL;
    -
    gpu->fe_running = false;
    }

    @@ -1741,6 +1738,9 @@ static void etnaviv_gpu_unbind(struct de
    etnaviv_gpu_hw_suspend(gpu);
    #endif

    + if (gpu->mmu_context)
    + etnaviv_iommu_context_put(gpu->mmu_context);
    +
    if (gpu->initialized) {
    etnaviv_cmdbuf_free(&gpu->buffer);
    etnaviv_iommu_global_fini(gpu);

    \
     
     \ /
      Last update: 2021-09-20 20:41    [W:4.036 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site