The test for "Link training failed" expect the loop to exit with "i" set to zero but it exits when "i" is set to -1. Change this from a post-op to a pre-op so that it exits with "i" set to zero. This changes the number of iterations from 10 to 9 but probably that's okay. Fixes: 2281475168d2 ("drm/ast: astdp: Perform link training during atomic_enable") Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> --- drivers/gpu/drm/ast/ast_dp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/ast/ast_dp.c b/drivers/gpu/drm/ast/ast_dp.c index 5d07678b502c..4329ab680f62 100644 --- a/drivers/gpu/drm/ast/ast_dp.c +++ b/drivers/gpu/drm/ast/ast_dp.c @@ -148,7 +148,7 @@ void ast_dp_link_training(struct ast_device *ast) struct drm_device *dev = &ast->base; unsigned int i = 10; - while (i--) { + while (--i) { u8 vgacrdc = ast_get_index_reg(ast, AST_IO_VGACRI, 0xdc); if (vgacrdc & AST_IO_VGACRDC_LINK_SUCCESS) -- 2.43.0