drm/ast: Request PCI BAR with devres
authorPhilipp Stanner <pstanner@redhat.com>
Wed, 7 Aug 2024 08:30:20 +0000 (10:30 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 9 Aug 2024 20:08:42 +0000 (15:08 -0500)
ast currently ioremaps two PCI BARs using pcim_iomap(). It does not perform
a request on the regions, however, which would make the driver a bit more
robust.

PCI now offers pcim_iomap_region(), a managed function which both requests
and ioremaps a BAR.

Replace pcim_iomap() with pcim_iomap_region().

Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://lore.kernel.org/r/20240807083018.8734-4-pstanner@redhat.com
Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/ast/ast_drv.c

index aae019e79bda88197bc08bc998bce20ee116cac2..1fadaadfbe39f392ae50785c80e57cc6bca9c07e 100644 (file)
@@ -287,9 +287,9 @@ static int ast_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (ret)
                return ret;
 
-       regs = pcim_iomap(pdev, 1, 0);
-       if (!regs)
-               return -EIO;
+       regs = pcim_iomap_region(pdev, 1, "ast");
+       if (IS_ERR(regs))
+               return PTR_ERR(regs);
 
        if (pdev->revision >= 0x40) {
                /*
@@ -311,9 +311,9 @@ static int ast_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 
                if (len < AST_IO_MM_LENGTH)
                        return -EIO;
-               ioregs = pcim_iomap(pdev, 2, 0);
-               if (!ioregs)
-                       return -EIO;
+               ioregs = pcim_iomap_region(pdev, 2, "ast");
+               if (IS_ERR(ioregs))
+                       return PTR_ERR(ioregs);
        } else {
                /*
                 * Anything else is best effort.