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)
committerChris Wilson <chris@chris-wilson.co.uk>
Thu, 4 Aug 2016 09:28:05 +0000 (10:28 +0100)
commit36dbc4d76918d7557b686f807106dcc799174b12
tree275ce92daef1bb730d114e2d7adebd5ba7e8c0dd
parent5ac9793bf9f43cb4d8ecdcc521be1ba87057841a
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
drivers/gpu/drm/i915/intel_fbc.c