aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_lvds.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2013-06-06 16:22:47 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-06-18 08:05:20 -0400
commitc9093354a1e839be057aee66bac37bd3b2f44d0e (patch)
tree9428e13f7c0db5bb009f03070bd72ccf72e9d75a /drivers/gpu/drm/i915/intel_lvds.c
parent3eff4faa9f59c581538663e3f42b9e16210cafd0 (diff)
drm/i915: stop killing pfit on i9xx
Nowadays (i.e. with Valleyview) we also have edp on non-PCH_SPLIT platforms, so just checking for LVDS is not good enough. Secondly we have full pfit pipe config tracking, so we'll correctly disable the pfit as part of the initial modeset. For fastboot we need a bit of work here to correctly kill unsupported configs (if e.g. the pfit is used on anything else than the built-in panel). But since that's not yet supported we don't need to worry. Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_lvds.c')
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 10c3d56332f5..eeff28ec2ff4 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -877,7 +877,7 @@ static bool intel_lvds_supported(struct drm_device *dev)
877 * Create the connector, register the LVDS DDC bus, and try to figure out what 877 * Create the connector, register the LVDS DDC bus, and try to figure out what
878 * modes we can display on the LVDS panel (if present). 878 * modes we can display on the LVDS panel (if present).
879 */ 879 */
880bool intel_lvds_init(struct drm_device *dev) 880void intel_lvds_init(struct drm_device *dev)
881{ 881{
882 struct drm_i915_private *dev_priv = dev->dev_private; 882 struct drm_i915_private *dev_priv = dev->dev_private;
883 struct intel_lvds_encoder *lvds_encoder; 883 struct intel_lvds_encoder *lvds_encoder;
@@ -895,35 +895,35 @@ bool intel_lvds_init(struct drm_device *dev)
895 u8 pin; 895 u8 pin;
896 896
897 if (!intel_lvds_supported(dev)) 897 if (!intel_lvds_supported(dev))
898 return false; 898 return;
899 899
900 /* Skip init on machines we know falsely report LVDS */ 900 /* Skip init on machines we know falsely report LVDS */
901 if (dmi_check_system(intel_no_lvds)) 901 if (dmi_check_system(intel_no_lvds))
902 return false; 902 return;
903 903
904 pin = GMBUS_PORT_PANEL; 904 pin = GMBUS_PORT_PANEL;
905 if (!lvds_is_present_in_vbt(dev, &pin)) { 905 if (!lvds_is_present_in_vbt(dev, &pin)) {
906 DRM_DEBUG_KMS("LVDS is not present in VBT\n"); 906 DRM_DEBUG_KMS("LVDS is not present in VBT\n");
907 return false; 907 return;
908 } 908 }
909 909
910 if (HAS_PCH_SPLIT(dev)) { 910 if (HAS_PCH_SPLIT(dev)) {
911 if ((I915_READ(PCH_LVDS) & LVDS_DETECTED) == 0) 911 if ((I915_READ(PCH_LVDS) & LVDS_DETECTED) == 0)
912 return false; 912 return;
913 if (dev_priv->vbt.edp_support) { 913 if (dev_priv->vbt.edp_support) {
914 DRM_DEBUG_KMS("disable LVDS for eDP support\n"); 914 DRM_DEBUG_KMS("disable LVDS for eDP support\n");
915 return false; 915 return;
916 } 916 }
917 } 917 }
918 918
919 lvds_encoder = kzalloc(sizeof(struct intel_lvds_encoder), GFP_KERNEL); 919 lvds_encoder = kzalloc(sizeof(struct intel_lvds_encoder), GFP_KERNEL);
920 if (!lvds_encoder) 920 if (!lvds_encoder)
921 return false; 921 return;
922 922
923 lvds_connector = kzalloc(sizeof(struct intel_lvds_connector), GFP_KERNEL); 923 lvds_connector = kzalloc(sizeof(struct intel_lvds_connector), GFP_KERNEL);
924 if (!lvds_connector) { 924 if (!lvds_connector) {
925 kfree(lvds_encoder); 925 kfree(lvds_encoder);
926 return false; 926 return;
927 } 927 }
928 928
929 lvds_encoder->attached_connector = lvds_connector; 929 lvds_encoder->attached_connector = lvds_connector;
@@ -1094,7 +1094,7 @@ out:
1094 intel_panel_init(&intel_connector->panel, fixed_mode); 1094 intel_panel_init(&intel_connector->panel, fixed_mode);
1095 intel_panel_setup_backlight(connector); 1095 intel_panel_setup_backlight(connector);
1096 1096
1097 return true; 1097 return;
1098 1098
1099failed: 1099failed:
1100 DRM_DEBUG_KMS("No LVDS modes found, disabling.\n"); 1100 DRM_DEBUG_KMS("No LVDS modes found, disabling.\n");
@@ -1104,5 +1104,5 @@ failed:
1104 drm_mode_destroy(dev, fixed_mode); 1104 drm_mode_destroy(dev, fixed_mode);
1105 kfree(lvds_encoder); 1105 kfree(lvds_encoder);
1106 kfree(lvds_connector); 1106 kfree(lvds_connector);
1107 return false; 1107 return;
1108} 1108}