[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