]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Make cursor plane registers unlocked
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 11 Feb 2022 09:26:04 +0000 (11:26 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 24 Feb 2022 15:51:51 +0000 (17:51 +0200)
commiteccf1a21704d1118f38bd8b0edd803b3a7b2fddc
treecc9897ee509897c21c750f1fac1f22fcf0a83eda
parentd4e1a3a0948116e0a8dd0b388ff6410e064dea65
drm/i915: Make cursor plane registers unlocked

Drop the locks around cursor plane register writes. The
lock isn't needed since each plane's register are neatly
contained on their own cachelines.

The locking did have a secondary effect of disabling
interrupts around the cursor registers writes though.
If we drop that then we open outselves up for sceduling
delays and whatnot while on the middle of the register
writes. That increases the chance of not all the register
writes land during the same frame. For normal atomic
commits this is not a concern as the vblank evade mechanism
anyway disables interrupts around the update, but the legacy
cursor codepath does not. Technically we should do a vblank
evade there as well, but so far no one has bothered to hook
that up. So in the meantime let's put an explicit local irq
disable/enable around the legacy cursor update to keep the
race window minimal.

v2: local_irq_{disable,enable}() for legacy cursor ioctl

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220211092604.393-1-ville.syrjala@linux.intel.com
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
drivers/gpu/drm/i915/display/intel_cursor.c