gpio: Replace deprecated PCI functions
authorPhilipp Stanner <pstanner@redhat.com>
Wed, 16 Oct 2024 09:49:08 +0000 (11:49 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 7 Nov 2024 13:10:34 +0000 (07:10 -0600)
pcim_iomap_regions() and pcim_iomap_table() have been deprecated by the
PCI subsystem in commit e354bb84a4c1 ("PCI: Deprecate
pcim_iomap_table(), pcim_iomap_regions_request_all()").

Replace those functions with calls to pcim_iomap_region().

Link: https://lore.kernel.org/r/20241016094911.24818-7-pstanner@redhat.com
Signed-off-by: Philipp Stanner <pstanner@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-merrifield.c

index 421d7e3..cd20604 100644 (file)
@@ -78,24 +78,25 @@ static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id
        if (retval)
                return retval;
 
-       retval = pcim_iomap_regions(pdev, BIT(1) | BIT(0), pci_name(pdev));
-       if (retval)
-               return dev_err_probe(dev, retval, "I/O memory mapping error\n");
-
-       base = pcim_iomap_table(pdev)[1];
+       base = pcim_iomap_region(pdev, 1, pci_name(pdev));
+       if (IS_ERR(base))
+               return dev_err_probe(dev, PTR_ERR(base), "I/O memory mapping error\n");
 
        irq_base = readl(base + 0 * sizeof(u32));
        gpio_base = readl(base + 1 * sizeof(u32));
 
        /* Release the IO mapping, since we already get the info from BAR1 */
-       pcim_iounmap_regions(pdev, BIT(1));
+       pcim_iounmap_region(pdev, 1);
 
        priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
        if (!priv)
                return -ENOMEM;
 
        priv->dev = dev;
-       priv->reg_base = pcim_iomap_table(pdev)[0];
+       priv->reg_base = pcim_iomap_region(pdev, 0, pci_name(pdev));
+       if (IS_ERR(priv->reg_base))
+               return dev_err_probe(dev, PTR_ERR(priv->reg_base),
+                               "I/O memory mapping error\n");
 
        priv->pin_info.pin_ranges = mrfld_gpio_ranges;
        priv->pin_info.nranges = ARRAY_SIZE(mrfld_gpio_ranges);