drm/i915/dsb: Avoid corrupting the first register write
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 6 Jun 2023 19:14:51 +0000 (22:14 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 7 Sep 2023 12:44:16 +0000 (15:44 +0300)
commit088ca02108fcb75ae60a82f031a2f6aea731c818
tree41f232e6cdce6404a03aefd5ba739d246dd859b4
parent9055e73e8e6a545e43cbc4fd3c9083eeccd8121a
drm/i915/dsb: Avoid corrupting the first register write

i915_gem_object_create_internal() does not hand out zeroed
memory. Thus we may confuse whatever stale garbage is in
there as a previous register write and mistakenly handle the
first actual register write as an indexed write. This can
end up corrupting the instruction sufficiently well to lose
the entire register write.

Make sure we've actually emitted a previous instruction before
attemting indexed register write merging.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230606191504.18099-7-ville.syrjala@linux.intel.com
Reviewed-by: Animesh Manna <animesh.manna@intel.com>
drivers/gpu/drm/i915/display/intel_dsb.c