diff options
-rw-r--r-- | drivers/gpu/drm/i915/i915_drv.h | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_lvds.c | 9 |
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 | ||