drm/i915/gt: Correct surface base address for renderclear
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 10 Feb 2021 12:27:28 +0000 (12:27 +0000)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 17 Feb 2021 11:19:04 +0000 (06:19 -0500)
The surface_state_base is an offset into the batch, so we need to pass
the correct batch address for STATE_BASE_ADDRESS.

Fixes: 47f8253d2b89 ("drm/i915/gen7: Clear all EU/L3 residual contexts")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Prathap Kumar Valsan <prathap.kumar.valsan@intel.com>
Cc: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: <stable@vger.kernel.org> # v5.7+
Link: https://patchwork.freedesktop.org/patch/msgid/20210210122728.20097-1-chris@chris-wilson.co.uk
(cherry picked from commit 1914911f4aa08ddc05bae71d3516419463e0c567)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/i915/gt/gen7_renderclear.c

index e403eb046a43869d6d439f14fe3a6bf9e3a7c714..de575fdb033f5acb9b3c4ccf47e45af3228e586e 100644 (file)
@@ -240,7 +240,7 @@ gen7_emit_state_base_address(struct batch_chunk *batch,
        /* general */
        *cs++ = batch_addr(batch) | BASE_ADDRESS_MODIFY;
        /* surface */
-       *cs++ = batch_addr(batch) | surface_state_base | BASE_ADDRESS_MODIFY;
+       *cs++ = (batch_addr(batch) + surface_state_base) | BASE_ADDRESS_MODIFY;
        /* dynamic */
        *cs++ = batch_addr(batch) | BASE_ADDRESS_MODIFY;
        /* indirect */