hdmitx: correct hpd trigger [1/1]
authorZongdong Jiao <zongdong.jiao@amlogic.com>
Thu, 13 Jun 2019 08:05:18 +0000 (16:05 +0800)
committerNick Xie <nick@khadas.com>
Mon, 5 Aug 2019 07:00:06 +0000 (15:00 +0800)
PD#SWPL-8724

Problem:
When kernel boots up, there will be two irq status.
[    0.602639] hdmitx: system: irq 80000004 0
[    0.622658] hdmitx: system: irq 80000002 0

Solution:
Correct hpd trigger

Verify:
G12/U212

Change-Id: I3c913c6d46ac4e639032134c598050b5c77a047d
Signed-off-by: Zongdong Jiao <zongdong.jiao@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 3f072ca..37113f1 100644 (file)
@@ -4221,9 +4221,9 @@ static int hdmi_task_handle(void *data)
                hdmitx_device->HWOp.SetupIRQ(hdmitx_device);
 
        /* Trigger HDMITX IRQ*/
-       hdmitx_device->HWOp.CntlMisc(hdmitx_device, MISC_HPD_MUX_OP, PIN_UNMUX);
-       mdelay(20);
-       hdmitx_device->HWOp.CntlMisc(hdmitx_device, MISC_HPD_MUX_OP, PIN_MUX);
+       if (hdmitx_device->HWOp.CntlMisc(hdmitx_device, MISC_HPD_GPI_ST, 0))
+               hdmitx_device->HWOp.CntlMisc(hdmitx_device,
+                       MISC_TRIGGER_HPD, 0);
 
        hdmitx_device->hdmi_init = 1;
        return 0;
index 171c1db..4924c52 100644 (file)
@@ -5027,6 +5027,9 @@ static int hdmitx_cntl_misc(struct hdmitx_dev *hdev, unsigned int cmd,
                return hdmitx_hpd_hw_op(argv);
        case MISC_HPD_GPI_ST:
                return hdmitx_hpd_hw_op(HPD_READ_HPD_GPIO);
+       case MISC_TRIGGER_HPD:
+               hdmitx_wr_reg(HDMITX_TOP_INTR_STAT, 1 << 1);
+               return 0;
        case MISC_HPLL_FAKE:
                hdmitx_set_fake_vic(hdev);
                break;
index 697407d..98d65f4 100644 (file)
@@ -591,6 +591,7 @@ struct hdmitx_dev {
 #define MISC_I2C_RESET         (CMD_MISC_OFFSET + 0x11) /* For g12 */
 #define MISC_READ_AVMUTE_OP     (CMD_MISC_OFFSET + 0x12)
 #define MISC_TMDS_CEDST                (CMD_MISC_OFFSET + 0x13)
+#define MISC_TRIGGER_HPD        (CMD_MISC_OFFSET + 0X14)
 
 /***********************************************************************
  *                          Get State //GetState