drm: extract drm_kms_helper_hotplug_event
Useful if drivers want to be slightly more clever about hotplug handling. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
c6eefa1750
commit
3d3683f04a
|
@ -936,6 +936,15 @@ int drm_helper_resume_force_mode(struct drm_device *dev)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(drm_helper_resume_force_mode);
|
EXPORT_SYMBOL(drm_helper_resume_force_mode);
|
||||||
|
|
||||||
|
void drm_kms_helper_hotplug_event(struct drm_device *dev)
|
||||||
|
{
|
||||||
|
/* send a uevent + call fbdev */
|
||||||
|
drm_sysfs_hotplug_event(dev);
|
||||||
|
if (dev->mode_config.funcs->output_poll_changed)
|
||||||
|
dev->mode_config.funcs->output_poll_changed(dev);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(drm_kms_helper_hotplug_event);
|
||||||
|
|
||||||
#define DRM_OUTPUT_POLL_PERIOD (10*HZ)
|
#define DRM_OUTPUT_POLL_PERIOD (10*HZ)
|
||||||
static void output_poll_execute(struct work_struct *work)
|
static void output_poll_execute(struct work_struct *work)
|
||||||
{
|
{
|
||||||
|
@ -978,12 +987,8 @@ static void output_poll_execute(struct work_struct *work)
|
||||||
|
|
||||||
mutex_unlock(&dev->mode_config.mutex);
|
mutex_unlock(&dev->mode_config.mutex);
|
||||||
|
|
||||||
if (changed) {
|
if (changed)
|
||||||
/* send a uevent + call fbdev */
|
drm_kms_helper_hotplug_event(dev);
|
||||||
drm_sysfs_hotplug_event(dev);
|
|
||||||
if (dev->mode_config.funcs->output_poll_changed)
|
|
||||||
dev->mode_config.funcs->output_poll_changed(dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (repoll)
|
if (repoll)
|
||||||
schedule_delayed_work(delayed_work, DRM_OUTPUT_POLL_PERIOD);
|
schedule_delayed_work(delayed_work, DRM_OUTPUT_POLL_PERIOD);
|
||||||
|
|
|
@ -164,6 +164,7 @@ extern int drm_helper_resume_force_mode(struct drm_device *dev);
|
||||||
extern void drm_kms_helper_poll_init(struct drm_device *dev);
|
extern void drm_kms_helper_poll_init(struct drm_device *dev);
|
||||||
extern void drm_kms_helper_poll_fini(struct drm_device *dev);
|
extern void drm_kms_helper_poll_fini(struct drm_device *dev);
|
||||||
extern void drm_helper_hpd_irq_event(struct drm_device *dev);
|
extern void drm_helper_hpd_irq_event(struct drm_device *dev);
|
||||||
|
extern void drm_kms_helper_hotplug_event(struct drm_device *dev);
|
||||||
|
|
||||||
extern void drm_kms_helper_poll_disable(struct drm_device *dev);
|
extern void drm_kms_helper_poll_disable(struct drm_device *dev);
|
||||||
extern void drm_kms_helper_poll_enable(struct drm_device *dev);
|
extern void drm_kms_helper_poll_enable(struct drm_device *dev);
|
||||||
|
|
Loading…
Reference in a new issue