}
}
-static void hdmitx_aud_hpd_plug_handler(struct work_struct *work)
-{
- int st;
- struct hdmitx_dev *hdev = container_of((struct delayed_work *)work,
- struct hdmitx_dev, work_aud_hpd_plug);
-
- st = hdev->HWOp.CntlMisc(hdev, MISC_HPD_GPI_ST, 0);
- pr_info("hdmitx_aud_hpd_plug_handler state:%d\n", st);
- extcon_set_state_sync(hdmitx_extcon_audio, EXTCON_DISP_HDMI, st);
-}
-
static void hdmitx_hpd_plugout_handler(struct work_struct *work)
{
struct hdmitx_dev *hdev = container_of((struct delayed_work *)work,
hdev->hpd_state = 0;
hdmitx_notify_hpd(hdev->hpd_state);
extcon_set_state_sync(hdmitx_extcon_hdmi, EXTCON_DISP_HDMI, 0);
+ extcon_set_state_sync(hdmitx_extcon_audio, EXTCON_DISP_HDMI, 0);
mutex_unlock(&setclk_mutex);
}
hdmitx_hpd_plugin_handler);
INIT_DELAYED_WORK(&hdmitx_device->work_hpd_plugout,
hdmitx_hpd_plugout_handler);
- INIT_DELAYED_WORK(&hdmitx_device->work_aud_hpd_plug,
- hdmitx_aud_hpd_plug_handler);
INIT_WORK(&hdmitx_device->work_internal_intr,
hdmitx_internal_intr_handler);
}
/* HPD falling */
if (dat_top & (1 << 2)) {
- queue_delayed_work(hdev->hdmi_wq,
- &hdev->work_aud_hpd_plug, 2 * HZ);
hdev->hdmitx_event |= HDMI_TX_HPD_PLUGOUT;
hdev->hdmitx_event &= ~HDMI_TX_HPD_PLUGIN;
hdev->rhpd_state = 0;
struct pinctrl_state *pinctrl_default;
struct delayed_work work_hpd_plugin;
struct delayed_work work_hpd_plugout;
- struct delayed_work work_aud_hpd_plug;
struct delayed_work work_rxsense;
struct work_struct work_internal_intr;
struct work_struct work_hdr;