static void intel_dp_mst_hotplug(struct drm_dp_mst_topology_mgr *mgr) { struct intel_dp *intel_dp = container_of(mgr, struct intel_dp, mst_mgr); struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); struct drm_device *dev = intel_dig_port->base.base.dev; drm_kms_helper_hotplug_event(dev); }
/* * We need to run the KMS hotplug event helper outside of our threaded * interrupt routine as this can call back into our get_modes method, * which will want to make use of interrupts. */ static void tda998x_detect_work(struct work_struct *work) { struct tda998x_priv *priv = container_of(work, struct tda998x_priv, detect_work); struct drm_device *dev = priv->encoder.dev; if (dev) drm_kms_helper_hotplug_event(dev); }
/* handle HDMI connect/disconnect */ static void tda998x_hpd(struct work_struct *work) { struct delayed_work *dwork = to_delayed_work(work); struct tda998x_priv *priv = container_of(dwork, struct tda998x_priv, dwork); if (priv->encoder && priv->encoder->dev) drm_kms_helper_hotplug_event(priv->encoder->dev); }
static void cvbs_switch_work_func(struct work_struct *work) { struct meson_cvbs_work *meson_cvbs_work = container_of(work, struct meson_cvbs_work, work.work); /* This interrupt means the CVBS color enconding (PAL/NTSC) switch * position has changed. */ drm_kms_helper_hotplug_event(meson_cvbs_work->dev); }
void qxl_display_read_client_monitors_config(struct qxl_device *qdev) { while (qxl_display_copy_rom_client_monitors_config(qdev)) { qxl_io_log(qdev, "failed crc check for client_monitors_config," " retrying\n"); } if (!drm_helper_hpd_irq_event(qdev->ddev)) { /* notify that the monitor configuration changed, to adjust at the arbitrary resolution */ drm_kms_helper_hotplug_event(qdev->ddev); } }