From a7cdb17e1433930ca80d532f3ea7277c6b8692c8 Mon Sep 17 00:00:00 2001 From: Gaurav K Singh Date: Wed, 18 Sep 2019 17:03:09 +0530 Subject: [PATCH] drm/i915: Fix display corruption and abnormal color On cometlake chromebooks, we are seeing the screen shows several large blue horizontal stripes over the top. Also, corruption happens when we switch from a chrome browser tab to VT2 mode(by pressing Ctrl+Alt+F2) and then back to chrome tab. Signed-off-by: Gaurav K Singh --- drivers/gpu/drm/i915/i915_drv.h | 10 ++++++++++ drivers/gpu/drm/i915/intel_fbc.c | 2 ++ 2 files changed, 12 insertions(+) diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 9140e7652ab9..06373122c1d9 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -2492,6 +2492,16 @@ static inline unsigned int i915_sg_segment_size(void) #define IS_CNL_WITH_PORT_F(dev_priv) (IS_CANNONLAKE(dev_priv) && \ (INTEL_DEVID(dev_priv) & 0x0004) == 0x0004) +#define IS_CML_GT2(dev_priv) (INTEL_DEVID(dev_priv) == 0x9B41 || \ + INTEL_DEVID(dev_priv) == 0x9BCA || \ + INTEL_DEVID(dev_priv) == 0x9BCB || \ + INTEL_DEVID(dev_priv) == 0x9BCC || \ + INTEL_DEVID(dev_priv) == 0x9BC0 || \ + INTEL_DEVID(dev_priv) == 0x9BC5 || \ + INTEL_DEVID(dev_priv) == 0x9BC8 || \ + INTEL_DEVID(dev_priv) == 0x9BC4 || \ + INTEL_DEVID(dev_priv) == 0x9BC2) + #define IS_ALPHA_SUPPORT(intel_info) ((intel_info)->is_alpha_support) #define SKL_REVID_A0 0x0 diff --git a/drivers/gpu/drm/i915/intel_fbc.c b/drivers/gpu/drm/i915/intel_fbc.c index 10d447080672..baac44c6a7ed 100644 --- a/drivers/gpu/drm/i915/intel_fbc.c +++ b/drivers/gpu/drm/i915/intel_fbc.c @@ -1079,6 +1079,8 @@ void intel_fbc_enable(struct intel_crtc *crtc, if (fbc->crtc == crtc) { WARN_ON(!crtc_state->enable_fbc); WARN_ON(fbc->active); + if (IS_CML_GT2(dev_priv)) + intel_wait_for_vblank(dev_priv, crtc->pipe); } goto out; } -- 1.9.1