OSDN Git Service

drm/ast: Detect AST 2510 model
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 21 Jun 2023 12:53:46 +0000 (14:53 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 27 Jun 2023 12:26:38 +0000 (14:26 +0200)
Detect the 6th-generation AST 2510. Allows to simplify the code
for widescreen support.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Tested-by: Jocelyn Falempe <jfalempe@redhat.com> # AST2600
Link: https://patchwork.freedesktop.org/patch/msgid/20230621130032.3568-13-tzimmermann@suse.de
drivers/gpu/drm/ast/ast_drv.h
drivers/gpu/drm/ast/ast_main.c

index 876ebbd..3f6e0c9 100644 (file)
@@ -75,7 +75,7 @@ enum ast_chip {
        AST1250 = __AST_CHIP(5, 2), // unused
        /* 6th gen */
        AST2500 = __AST_CHIP(6, 0),
-       AST2510 = __AST_CHIP(6, 1), // unused
+       AST2510 = __AST_CHIP(6, 1),
        AST2520 = __AST_CHIP(6, 2), // unused
        /* 7th gen */
        AST2600 = __AST_CHIP(7, 0),
index cbfe93c..f2f8a05 100644 (file)
@@ -163,8 +163,15 @@ static int ast_detect_chip(struct drm_device *dev, bool need_post, u32 scu_rev)
                ast->chip = AST2600;
                drm_info(dev, "AST 2600 detected\n");
        } else if (pdev->revision >= 0x40) {
-               ast->chip = AST2500;
-               drm_info(dev, "AST 2500 detected\n");
+               switch (scu_rev & 0x300) {
+               case 0x0100:
+                       ast->chip = AST2510;
+                       drm_info(dev, "AST 2510 detected\n");
+                       break;
+               default:
+                       ast->chip = AST2500;
+                       drm_info(dev, "AST 2500 detected\n");
+               }
        } else if (pdev->revision >= 0x30) {
                switch (scu_rev & 0x300) {
                case 0x0100:
@@ -227,8 +234,7 @@ static int ast_detect_chip(struct drm_device *dev, bool need_post, u32 scu_rev)
                                ast->support_wide_screen = true;
                        if (ast->chip == AST1400)
                                ast->support_wide_screen = true;
-                       if (ast->chip == AST2500 &&
-                           scu_rev == 0x100)           /* ast2510 */
+                       if (ast->chip == AST2510)
                                ast->support_wide_screen = true;
                        if (IS_AST_GEN7(ast))
                                ast->support_wide_screen = true;