提交 bb60b969 编写于 作者: J Jesse Barnes 提交者: Daniel Vetter

drm/i915: emit a hotplug event on resume

This will poke userspace into probing for configuration changes that may
have occurred across suspend/resume.
Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: NRodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
上级 24576d23
...@@ -545,6 +545,24 @@ void intel_console_resume(struct work_struct *work) ...@@ -545,6 +545,24 @@ void intel_console_resume(struct work_struct *work)
console_unlock(); console_unlock();
} }
static void intel_resume_hotplug(struct drm_device *dev)
{
struct drm_mode_config *mode_config = &dev->mode_config;
struct intel_encoder *encoder;
mutex_lock(&mode_config->mutex);
DRM_DEBUG_KMS("running encoder hotplug functions\n");
list_for_each_entry(encoder, &mode_config->encoder_list, base.head)
if (encoder->hot_plug)
encoder->hot_plug(encoder);
mutex_unlock(&mode_config->mutex);
/* Just fire off a uevent and let userspace tell us what to do */
drm_helper_hpd_irq_event(dev);
}
static int __i915_drm_thaw(struct drm_device *dev) static int __i915_drm_thaw(struct drm_device *dev)
{ {
struct drm_i915_private *dev_priv = dev->dev_private; struct drm_i915_private *dev_priv = dev->dev_private;
...@@ -580,6 +598,8 @@ static int __i915_drm_thaw(struct drm_device *dev) ...@@ -580,6 +598,8 @@ static int __i915_drm_thaw(struct drm_device *dev)
* */ * */
intel_hpd_init(dev); intel_hpd_init(dev);
dev_priv->enable_hotplug_processing = true; dev_priv->enable_hotplug_processing = true;
/* Config may have changed between suspend and resume */
intel_resume_hotplug(dev);
} }
intel_opregion_init(dev); intel_opregion_init(dev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册