drm/mgag200: Lookup VRAM PCI BAR start and length only once
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 5 Jun 2020 13:57:54 +0000 (15:57 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 11 Jun 2020 08:05:41 +0000 (10:05 +0200)
The MM setup code on mgag200 reads PCI BAR 0's start and length
several times. Reusing these values makes the code more readable.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20200605135803.19811-6-tzimmermann@suse.de
drivers/gpu/drm/mgag200/mgag200_mm.c

index a683642..73e3090 100644 (file)
 int mgag200_mm_init(struct mga_device *mdev)
 {
        struct drm_device *dev = mdev->dev;
+       resource_size_t start, len;
        int ret;
 
-       arch_io_reserve_memtype_wc(pci_resource_start(dev->pdev, 0),
-                                  pci_resource_len(dev->pdev, 0));
+       /* BAR 0 is VRAM */
+       start = pci_resource_start(dev->pdev, 0);
+       len = pci_resource_len(dev->pdev, 0);
 
-       mdev->fb_mtrr = arch_phys_wc_add(pci_resource_start(dev->pdev, 0),
-                                        pci_resource_len(dev->pdev, 0));
+       arch_io_reserve_memtype_wc(start, len);
 
-       mdev->vram = ioremap(pci_resource_start(dev->pdev, 0),
-                            pci_resource_len(dev->pdev, 0));
+       mdev->fb_mtrr = arch_phys_wc_add(start, len);
+
+       mdev->vram = ioremap(start, len);
        if (!mdev->vram) {
                ret = -ENOMEM;
                goto err_arch_phys_wc_del;
@@ -54,8 +56,7 @@ int mgag200_mm_init(struct mga_device *mdev)
 
 err_arch_phys_wc_del:
        arch_phys_wc_del(mdev->fb_mtrr);
-       arch_io_free_memtype_wc(pci_resource_start(dev->pdev, 0),
-                               pci_resource_len(dev->pdev, 0));
+       arch_io_free_memtype_wc(start, len);
        return ret;
 }