static int anx7625_read_hpd_status_p0(struct anx7625_data *ctx)
 {
+       int ret;
+
+       /* Set irq detect window to 2ms */
+       ret = anx7625_reg_write(ctx, ctx->i2c.tx_p2_client,
+                               HPD_DET_TIMER_BIT0_7, HPD_TIME & 0xFF);
+       ret |= anx7625_reg_write(ctx, ctx->i2c.tx_p2_client,
+                                HPD_DET_TIMER_BIT8_15,
+                                (HPD_TIME >> 8) & 0xFF);
+       ret |= anx7625_reg_write(ctx, ctx->i2c.tx_p2_client,
+                                HPD_DET_TIMER_BIT16_23,
+                                (HPD_TIME >> 16) & 0xFF);
+       if (ret < 0)
+               return ret;
+
        return anx7625_reg_read(ctx, ctx->i2c.rx_p0_client, SYSTEM_STSTUS);
 }
 
 
 #define I2S_SLAVE_MODE 0x08
 #define AUDIO_LAYOUT   0x01
 
+#define HPD_DET_TIMER_BIT0_7   0xea
+#define HPD_DET_TIMER_BIT8_15  0xeb
+#define HPD_DET_TIMER_BIT16_23 0xec
+/* HPD debounce time 2ms for 27M clock */
+#define HPD_TIME               54000
+
 #define AUDIO_CONTROL_REGISTER 0xe6
 #define TDM_TIMING_MODE 0x08