Export a dw_hdmi_schedule_hpd_work() helper that schedule the HPD delayed work. Primarily to be used by the meson dw-hdmi driver.
Signed-off-by: Jonas Karlman <[email protected]> --- drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 11 +++++++++-- include/drm/bridge/dw_hdmi.h | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c index 99dd62b6becf..54d75317ce9c 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -3014,8 +3014,7 @@ static irqreturn_t dw_hdmi_hardirq(int irq, void *dev_id) status == connector_status_connected ? "plugin" : "plugout"); - mod_delayed_work(system_percpu_wq, &hdmi->hpd_work, - msecs_to_jiffies(HOTPLUG_DEBOUNCE_MS)); + dw_hdmi_schedule_hpd_work(hdmi); hdmi_writeb(hdmi, intr_stat, HDMI_IH_PHY_STAT0); hdmi_writeb(hdmi, ~HDMI_IH_PHY_STAT0_HPD, HDMI_IH_MUTE_PHY_STAT0); @@ -3025,6 +3024,14 @@ static irqreturn_t dw_hdmi_hardirq(int irq, void *dev_id) return ret; } +void dw_hdmi_schedule_hpd_work(struct dw_hdmi *hdmi) +{ + if (!IS_ERR_OR_NULL(hdmi)) + mod_delayed_work(system_percpu_wq, &hdmi->hpd_work, + msecs_to_jiffies(HOTPLUG_DEBOUNCE_MS)); +} +EXPORT_SYMBOL_GPL(dw_hdmi_schedule_hpd_work); + static void dw_hdmi_hpd_work(struct work_struct *work) { struct dw_hdmi *hdmi = container_of(work, struct dw_hdmi, hpd_work.work); diff --git a/include/drm/bridge/dw_hdmi.h b/include/drm/bridge/dw_hdmi.h index 10013b8d3adb..c56d1775f04a 100644 --- a/include/drm/bridge/dw_hdmi.h +++ b/include/drm/bridge/dw_hdmi.h @@ -184,6 +184,8 @@ struct dw_hdmi *dw_hdmi_bind(struct platform_device *pdev, void dw_hdmi_resume(struct dw_hdmi *hdmi); +void dw_hdmi_schedule_hpd_work(struct dw_hdmi *hdmi); + int dw_hdmi_set_plugged_cb(struct dw_hdmi *hdmi, hdmi_codec_plugged_cb fn, struct device *codec_dev); void dw_hdmi_set_sample_non_pcm(struct dw_hdmi *hdmi, unsigned int non_pcm); -- 2.54.0
