aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h1
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index fbecac72f5bb..25c1047f6ecd 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -561,6 +561,7 @@ typedef struct drm_i915_private {
561 u16 orig_clock; 561 u16 orig_clock;
562 int child_dev_num; 562 int child_dev_num;
563 struct child_device_config *child_dev; 563 struct child_device_config *child_dev;
564 struct drm_connector *int_lvds_connector;
564} drm_i915_private_t; 565} drm_i915_private_t;
565 566
566/** driver private structure attached to each drm_gem_object */ 567/** driver private structure attached to each drm_gem_object */
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index b3188a0b4979..f4b4aa242df1 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -686,7 +686,14 @@ static int intel_lid_notify(struct notifier_block *nb, unsigned long val,
686 struct drm_i915_private *dev_priv = 686 struct drm_i915_private *dev_priv =
687 container_of(nb, struct drm_i915_private, lid_notifier); 687 container_of(nb, struct drm_i915_private, lid_notifier);
688 struct drm_device *dev = dev_priv->dev; 688 struct drm_device *dev = dev_priv->dev;
689 struct drm_connector *connector = dev_priv->int_lvds_connector;
689 690
691 /*
692 * check and update the status of LVDS connector after receiving
693 * the LID nofication event.
694 */
695 if (connector)
696 connector->status = connector->funcs->detect(connector);
690 if (!acpi_lid_open()) { 697 if (!acpi_lid_open()) {
691 dev_priv->modeset_on_lid = 1; 698 dev_priv->modeset_on_lid = 1;
692 return NOTIFY_OK; 699 return NOTIFY_OK;
@@ -1124,6 +1131,8 @@ out:
1124 DRM_DEBUG_KMS("lid notifier registration failed\n"); 1131 DRM_DEBUG_KMS("lid notifier registration failed\n");
1125 dev_priv->lid_notifier.notifier_call = NULL; 1132 dev_priv->lid_notifier.notifier_call = NULL;
1126 } 1133 }
1134 /* keep the LVDS connector */
1135 dev_priv->int_lvds_connector = connector;
1127 drm_sysfs_connector_add(connector); 1136 drm_sysfs_connector_add(connector);
1128 return; 1137 return;
1129 1138