Skip to content

Commit cbacb1b

Browse files
committed
drm/ast: astdp: Only test HDP state in ast_astdp_is_connected()
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 <[email protected]> Reviewed-by: Jocelyn Falempe <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent c91d75a commit cbacb1b

File tree

2 files changed

+4
-11
lines changed

2 files changed

+4
-11
lines changed

drivers/gpu/drm/ast/ast_dp.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
bool ast_astdp_is_connected(struct ast_device *ast)
1111
{
12-
if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD))
12+
if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, AST_IO_VGACRDF_HPD))
1313
return false;
1414
if (!ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS))
1515
return false;
@@ -23,11 +23,9 @@ int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata)
2323

2424
/*
2525
* CRDC[b0]: DP link success
26-
* CRDF[b0]: DP HPD
2726
* CRE5[b0]: Host reading EDID process is done
2827
*/
2928
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS) &&
30-
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD) &&
3129
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xE5,
3230
ASTDP_HOST_EDID_READ_DONE_MASK))) {
3331
goto err_astdp_edid_not_ready;
@@ -61,8 +59,7 @@ int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata)
6159
mdelay(j+1);
6260

6361
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC,
64-
ASTDP_LINK_SUCCESS) &&
65-
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD))) {
62+
ASTDP_LINK_SUCCESS))) {
6663
goto err_astdp_jump_out_loop_of_edid;
6764
}
6865

@@ -111,8 +108,6 @@ int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata)
111108
err_astdp_edid_not_ready:
112109
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS)))
113110
return (~0xDC + 1);
114-
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD)))
115-
return (~0xDF + 1);
116111
if (!(ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xE5, ASTDP_HOST_EDID_READ_DONE_MASK)))
117112
return (~0xE5 + 1);
118113

@@ -175,8 +170,7 @@ void ast_dp_set_on_off(struct drm_device *dev, bool on)
175170
ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE3, (u8) ~AST_DP_VIDEO_ENABLE, on);
176171

177172
// If DP plug in and link successful then check video on / off status
178-
if (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS) &&
179-
ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF, ASTDP_HPD)) {
173+
if (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDC, ASTDP_LINK_SUCCESS)) {
180174
video_on_off <<= 4;
181175
while (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xDF,
182176
ASTDP_MIRROR_VIDEO_ENABLE) != video_on_off) {

drivers/gpu/drm/ast/ast_reg.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#define AST_IO_VGACRCB_HWC_ENABLED BIT(1)
3939

4040
#define AST_IO_VGACRD1_MCU_FW_EXECUTING BIT(5)
41+
#define AST_IO_VGACRDF_HPD BIT(0)
4142

4243
#define AST_IO_VGAIR1_R (0x5A)
4344
#define AST_IO_VGAIR1_VREFRESH BIT(3)
@@ -70,11 +71,9 @@
7071

7172
/*
7273
* CRDC[b0]: DP link success
73-
* CRDF[b0]: DP HPD
7474
* CRE5[b0]: Host reading EDID process is done
7575
*/
7676
#define ASTDP_LINK_SUCCESS BIT(0)
77-
#define ASTDP_HPD BIT(0)
7877
#define ASTDP_HOST_EDID_READ_DONE BIT(0)
7978
#define ASTDP_HOST_EDID_READ_DONE_MASK GENMASK(0, 0)
8079

0 commit comments

Comments
 (0)