OSDN Git Service

drm/v3d: fix wait for TMU write combiner flush
authorIago Toral Quiroga <itoral@igalia.com>
Wed, 15 Sep 2021 10:05:07 +0000 (12:05 +0200)
committerMelissa Wen <melissa.srw@gmail.com>
Wed, 15 Sep 2021 17:43:37 +0000 (18:43 +0100)
The hardware sets the TMUWCF bit back to 0 when the TMU write
combiner flush completes so we should be checking for that instead
of the L2TFLS bit.

v2 (Melissa Wen):
  - Add Signed-off-by and Fixes tags.
  - Change the error message for the timeout to be more clear.

Fixes spurious Vulkan CTS failures in:
dEQP-VK.binding_model.descriptorset_random.*

Fixes: d223f98f02099 ("drm/v3d: Add support for compute shader dispatch.")
Signed-off-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210915100507.3945-1-itoral@igalia.com
drivers/gpu/drm/v3d/v3d_gem.c

index a352980..1953706 100644 (file)
@@ -197,8 +197,8 @@ v3d_clean_caches(struct v3d_dev *v3d)
 
        V3D_CORE_WRITE(core, V3D_CTL_L2TCACTL, V3D_L2TCACTL_TMUWCF);
        if (wait_for(!(V3D_CORE_READ(core, V3D_CTL_L2TCACTL) &
-                      V3D_L2TCACTL_L2TFLS), 100)) {
-               DRM_ERROR("Timeout waiting for L1T write combiner flush\n");
+                      V3D_L2TCACTL_TMUWCF), 100)) {
+               DRM_ERROR("Timeout waiting for TMU write combiner flush\n");
        }
 
        mutex_lock(&v3d->cache_clean_lock);