aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2014-01-10 07:06:45 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2014-01-10 12:03:17 -0500
commitdc9e7decf13d49ff80fa690455ad89379b6b01aa (patch)
tree872d94174fa055fa860d816826ee4aecdf2920d4
parent669ab5aaeb3bedaae758c938d0efafe8aad07ed0 (diff)
drm/i915: No panel fitter on 830M or non-mobile gen2/3 platforms
PFIT_CONTROL doesn't exist on 830M, so avoid reading it in i9xx_get_pfit_config(). Also assume that only mobile gen2/3 chipsets have a panel fitter. This matches the documentation, but I didn't have real hardware to verify. Gen4 docmentation is a bit inconsistent, but experimenetation on my LPT machine suggests that the panel fitter is available on non-mobile gen4 platforms. At least on this machine panel fitter appears works just fine even on VGA output. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--drivers/gpu/drm/i915/intel_display.c3
-rw-r--r--drivers/gpu/drm/i915/intel_overlay.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index fe2d71a1c39e..db1e0a4eb359 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5439,6 +5439,9 @@ static void i9xx_get_pfit_config(struct intel_crtc *crtc,
5439 struct drm_i915_private *dev_priv = dev->dev_private; 5439 struct drm_i915_private *dev_priv = dev->dev_private;
5440 uint32_t tmp; 5440 uint32_t tmp;
5441 5441
5442 if (INTEL_INFO(dev)->gen <= 3 && (IS_I830(dev) || !IS_MOBILE(dev)))
5443 return;
5444
5442 tmp = I915_READ(PFIT_CONTROL); 5445 tmp = I915_READ(PFIT_CONTROL);
5443 if (!(tmp & PFIT_ENABLE)) 5446 if (!(tmp & PFIT_ENABLE))
5444 return; 5447 return;
diff --git a/drivers/gpu/drm/i915/intel_overlay.c b/drivers/gpu/drm/i915/intel_overlay.c
index a98a990fbab3..a759ecdb7a6e 100644
--- a/drivers/gpu/drm/i915/intel_overlay.c
+++ b/drivers/gpu/drm/i915/intel_overlay.c
@@ -1005,7 +1005,7 @@ static int intel_panel_fitter_pipe(struct drm_device *dev)
1005 u32 pfit_control; 1005 u32 pfit_control;
1006 1006
1007 /* i830 doesn't have a panel fitter */ 1007 /* i830 doesn't have a panel fitter */
1008 if (IS_I830(dev)) 1008 if (INTEL_INFO(dev)->gen <= 3 && (IS_I830(dev) || !IS_MOBILE(dev)))
1009 return -1; 1009 return -1;
1010 1010
1011 pfit_control = I915_READ(PFIT_CONTROL); 1011 pfit_control = I915_READ(PFIT_CONTROL);