diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2014-06-25 11:24:29 -0400 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2014-06-30 06:48:48 -0400 |
commit | 84b4e042c4707bd1bf05094a51111403d680dc39 (patch) | |
tree | 1bced95ae4556027f81a4142169e7f8793fd3670 | |
parent | 33c3b0d19184cb11bfe8cf8e552918650f81f767 (diff) |
drm/i915: only apply crt_present check on VLV
Apparently we can't trust this field on other platforms and need to find
some other way.
This fixes a regression introduced in
commit 27da3bdfcf7f5233cdfe4563f53edf1ecab7cea0
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date: Fri Apr 4 16:12:07 2014 -0700
drm/i915: use VBT to determine whether to enumerate the VGA port
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 33725ed9215a..556c916dbf9d 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -11097,6 +11097,22 @@ const char *intel_output_name(int output) | |||
11097 | return names[output]; | 11097 | return names[output]; |
11098 | } | 11098 | } |
11099 | 11099 | ||
11100 | static bool intel_crt_present(struct drm_device *dev) | ||
11101 | { | ||
11102 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
11103 | |||
11104 | if (IS_ULT(dev)) | ||
11105 | return false; | ||
11106 | |||
11107 | if (IS_CHERRYVIEW(dev)) | ||
11108 | return false; | ||
11109 | |||
11110 | if (IS_VALLEYVIEW(dev) && !dev_priv->vbt.int_crt_support) | ||
11111 | return false; | ||
11112 | |||
11113 | return true; | ||
11114 | } | ||
11115 | |||
11100 | static void intel_setup_outputs(struct drm_device *dev) | 11116 | static void intel_setup_outputs(struct drm_device *dev) |
11101 | { | 11117 | { |
11102 | struct drm_i915_private *dev_priv = dev->dev_private; | 11118 | struct drm_i915_private *dev_priv = dev->dev_private; |
@@ -11105,7 +11121,7 @@ static void intel_setup_outputs(struct drm_device *dev) | |||
11105 | 11121 | ||
11106 | intel_lvds_init(dev); | 11122 | intel_lvds_init(dev); |
11107 | 11123 | ||
11108 | if (!IS_ULT(dev) && !IS_CHERRYVIEW(dev) && dev_priv->vbt.int_crt_support) | 11124 | if (intel_crt_present(dev)) |
11109 | intel_crt_init(dev); | 11125 | intel_crt_init(dev); |
11110 | 11126 | ||
11111 | if (HAS_DDI(dev)) { | 11127 | if (HAS_DDI(dev)) { |