Message ID | 20250127134423.84266-1-tzimmermann@suse.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/ast: astdp: Fix timeout for enabling video signal | expand |
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@redhat.com> > > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> > Fixes: 4e29cc7c5c67 ("drm/ast: astdp: Replace ast_dp_set_on_off()") > Cc: Thomas Zimmermann <tzimmermann@suse.de> > Cc: Jocelyn Falempe <jfalempe@redhat.com> > Cc: Dave Airlie <airlied@redhat.com> > Cc: dri-devel@lists.freedesktop.org > Cc: <stable@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,
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,
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. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Fixes: 4e29cc7c5c67 ("drm/ast: astdp: Replace ast_dp_set_on_off()") Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Jocelyn Falempe <jfalempe@redhat.com> Cc: Dave Airlie <airlied@redhat.com> Cc: dri-devel@lists.freedesktop.org Cc: <stable@vger.kernel.org> # v6.13+ --- drivers/gpu/drm/ast/ast_dp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)