bool ast_astdp_is_connected(struct ast_device *ast)
 {
-       if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD))
+       if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, AST_IO_VGACRDF_HPD))
                return false;
        if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS))
                return false;
 
        /*
         * CRDC[b0]: DP link success
-        * CRDF[b0]: DP HPD
         * CRE5[b0]: Host reading EDID process is done
         */
        if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS) &&
-               ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD) &&
                ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xE5,
                                                                ASTDP_HOST_EDID_READ_DONE_MASK))) {
                goto err_astdp_edid_not_ready;
                        mdelay(j+1);
 
                        if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC,
-                                                       ASTDP_LINK_SUCCESS) &&
-                               ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD))) {
+                                                       ASTDP_LINK_SUCCESS))) {
                                goto err_astdp_jump_out_loop_of_edid;
                        }
 
 err_astdp_edid_not_ready:
        if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS)))
                return (~0xDC + 1);
-       if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD)))
-               return (~0xDF + 1);
        if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xE5, ASTDP_HOST_EDID_READ_DONE_MASK)))
                return (~0xE5 + 1);
 
        ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE3, (u8) ~AST_DP_VIDEO_ENABLE, on);
 
        // If DP plug in and link successful then check video on / off status
-       if (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS) &&
-               ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD)) {
+       if (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS)) {
                video_on_off <<= 4;
                while (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF,
                                                ASTDP_MIRROR_VIDEO_ENABLE) != video_on_off) {
 
 #define AST_IO_VGACRCB_HWC_ENABLED     BIT(1)
 
 #define AST_IO_VGACRD1_MCU_FW_EXECUTING        BIT(5)
+#define AST_IO_VGACRDF_HPD             BIT(0)
 
 #define AST_IO_VGAIR1_R                        (0x5A)
 #define AST_IO_VGAIR1_VREFRESH         BIT(3)
 
 /*
  * CRDC[b0]: DP link success
- * CRDF[b0]: DP HPD
  * CRE5[b0]: Host reading EDID process is done
  */
 #define ASTDP_LINK_SUCCESS             BIT(0)
-#define ASTDP_HPD                      BIT(0)
 #define ASTDP_HOST_EDID_READ_DONE      BIT(0)
 #define ASTDP_HOST_EDID_READ_DONE_MASK GENMASK(0, 0)