From f36688aca2a57dde14d189e81ac63bf549c2add1 Mon Sep 17 00:00:00 2001 From: Zhenyu Wang Date: Thu, 6 Aug 2009 21:56:51 +0800 Subject: [PATCH 1/2] drm/i915: fix errata for sync flush enable on 845G/830M The sync flush enable mask on 845G and 830M is flipped. So driver should invert it usage. Signed-off-by: Zhenyu Wang --- drivers/gpu/drm/i915/i915_dma.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 8c47831..867943a 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1039,9 +1039,13 @@ static int i915_load_modeset_init(struct drm_device *dev, /* * Initialize the hardware status page IRQ location. + * errata: on 845G and 830M, bit 21's polarity is reversed, + * so the usage is inverted. */ - - I915_WRITE(INSTPM, (1 << 5) | (1 << 21)); + if (IS_845G(dev) || IS_I830(dev)) + I915_WRITE(INSTPM, (1 << 5) | (0 << 21)); + else + I915_WRITE(INSTPM, (1 << 5) | (1 << 21)); intel_modeset_init(dev); -- 1.6.3.3