diff options
author | Keith Packard <keithp@keithp.com> | 2011-09-26 17:24:14 -0400 |
---|---|---|
committer | Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com> | 2011-12-12 08:07:01 -0500 |
commit | 066912131a2a1241a143beb68d792cd26b128078 (patch) | |
tree | ab7909064dbe4ad56e11daf6c3e0383c961b708b /drivers/gpu/drm | |
parent | ab162933f2f6badaa43ca71bc4509799a0f9e41a (diff) |
drv/i915: Pull display_clock_mode out of VBT table
BugLink: http://bugs.launchpad.net/bugs/614238
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>
(cherry picked from commit abd06860185fc613776adae792772e076d77caf2)
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Acked-by: Herton Krzesinski <herton.krzesinski@canonical.com>
Acked-by: Seth Forshee <seth.forshee@canonical.com>
Diffstat (limited to 'drivers/gpu/drm')
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_bios.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_bios.h | 4 |
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 4fd4350d04b..5c2d4c74b76 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 bdac1a8cbae..70361fcee41 100644 --- a/drivers/gpu/drm/i915/intel_bios.c +++ b/drivers/gpu/drm/i915/intel_bios.c | |||
@@ -285,11 +285,13 @@ parse_general_features(struct drm_i915_private *dev_priv, | |||
285 | dev_priv->lvds_use_ssc = general->enable_ssc; | 285 | dev_priv->lvds_use_ssc = general->enable_ssc; |
286 | dev_priv->lvds_ssc_freq = | 286 | dev_priv->lvds_ssc_freq = |
287 | intel_bios_ssc_frequency(dev, general->ssc_freq); | 287 | intel_bios_ssc_frequency(dev, general->ssc_freq); |
288 | DRM_DEBUG_KMS("BDB_GENERAL_FEATURES int_tv_support %d int_crt_support %d lvds_use_ssc %d lvds_ssc_freq %d\n", | 288 | dev_priv->display_clock_mode = general->display_clock_mode; |
289 | 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", | ||
289 | dev_priv->int_tv_support, | 290 | dev_priv->int_tv_support, |
290 | dev_priv->int_crt_support, | 291 | dev_priv->int_crt_support, |
291 | dev_priv->lvds_use_ssc, | 292 | dev_priv->lvds_use_ssc, |
292 | dev_priv->lvds_ssc_freq); | 293 | dev_priv->lvds_ssc_freq, |
294 | dev_priv->display_clock_mode); | ||
293 | } | 295 | } |
294 | } | 296 | } |
295 | 297 | ||
diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h index 5f8e4edcbbb..02b1b62415d 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; |