aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-09-26 17:24:14 -0400
committerKeith Packard <keithp@keithp.com>2011-09-27 14:12:26 -0400
commitabd06860185fc613776adae792772e076d77caf2 (patch)
tree40dcc4465130ad9df6c0a79d3685853196dca6be /drivers/gpu
parent562396b9e46bcb34cc18f513fea1c4764d8ea06d (diff)
drv/i915: Pull display_clock_mode out of VBT table
This tells the driver whether a CK505 clock source is available on pre-PCH hardware. If so, it should be used as the non-SSC source, leaving the internal clock for use as the SSC source. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Chris Wison <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h1
-rw-r--r--drivers/gpu/drm/i915/intel_bios.c6
-rw-r--r--drivers/gpu/drm/i915/intel_bios.h4
3 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 7916bd97d5c1..18df595b3992 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -357,6 +357,7 @@ typedef struct drm_i915_private {
357 unsigned int lvds_vbt:1; 357 unsigned int lvds_vbt:1;
358 unsigned int int_crt_support:1; 358 unsigned int int_crt_support:1;
359 unsigned int lvds_use_ssc:1; 359 unsigned int lvds_use_ssc:1;
360 unsigned int display_clock_mode:1;
360 int lvds_ssc_freq; 361 int lvds_ssc_freq;
361 struct { 362 struct {
362 int rate; 363 int rate;
diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
index dcbc83986d41..eb58784faf91 100644
--- a/drivers/gpu/drm/i915/intel_bios.c
+++ b/drivers/gpu/drm/i915/intel_bios.c
@@ -309,11 +309,13 @@ parse_general_features(struct drm_i915_private *dev_priv,
309 dev_priv->lvds_use_ssc = general->enable_ssc; 309 dev_priv->lvds_use_ssc = general->enable_ssc;
310 dev_priv->lvds_ssc_freq = 310 dev_priv->lvds_ssc_freq =
311 intel_bios_ssc_frequency(dev, general->ssc_freq); 311 intel_bios_ssc_frequency(dev, general->ssc_freq);
312 DRM_DEBUG_KMS("BDB_GENERAL_FEATURES int_tv_support %d int_crt_support %d lvds_use_ssc %d lvds_ssc_freq %d\n", 312 dev_priv->display_clock_mode = general->display_clock_mode;
313 DRM_DEBUG_KMS("BDB_GENERAL_FEATURES int_tv_support %d int_crt_support %d lvds_use_ssc %d lvds_ssc_freq %d display_clock_mode %d\n",
313 dev_priv->int_tv_support, 314 dev_priv->int_tv_support,
314 dev_priv->int_crt_support, 315 dev_priv->int_crt_support,
315 dev_priv->lvds_use_ssc, 316 dev_priv->lvds_use_ssc,
316 dev_priv->lvds_ssc_freq); 317 dev_priv->lvds_ssc_freq,
318 dev_priv->display_clock_mode);
317 } 319 }
318} 320}
319 321
diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
index 5f8e4edcbbb9..02b1b62415df 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -120,7 +120,9 @@ struct bdb_general_features {
120 u8 ssc_freq:1; 120 u8 ssc_freq:1;
121 u8 enable_lfp_on_override:1; 121 u8 enable_lfp_on_override:1;
122 u8 disable_ssc_ddt:1; 122 u8 disable_ssc_ddt:1;
123 u8 rsvd8:3; /* finish byte */ 123 u8 rsvd7:1;
124 u8 display_clock_mode:1;
125 u8 rsvd8:1; /* finish byte */
124 126
125 /* bits 3 */ 127 /* bits 3 */
126 u8 disable_smooth_vision:1; 128 u8 disable_smooth_vision:1;