hdmitx: sync hdmi_audio uevent to hdmi hpd
authorZongdong Jiao <zongdong.jiao@amlogic.com>
Mon, 11 Mar 2019 07:55:09 +0000 (15:55 +0800)
committerLuan Yuan <luan.yuan@amlogic.com>
Wed, 13 Mar 2019 12:22:00 +0000 (20:22 +0800)
Change-Id: I39512030f058ab9c72ee4c779f3b692898440271
Signed-off-by: Luan Yuan <luan.yuan@amlogic.com>
drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hdmi_tx_main.c
drivers/amlogic/media/vout/hdmitx/hdmi_tx_20/hw/hdmi_tx_hw.c
include/linux/amlogic/media/vout/hdmi_tx/hdmi_tx_module.h

index 78cf40e..7f663af 100644 (file)
@@ -3789,17 +3789,6 @@ static void clear_hdr_info(struct hdmitx_dev *hdev)
        }
 }
 
-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,
@@ -3840,6 +3829,7 @@ static void hdmitx_hpd_plugout_handler(struct work_struct *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);
 }
 
@@ -3898,8 +3888,6 @@ static int hdmi_task_handle(void *data)
                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);
 
index d7d629c..e9d8485 100644 (file)
@@ -653,8 +653,6 @@ static irqreturn_t intr_handler(int irq, void *dev)
        }
        /* 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;
index 5ef3d54..aed86d5 100644 (file)
@@ -300,7 +300,6 @@ struct hdmitx_dev {
        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;