Re: [PATCH v7 4/5] gpio: Replace deprecated PCI functions
From: Philipp Stanner <hidden>
Date: 2024-10-14 12:59:24
Also in:
linux-block, linux-fpga, linux-gpio, linux-pci, lkml
On Mon, 2024-10-14 at 13:13 +0100, Simon Horman wrote:
On Mon, Oct 14, 2024 at 09:53:25AM +0200, Philipp Stanner wrote:quoted
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(). Signed-off-by: Philipp Stanner <redacted> Reviewed-by: Andy Shevchenko <andy@kernel.org> Acked-by: Bartosz Golaszewski <redacted> --- drivers/gpio/gpio-merrifield.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c index 421d7e3a6c66..274afcba31e6 100644--- a/drivers/gpio/gpio-merrifield.c +++ b/drivers/gpio/gpio-merrifield.c@@ -78,24 +78,24 @@ 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(base), "I/O memory mapping error\n");Hi Philipp, There seems to be a mismatch in the use of priv->reg_base and base above. Should the above use PTR_ERR(priv->reg_base) instead of PTR_ERR(base)?
uff, yes, good catch! Will fix, thx P.
quoted
priv->pin_info.pin_ranges = mrfld_gpio_ranges; priv->pin_info.nranges = ARRAY_SIZE(mrfld_gpio_ranges); -- 2.46.2