[PATCH] drm/ast: astdp: Fix timeout for enabling video signal

Jocelyn Falempe jfalempe at redhat.com
Mon Jan 27 14:07:56 UTC 2025


On 27/01/2025 14:44, Thomas Zimmermann wrote:
> The ASTDP transmitter sometimes takes up to second for enabling the
> video signal, while the timeout is only 200 msec. This results in a
> kernel error message. Increase the timeout to 1 second. An example
> of the error message is shown below.
> 
> [  697.084433] ------------[ cut here ]------------
> [  697.091115] ast 0000:02:00.0: [drm] drm_WARN_ON(!__ast_dp_wait_enable(ast, enabled))
> [  697.091233] WARNING: CPU: 1 PID: 160 at drivers/gpu/drm/ast/ast_dp.c:232 ast_dp_set_enable+0x123/0x140 [ast]
> [...]
> [  697.272469] RIP: 0010:ast_dp_set_enable+0x123/0x140 [ast]
> [...]
> [  697.415283] Call Trace:
> [  697.420727]  <TASK>
> [  697.425908]  ? show_trace_log_lvl+0x196/0x2c0
> [  697.433304]  ? show_trace_log_lvl+0x196/0x2c0
> [  697.440693]  ? drm_atomic_helper_commit_modeset_enables+0x30a/0x470
> [  697.450115]  ? ast_dp_set_enable+0x123/0x140 [ast]
> [  697.458059]  ? __warn.cold+0xaf/0xca
> [  697.464713]  ? ast_dp_set_enable+0x123/0x140 [ast]
> [  697.472633]  ? report_bug+0x134/0x1d0
> [  697.479544]  ? handle_bug+0x58/0x90
> [  697.486127]  ? exc_invalid_op+0x13/0x40
> [  697.492975]  ? asm_exc_invalid_op+0x16/0x20
> [  697.500224]  ? preempt_count_sub+0x14/0xc0
> [  697.507473]  ? ast_dp_set_enable+0x123/0x140 [ast]
> [  697.515377]  ? ast_dp_set_enable+0x123/0x140 [ast]
> [  697.523227]  drm_atomic_helper_commit_modeset_enables+0x30a/0x470
> [  697.532388]  drm_atomic_helper_commit_tail+0x58/0x90
> [  697.540400]  ast_mode_config_helper_atomic_commit_tail+0x30/0x40 [ast]
> [  697.550009]  commit_tail+0xfe/0x1d0
> [  697.556547]  drm_atomic_helper_commit+0x198/0x1c0
> 
> This is a cosmetical problem. Enabling the video signal still works
> even with the error message. The problem has always been present, but
> only recent versions of the ast driver warn about missing the timeout.

Thanks, it looks good to me.

Reviewed-by: Jocelyn Falempe <jfalempe at redhat.com>

> 
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> Fixes: 4e29cc7c5c67 ("drm/ast: astdp: Replace ast_dp_set_on_off()")
> Cc: Thomas Zimmermann <tzimmermann at suse.de>
> Cc: Jocelyn Falempe <jfalempe at redhat.com>
> Cc: Dave Airlie <airlied at redhat.com>
> Cc: dri-devel at lists.freedesktop.org
> Cc: <stable at vger.kernel.org> # v6.13+
> ---
>   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 30aad5c0112a1..2d7482a65f62a 100644
> --- a/drivers/gpu/drm/ast/ast_dp.c
> +++ b/drivers/gpu/drm/ast/ast_dp.c
> @@ -201,7 +201,7 @@ static bool __ast_dp_wait_enable(struct ast_device *ast, bool enabled)
>   	if (enabled)
>   		vgacrdf_test |= AST_IO_VGACRDF_DP_VIDEO_ENABLE;
>   
> -	for (i = 0; i < 200; ++i) {
> +	for (i = 0; i < 1000; ++i) {
>   		if (i)
>   			mdelay(1);
>   		vgacrdf = ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xdf,



More information about the dri-devel mailing list