>
> A fully GPU reset is the only way to disable the MMUv2 and the
> driver depends on the MMU being disabled after a reset to be able
> to properly restart the GPU. Validate this assumption by checking
> that the reset actually did disable the MMU.
>
> Signed-off-by: Lucas Stach <[email protected]>

Reviewed-by: Christian Gmeiner <[email protected]>

> ---
>  drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c 
> b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> index 34fff36af450..577fc8131976 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c
> @@ -601,6 +601,23 @@ static int etnaviv_hw_reset(struct etnaviv_gpu *gpu)
>                         continue;
>                 }
>
> +               /* try resetting again if MMUv2 is not disabled */
> +               if (gpu->identity.minor_features1 & 
> chipMinorFeatures1_MMU_VERSION) {
> +                       if (gpu->sec_mode == ETNA_SEC_KERNEL) {
> +                               if (gpu_read(gpu, VIVS_MMUv2_SEC_CONTROL) &
> +                                   VIVS_MMUv2_SEC_CONTROL_ENABLE) {
> +                                       dev_dbg(gpu->dev, "MMU is not 
> disabled\n");
> +                                       continue;
> +                               }
> +                       } else {
> +                               if (gpu_read(gpu, VIVS_MMUv2_CONTROL) &
> +                                   VIVS_MMUv2_CONTROL_ENABLE) {
> +                                       dev_dbg(gpu->dev, "MMU is not 
> disabled\n");
> +                                       continue;
> +                               }
> +                       }
> +               }
> +
>                 /* enable debug register access */
>                 control &= ~VIVS_HI_CLOCK_CONTROL_DISABLE_DEBUG_REGISTERS;
>                 gpu_write(gpu, VIVS_HI_CLOCK_CONTROL, control);
> --
> 2.47.3
>


-- 
greets
--
Christian Gmeiner, MSc

https://christian-gmeiner.info/privacypolicy

Reply via email to