drm/i915/fbc: FBC causes display flicker when VT-d is enabled on Skylake
authorChris Wilson <chris@chris-wilson.co.uk>
Thu, 4 Aug 2016 07:43:53 +0000 (08:43 +0100)
committerJani Nikula <jani.nikula@intel.com>
Wed, 10 Aug 2016 21:58:18 +0000 (00:58 +0300)
commit0a491b96aa59a7232f6c1a81414aa57fb8de8594
tree771c654bf0076224288c33be6b4292d3adb51e06
parentd8b6161f7294b63180da443c9ff48c7efce182eb
drm/i915/fbc: FBC causes display flicker when VT-d is enabled on Skylake

Erratum SKL075: Display Flicker May Occur When Both VT-d And FBC Are Enabled

"Display flickering may occur when both FBC (Frame Buffer Compression)
and VT - d (Intel® Virtualization Technology for Directed I/O) are enabled
and in use by the display controller."

Ville found the w/a name in the database:
WaFbcTurnOffFbcWhenHyperVisorIsUsed:skl,bxt and also dug out that it
affects Broxton.

v2: Log when the quirk is applied.
v3: Ensure i915.enable_fbc is false when !HAS_FBC()
v4: Fix function name after rebase
v5: Add Broxton to the workaround

Note for backporting to stable, we need to add
  #define mkwrite_device_info(ptr) \
((struct intel_device_info *)INTEL_INFO(ptr))

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: stable@vger.kernel.org
Link: http://patchwork.freedesktop.org/patch/msgid/1470296633-20388-1-git-send-email-chris@chris-wilson.co.uk
(cherry picked from commit 36dbc4d76918d7557b686f807106dcc799174b12)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/intel_fbc.c