public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 01/15] drm/ast: dp501: Fix initialization of SCU2C
       [not found] <20260323160407.245773-1-tzimmermann@suse.de>
@ 2026-03-23 15:56 ` Thomas Zimmermann
  2026-03-25 15:46   ` Jocelyn Falempe
  0 siblings, 1 reply; 2+ messages in thread
From: Thomas Zimmermann @ 2026-03-23 15:56 UTC (permalink / raw)
  To: jfalempe, airlied, maarten.lankhorst, mripard, airlied, simona
  Cc: dri-devel, Thomas Zimmermann, stable

Ast's DP501 initialization reads the register SCU2C at offset 0x1202c
and tries to set it to source data from VGA. But writes the update to
offset 0x0, with unknown results. Write the result to SCU instead.

The bug only happens in ast_init_analog(). There's similar code in
ast_init_dvo(), which works correctly.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Fixes: 83c6620bae3f ("drm/ast: initial DP501 support (v0.2)")
Cc: Dave Airlie <airlied@redhat.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Jocelyn Falempe <jfalempe@redhat.com>
Cc: dri-devel@lists.freedesktop.org
Cc: <stable@vger.kernel.org> # v3.16+
---
 drivers/gpu/drm/ast/ast_dp501.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/ast/ast_dp501.c b/drivers/gpu/drm/ast/ast_dp501.c
index 9e19d8c17730..677c52c0d99a 100644
--- a/drivers/gpu/drm/ast/ast_dp501.c
+++ b/drivers/gpu/drm/ast/ast_dp501.c
@@ -436,7 +436,7 @@ static void ast_init_analog(struct ast_device *ast)
 	/* Finally, clear bits [17:16] of SCU2c */
 	data = ast_read32(ast, 0x1202c);
 	data &= 0xfffcffff;
-	ast_write32(ast, 0, data);
+	ast_write32(ast, 0x1202c, data);
 
 	/* Disable DVO */
 	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xa3, 0xcf, 0x00);
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 01/15] drm/ast: dp501: Fix initialization of SCU2C
  2026-03-23 15:56 ` [PATCH 01/15] drm/ast: dp501: Fix initialization of SCU2C Thomas Zimmermann
@ 2026-03-25 15:46   ` Jocelyn Falempe
  0 siblings, 0 replies; 2+ messages in thread
From: Jocelyn Falempe @ 2026-03-25 15:46 UTC (permalink / raw)
  To: Thomas Zimmermann, airlied, maarten.lankhorst, mripard, airlied,
	simona
  Cc: dri-devel, stable

On 23/03/2026 16:56, Thomas Zimmermann wrote:
> Ast's DP501 initialization reads the register SCU2C at offset 0x1202c
> and tries to set it to source data from VGA. But writes the update to
> offset 0x0, with unknown results. Write the result to SCU instead.
> 
> The bug only happens in ast_init_analog(). There's similar code in
> ast_init_dvo(), which works correctly.

Thanks, it looks good to me.

Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
> 
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Fixes: 83c6620bae3f ("drm/ast: initial DP501 support (v0.2)")
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: Jocelyn Falempe <jfalempe@redhat.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: <stable@vger.kernel.org> # v3.16+
> ---
>   drivers/gpu/drm/ast/ast_dp501.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/ast/ast_dp501.c b/drivers/gpu/drm/ast/ast_dp501.c
> index 9e19d8c17730..677c52c0d99a 100644
> --- a/drivers/gpu/drm/ast/ast_dp501.c
> +++ b/drivers/gpu/drm/ast/ast_dp501.c
> @@ -436,7 +436,7 @@ static void ast_init_analog(struct ast_device *ast)
>   	/* Finally, clear bits [17:16] of SCU2c */
>   	data = ast_read32(ast, 0x1202c);
>   	data &= 0xfffcffff;
> -	ast_write32(ast, 0, data);
> +	ast_write32(ast, 0x1202c, data);
>   
>   	/* Disable DVO */
>   	ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xa3, 0xcf, 0x00);


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-03-25 15:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260323160407.245773-1-tzimmermann@suse.de>
2026-03-23 15:56 ` [PATCH 01/15] drm/ast: dp501: Fix initialization of SCU2C Thomas Zimmermann
2026-03-25 15:46   ` Jocelyn Falempe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox