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)) { |
