On 16/09/2025 17:26, Thomas Zimmermann wrote:
The code in ast_main.c has been split into several helpers in
other source files. Delete the source file. With the generic
device init gone, fail probing on unknown hardware generations.

Thanks, it looks good to me.

Reviewed-by: Jocelyn Falempe <jfale...@redhat.com>


Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
---
  drivers/gpu/drm/ast/Makefile   |   1 -
  drivers/gpu/drm/ast/ast_drv.c  |   5 +-
  drivers/gpu/drm/ast/ast_drv.h  |   8 --
  drivers/gpu/drm/ast/ast_main.c | 154 ---------------------------------
  4 files changed, 2 insertions(+), 166 deletions(-)
  delete mode 100644 drivers/gpu/drm/ast/ast_main.c

diff --git a/drivers/gpu/drm/ast/Makefile b/drivers/gpu/drm/ast/Makefile
index 0a60c9341a9f..cdbcba3b43ad 100644
--- a/drivers/gpu/drm/ast/Makefile
+++ b/drivers/gpu/drm/ast/Makefile
@@ -16,7 +16,6 @@ ast-y := \
        ast_dp501.o \
        ast_dp.o \
        ast_drv.o \
-       ast_main.o \
        ast_mm.o \
        ast_mode.o \
        ast_post.o \
diff --git a/drivers/gpu/drm/ast/ast_drv.c b/drivers/gpu/drm/ast/ast_drv.c
index 5ac1d32cfe69..a89735c6a462 100644
--- a/drivers/gpu/drm/ast/ast_drv.c
+++ b/drivers/gpu/drm/ast/ast_drv.c
@@ -411,9 +411,8 @@ static int ast_pci_probe(struct pci_dev *pdev, const struct 
pci_device_id *ent)
                                             regs, ioregs, need_post);
                break;
        default:
-               drm = ast_device_create(pdev, &ast_driver, chip, config_mode, 
regs, ioregs,
-                                       need_post);
-               break;
+               dev_err(&pdev->dev, "Gen%d not supported\n", chip_gen);
+               return -ENODEV;
        }
        if (IS_ERR(drm))
                return PTR_ERR(drm);
diff --git a/drivers/gpu/drm/ast/ast_drv.h b/drivers/gpu/drm/ast/ast_drv.h
index a64eadc3b50f..35c476c85b9a 100644
--- a/drivers/gpu/drm/ast/ast_drv.h
+++ b/drivers/gpu/drm/ast/ast_drv.h
@@ -217,14 +217,6 @@ static inline struct ast_device *to_ast_device(struct 
drm_device *dev)
        return container_of(dev, struct ast_device, base);
  }
-struct drm_device *ast_device_create(struct pci_dev *pdev,
-                                    const struct drm_driver *drv,
-                                    enum ast_chip chip,
-                                    enum ast_config_mode config_mode,
-                                    void __iomem *regs,
-                                    void __iomem *ioregs,
-                                    bool need_post);
-
  static inline unsigned long __ast_gen(struct ast_device *ast)
  {
        return __AST_CHIP_GEN(ast->chip);
diff --git a/drivers/gpu/drm/ast/ast_main.c b/drivers/gpu/drm/ast/ast_main.c
deleted file mode 100644
index d1c54700686b..000000000000
--- a/drivers/gpu/drm/ast/ast_main.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright 2012 Red Hat Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
- * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
- * USE OR OTHER DEALINGS IN THE SOFTWARE.
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- */
-/*
- * Authors: Dave Airlie <airl...@redhat.com>
- */
-
-#include <linux/of.h>
-#include <linux/pci.h>
-
-#include <drm/drm_atomic_helper.h>
-#include <drm/drm_drv.h>
-#include <drm/drm_gem.h>
-#include <drm/drm_managed.h>
-
-#include "ast_drv.h"
-
-static void ast_detect_widescreen(struct ast_device *ast)
-{
-       ast->support_wsxga_p = false;
-       ast->support_fullhd = false;
-       ast->support_wuxga = false;
-
-       if (AST_GEN(ast) >= 7) {
-               ast->support_wsxga_p = true;
-               ast->support_fullhd = true;
-               if (__ast_2100_detect_wuxga(ast))
-                       ast->support_wuxga = true;
-       } else if (AST_GEN(ast) >= 6) {
-               if (__ast_2100_detect_wsxga_p(ast))
-                       ast->support_wsxga_p = true;
-               else if (ast->chip == AST2510)
-                       ast->support_wsxga_p = true;
-               if (ast->support_wsxga_p)
-                       ast->support_fullhd = true;
-               if (__ast_2100_detect_wuxga(ast))
-                       ast->support_wuxga = true;
-       } else if (AST_GEN(ast) >= 5) {
-               if (__ast_2100_detect_wsxga_p(ast))
-                       ast->support_wsxga_p = true;
-               else if (ast->chip == AST1400)
-                       ast->support_wsxga_p = true;
-               if (ast->support_wsxga_p)
-                       ast->support_fullhd = true;
-               if (__ast_2100_detect_wuxga(ast))
-                       ast->support_wuxga = true;
-       } else if (AST_GEN(ast) >= 4) {
-               if (__ast_2100_detect_wsxga_p(ast))
-                       ast->support_wsxga_p = true;
-               else if (ast->chip == AST1300)
-                       ast->support_wsxga_p = true;
-               if (ast->support_wsxga_p)
-                       ast->support_fullhd = true;
-               if (__ast_2100_detect_wuxga(ast))
-                       ast->support_wuxga = true;
-       } else if (AST_GEN(ast) >= 3) {
-               if (__ast_2100_detect_wsxga_p(ast))
-                       ast->support_wsxga_p = true;
-               if (ast->support_wsxga_p) {
-                       if (ast->chip == AST2200)
-                               ast->support_fullhd = true;
-               }
-               if (__ast_2100_detect_wuxga(ast))
-                       ast->support_wuxga = true;
-       } else if (AST_GEN(ast) >= 2) {
-               if (__ast_2100_detect_wsxga_p(ast))
-                       ast->support_wsxga_p = true;
-               if (ast->support_wsxga_p) {
-                       if (ast->chip == AST2100)
-                               ast->support_fullhd = true;
-               }
-               if (__ast_2100_detect_wuxga(ast))
-                       ast->support_wuxga = true;
-       }
-}
-
-struct drm_device *ast_device_create(struct pci_dev *pdev,
-                                    const struct drm_driver *drv,
-                                    enum ast_chip chip,
-                                    enum ast_config_mode config_mode,
-                                    void __iomem *regs,
-                                    void __iomem *ioregs,
-                                    bool need_post)
-{
-       struct drm_device *dev;
-       struct ast_device *ast;
-       int ret;
-
-       ast = devm_drm_dev_alloc(&pdev->dev, drv, struct ast_device, base);
-       if (IS_ERR(ast))
-               return ERR_CAST(ast);
-       dev = &ast->base;
-
-       ast_device_init(ast, chip, config_mode, regs, ioregs);
-
-       if (AST_GEN(ast) >= 4)
-               ast_2300_detect_tx_chip(ast);
-       else
-               ast_2000_detect_tx_chip(ast, need_post);
-
-       switch (ast->tx_chip) {
-       case AST_TX_ASTDP:
-               ret = ast_post_gpu(ast);
-               break;
-       default:
-               ret = 0;
-               if (need_post)
-                       ret = ast_post_gpu(ast);
-               break;
-       }
-       if (ret)
-               return ERR_PTR(ret);
-
-       ret = ast_mm_init(ast);
-       if (ret)
-               return ERR_PTR(ret);
-
-       /* map reserved buffer */
-       ast->dp501_fw_buf = NULL;
-       if (ast->vram_size < pci_resource_len(pdev, 0)) {
-               ast->dp501_fw_buf = pci_iomap_range(pdev, 0, ast->vram_size, 0);
-               if (!ast->dp501_fw_buf)
-                       drm_info(dev, "failed to map reserved buffer!\n");
-       }
-
-       ast_detect_widescreen(ast);
-
-       ret = ast_mode_config_init(ast);
-       if (ret)
-               return ERR_PTR(ret);
-
-       return dev;
-}

Reply via email to