Hi Jocelyn, thanks for reporting this bug. Am 01.06.22 um 11:33 schrieb Jocelyn Falempe:
Hi, I've found a regression in the ast driver, for AST2600 hardware. before the upstream commit f9bd00e0ea9dhttps://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f9bd00e0ea9d9b04140aa969a9a13ad3597a1e4eThe ast driver handled AST 2600 chip like an AST 2500.After this commit, it uses some default values, more like the older AST chip.There are a lot of places in the driver like this:https://elixir.bootlin.com/linux/v5.18.1/source/drivers/gpu/drm/ast/ast_post.c#L82where it checks for (AST2300 || AST2400 || AST2500) but not for AST2600.This makes the VGA output, to be blurred and flickered with whites lines on AST2600.The issue is present since v5.11For v5.11~v5.17 I propose a simple workaround (as there are no other reference to AST2600 in the driver):--- a/drivers/gpu/drm/ast/ast_main.c +++ b/drivers/gpu/drm/ast/ast_main.c@@ -146,7 +146,8 @@ static int ast_detect_chip(struct drm_device *dev, bool *need_post)/* Identify chipset */ if (pdev->revision >= 0x50) { - ast->chip = AST2600; + /* Workaround to use the same codepath for AST2600 */ + ast->chip = AST2500;
The whole handling of different models in this driver is broken by design and needs to be replaced. I don't have much of the affected hardware, so such things are going slowly. :(
For an intermediate fix, it would be better to change all tests for AST2500 to include AST2600 as well. There aren't too many IIRC.
Best regards Thomas
drm_info(dev, "AST 2600 detected\n"); } else if (pdev->revision >= 0x40) { ast->chip = AST2500; starting from v5.18, there is another reference to AST2600 in the codehttps://elixir.bootlin.com/linux/v5.18/source/drivers/gpu/drm/ast/ast_main.c#L212So I think someone with good aspeed knowledge should review all locations where there is a test for AST2500, and figure out what should be done for AST2600Thanks,
-- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 Nürnberg, Germany (HRB 36809, AG Nürnberg) Geschäftsführer: Ivo Totev
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature