drm/mgag200: Add struct mgag200_device_info
authorThomas Zimmermann <tzimmermann@suse.de>
Wed, 1 Jun 2022 11:25:18 +0000 (13:25 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 7 Jun 2022 07:39:58 +0000 (09:39 +0200)
While currently empty, struct mgag200_device_info, will provide static,
constant information on each device model.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Tested-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220601112522.5774-7-tzimmermann@suse.de
drivers/gpu/drm/mgag200/mgag200_drv.c
drivers/gpu/drm/mgag200/mgag200_drv.h
drivers/gpu/drm/mgag200/mgag200_g200.c
drivers/gpu/drm/mgag200/mgag200_g200eh.c
drivers/gpu/drm/mgag200/mgag200_g200eh3.c
drivers/gpu/drm/mgag200/mgag200_g200er.c
drivers/gpu/drm/mgag200/mgag200_g200ev.c
drivers/gpu/drm/mgag200/mgag200_g200ew3.c
drivers/gpu/drm/mgag200/mgag200_g200se.c
drivers/gpu/drm/mgag200/mgag200_g200wb.c

index 8f636db4a7239288ded4812b3e06616466597589..90ed7770ff72e6643a0f5260ae1738f3038a94e2 100644 (file)
@@ -162,13 +162,15 @@ int mgag200_device_preinit(struct mga_device *mdev)
        return 0;
 }
 
-int mgag200_device_init(struct mga_device *mdev, enum mga_type type, unsigned long flags)
+int mgag200_device_init(struct mga_device *mdev, enum mga_type type, unsigned long flags,
+                       const struct mgag200_device_info *info)
 {
        struct drm_device *dev = &mdev->base;
        u8 crtcext3, misc;
        int ret;
 
        mdev->flags = flags;
+       mdev->info = info;
        mdev->type = type;
 
        ret = drmm_mutex_init(dev, &mdev->rmmio_lock);
index 9abecf36626870e2a8f7eb1f6baa5b65b236b1a2..89cb4e4761190c33dc56d375c74afcd0291c0c78 100644 (file)
@@ -196,10 +196,19 @@ enum mga_type {
 
 #define IS_G200_SE(mdev) (mdev->type == G200_SE_A || mdev->type == G200_SE_B)
 
+struct mgag200_device_info {
+};
+
+#define MGAG200_DEVICE_INFO_INIT() \
+       { \
+       }
+
 struct mga_device {
        struct drm_device               base;
        unsigned long                   flags;
 
+       const struct mgag200_device_info *info;
+
        struct resource                 *rmmio_res;
        void __iomem                    *rmmio;
        struct mutex                    rmmio_lock; /* Protects access to rmmio */
@@ -252,7 +261,8 @@ int mgag200_init_pci_options(struct pci_dev *pdev, u32 option, u32 option2);
 resource_size_t mgag200_probe_vram(void __iomem *mem, resource_size_t size);
 resource_size_t mgag200_device_probe_vram(struct mga_device *mdev);
 int mgag200_device_preinit(struct mga_device *mdev);
-int mgag200_device_init(struct mga_device *mdev, enum mga_type type, unsigned long flags);
+int mgag200_device_init(struct mga_device *mdev, enum mga_type type, unsigned long flags,
+                       const struct mgag200_device_info *info);
 
                                /* mgag200_<device type>.c */
 struct mga_device *mgag200_g200_device_create(struct pci_dev *pdev, const struct drm_driver *drv,
index 4300a472c0a30d31f4609df9c98f2648068cbcf6..b2969a1f1e0b0270e8efded90ac6be0c16108240 100644 (file)
@@ -33,6 +33,9 @@ static int mgag200_g200_init_pci_options(struct pci_dev *pdev)
  * DRM Device
  */
 
+static const struct mgag200_device_info mgag200_g200_device_info =
+       MGAG200_DEVICE_INFO_INIT();
+
 static void mgag200_g200_interpret_bios(struct mgag200_g200_device *g200,
                                        const unsigned char *bios, size_t size)
 {
@@ -183,7 +186,7 @@ struct mga_device *mgag200_g200_device_create(struct pci_dev *pdev, const struct
 
        mgag200_g200_init_refclk(g200);
 
-       ret = mgag200_device_init(mdev, type, flags);
+       ret = mgag200_device_init(mdev, type, flags, &mgag200_g200_device_info);
        if (ret)
                return ERR_PTR(ret);
 
index 7af9bdfb03c7f95155d1c820fa70c7bdcf8bf452..6284fedc1b8a7e7235c989bc314b9ad23c19f939 100644 (file)
@@ -10,6 +10,9 @@
  * DRM device
  */
 
+static const struct mgag200_device_info mgag200_g200eh_device_info =
+       MGAG200_DEVICE_INFO_INIT();
+
 struct mga_device *mgag200_g200eh_device_create(struct pci_dev *pdev, const struct drm_driver *drv,
                                                enum mga_type type, unsigned long flags)
 {
@@ -33,7 +36,7 @@ struct mga_device *mgag200_g200eh_device_create(struct pci_dev *pdev, const stru
        if (ret)
                return ERR_PTR(ret);
 
-       ret = mgag200_device_init(mdev, type, flags);
+       ret = mgag200_device_init(mdev, type, flags, &mgag200_g200eh_device_info);
        if (ret)
                return ERR_PTR(ret);
 
index c0695d5c4f682ef913ec483dac5d33244cfa3f6c..c8e46b89286ff705e9c61934e87bab2c1e64fd2c 100644 (file)
@@ -10,6 +10,9 @@
  * DRM device
  */
 
+static const struct mgag200_device_info mgag200_g200eh3_device_info =
+       MGAG200_DEVICE_INFO_INIT();
+
 struct mga_device *mgag200_g200eh3_device_create(struct pci_dev *pdev,
                                                 const struct drm_driver *drv,
                                                 enum mga_type type, unsigned long flags)
@@ -34,7 +37,7 @@ struct mga_device *mgag200_g200eh3_device_create(struct pci_dev *pdev,
        if (ret)
                return ERR_PTR(ret);
 
-       ret = mgag200_device_init(mdev, type, flags);
+       ret = mgag200_device_init(mdev, type, flags, &mgag200_g200eh3_device_info);
        if (ret)
                return ERR_PTR(ret);
 
index 281317450fad94ad80cfcbcf6bd37fdeeed09b87..ef16ce4adecde099baffd027f1f866ebf39e4e0c 100644 (file)
@@ -10,6 +10,9 @@
  * DRM device
  */
 
+static const struct mgag200_device_info mgag200_g200er_device_info =
+       MGAG200_DEVICE_INFO_INIT();
+
 struct mga_device *mgag200_g200er_device_create(struct pci_dev *pdev, const struct drm_driver *drv,
                                                enum mga_type type, unsigned long flags)
 {
@@ -29,7 +32,7 @@ struct mga_device *mgag200_g200er_device_create(struct pci_dev *pdev, const stru
        if (ret)
                return ERR_PTR(ret);
 
-       ret = mgag200_device_init(mdev, type, flags);
+       ret = mgag200_device_init(mdev, type, flags, &mgag200_g200er_device_info);
        if (ret)
                return ERR_PTR(ret);
 
index 41f948962b9303b84b70cc4c3343d6c04350a145..75d08fb503bb69e35b6bda1c4e8537c49acd5c33 100644 (file)
@@ -10,6 +10,9 @@
  * DRM device
  */
 
+static const struct mgag200_device_info mgag200_g200ev_device_info =
+       MGAG200_DEVICE_INFO_INIT();
+
 struct mga_device *mgag200_g200ev_device_create(struct pci_dev *pdev, const struct drm_driver *drv,
                                                enum mga_type type, unsigned long flags)
 {
@@ -33,7 +36,7 @@ struct mga_device *mgag200_g200ev_device_create(struct pci_dev *pdev, const stru
        if (ret)
                return ERR_PTR(ret);
 
-       ret = mgag200_device_init(mdev, type, flags);
+       ret = mgag200_device_init(mdev, type, flags, &mgag200_g200ev_device_info);
        if (ret)
                return ERR_PTR(ret);
 
index 89346815e10778b90cf5623faff655cf62f38559..7cb18685b98d1f8770a6ff3a3baaa188a309bd9f 100644 (file)
@@ -10,6 +10,9 @@
  * DRM device
  */
 
+static const struct mgag200_device_info mgag200_g200ew3_device_info =
+       MGAG200_DEVICE_INFO_INIT();
+
 static resource_size_t mgag200_g200ew3_device_probe_vram(struct mga_device *mdev)
 {
        resource_size_t vram_size = resource_size(mdev->vram_res);
@@ -43,7 +46,7 @@ struct mga_device *mgag200_g200ew3_device_create(struct pci_dev *pdev,
        if (ret)
                return ERR_PTR(ret);
 
-       ret = mgag200_device_init(mdev, type, flags);
+       ret = mgag200_device_init(mdev, type, flags, &mgag200_g200ew3_device_info);
        if (ret)
                return ERR_PTR(ret);
 
index b234597103728fce0b6b98aa398c8d6c52ae3d4a..69a17f057b3222659909dcdf1c8e803907a3f7b2 100644 (file)
@@ -32,6 +32,9 @@ static int mgag200_g200se_init_pci_options(struct pci_dev *pdev)
  * DRM device
  */
 
+static const struct mgag200_device_info mgag200_g200se_device_info =
+       MGAG200_DEVICE_INFO_INIT();
+
 static void mgag200_g200se_init_unique_id(struct mgag200_g200se_device *g200se)
 {
        struct mga_device *mdev = &g200se->base;
@@ -70,7 +73,7 @@ struct mga_device *mgag200_g200se_device_create(struct pci_dev *pdev, const stru
 
        mgag200_g200se_init_unique_id(g200se);
 
-       ret = mgag200_device_init(mdev, type, flags);
+       ret = mgag200_device_init(mdev, type, flags, &mgag200_g200se_device_info);
        if (ret)
                return ERR_PTR(ret);
 
index 776bad867b4dc4b201fa137674acad16e414cc86..921c55ec309e3c6ab3fbf390845016bf770e5447 100644 (file)
@@ -10,6 +10,9 @@
  * DRM device
  */
 
+static const struct mgag200_device_info mgag200_g200wb_device_info =
+       MGAG200_DEVICE_INFO_INIT();
+
 struct mga_device *mgag200_g200wb_device_create(struct pci_dev *pdev, const struct drm_driver *drv,
                                                enum mga_type type, unsigned long flags)
 {
@@ -33,7 +36,7 @@ struct mga_device *mgag200_g200wb_device_create(struct pci_dev *pdev, const stru
        if (ret)
                return ERR_PTR(ret);
 
-       ret = mgag200_device_init(mdev, type, flags);
+       ret = mgag200_device_init(mdev, type, flags, &mgag200_g200wb_device_info);
        if (ret)
                return ERR_PTR(ret);