]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/ast: astdp: Only test HDP state in ast_astdp_is_connected()
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 17 Jul 2024 14:24:18 +0000 (16:24 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 30 Jul 2024 10:15:37 +0000 (12:15 +0200)
The overall control flow of the driver ensures that it never reads
EDID or sets display state on unconnected outputs. Therefore remove
all tests for Hot Plug Detection from these helpers. Also rename
the register constants.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240717143319.104012-4-tzimmermann@suse.de
drivers/gpu/drm/ast/ast_dp.c
drivers/gpu/drm/ast/ast_reg.h

index fba74e55cda783fef6dafcf4ac83499d9d55899c..4bd98c720d4a2be0e54be10d5b53cbbadb073041 100644 (file)
@@ -9,7 +9,7 @@
 
 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;
@@ -23,11 +23,9 @@ int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata)
 
        /*
         * 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;
@@ -61,8 +59,7 @@ int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata)
                        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;
                        }
 
@@ -111,8 +108,6 @@ 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);
 
@@ -175,8 +170,7 @@ void ast_dp_set_on_off(struct drm_device *dev, bool on)
        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) {
index 569de318819147b4dbabd13ec6374b8a6cd44d17..e61954dabf1a65af349a28bc1a9c0c38d9cb2b35 100644 (file)
@@ -38,6 +38,7 @@
 #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)