drivers/pwm/pwm-dwc.c | 14 +++++--------- drivers/pwm/pwm-lpss-pci.c | 9 +++++---- 2 files changed, 10 insertions(+), 13 deletions(-)
pcim_iomap_table() and pcim_request_regions() have been deprecated in
commit e354bb84a4c1 ("PCI: Deprecate pcim_iomap_table(),
pcim_iomap_regions_request_all()") and commit d140f80f60358 ("PCI:
Deprecate pcim_iomap_regions() in favor of pcim_iomap_region()").
Replace these functions with pcim_iomap_region().
Additionally, pass the actual driver names to pcim_iomap_region()
instead of the previous pci_name(), since the 'name' parameter should
always reflect which driver owns a region.
Signed-off-by: Philipp Stanner <pstanner@redhat.com>
---
drivers/pwm/pwm-dwc.c | 14 +++++---------
drivers/pwm/pwm-lpss-pci.c | 9 +++++----
2 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/drivers/pwm/pwm-dwc.c b/drivers/pwm/pwm-dwc.c
index fb3eadf6fbc4..9101a89447d6 100644
--- a/drivers/pwm/pwm-dwc.c
+++ b/drivers/pwm/pwm-dwc.c
@@ -66,20 +66,16 @@ static int dwc_pwm_probe(struct pci_dev *pci, const struct pci_device_id *id)
pci_set_master(pci);
- ret = pcim_iomap_regions(pci, BIT(0), pci_name(pci));
- if (ret)
- return dev_err_probe(dev, ret, "Failed to iomap PCI BAR\n");
-
info = (const struct dwc_pwm_info *)id->driver_data;
ddata = devm_kzalloc(dev, struct_size(ddata, chips, info->nr), GFP_KERNEL);
if (!ddata)
return -ENOMEM;
- /*
- * No need to check for pcim_iomap_table() failure,
- * pcim_iomap_regions() already does it for us.
- */
- ddata->io_base = pcim_iomap_table(pci)[0];
+ ddata->io_base = pcim_iomap_region(pci, 0, "pwm-dwc");
+ ret = PTR_ERR_OR_ZERO(ddata->io_base);
+ if (ret)
+ return dev_err_probe(dev, ret, "Failed to iomap PCI BAR\n");
+
ddata->info = info;
for (idx = 0; idx < ddata->info->nr; idx++) {
diff --git a/drivers/pwm/pwm-lpss-pci.c b/drivers/pwm/pwm-lpss-pci.c
index f7ece2809e6b..823f570afb80 100644
--- a/drivers/pwm/pwm-lpss-pci.c
+++ b/drivers/pwm/pwm-lpss-pci.c
@@ -18,6 +18,7 @@ static int pwm_lpss_probe_pci(struct pci_dev *pdev,
const struct pci_device_id *id)
{
const struct pwm_lpss_boardinfo *info;
+ void __iomem *io_base;
struct pwm_chip *chip;
int err;
@@ -25,12 +26,12 @@ static int pwm_lpss_probe_pci(struct pci_dev *pdev,
if (err < 0)
return err;
- err = pcim_iomap_regions(pdev, BIT(0), pci_name(pdev));
- if (err)
- return err;
+ io_base = pcim_iomap_region(pdev, 0, "pwm-lpss");
+ if (IS_ERR(io_base))
+ return PTR_ERR(io_base);
info = (struct pwm_lpss_boardinfo *)id->driver_data;
- chip = devm_pwm_lpss_probe(&pdev->dev, pcim_iomap_table(pdev)[0], info);
+ chip = devm_pwm_lpss_probe(&pdev->dev, io_base, info);
if (IS_ERR(chip))
return PTR_ERR(chip);
--
2.47.0
Hello,
[adding Bjorn and linux-pci to Cc:]
On Tue, Nov 05, 2024 at 10:26:42AM +0100, Philipp Stanner wrote:
> diff --git a/drivers/pwm/pwm-dwc.c b/drivers/pwm/pwm-dwc.c
> index fb3eadf6fbc4..9101a89447d6 100644
> --- a/drivers/pwm/pwm-dwc.c
> +++ b/drivers/pwm/pwm-dwc.c
> @@ -66,20 +66,16 @@ static int dwc_pwm_probe(struct pci_dev *pci, const struct pci_device_id *id)
>
> pci_set_master(pci);
>
> - ret = pcim_iomap_regions(pci, BIT(0), pci_name(pci));
> - if (ret)
> - return dev_err_probe(dev, ret, "Failed to iomap PCI BAR\n");
> -
> info = (const struct dwc_pwm_info *)id->driver_data;
> ddata = devm_kzalloc(dev, struct_size(ddata, chips, info->nr), GFP_KERNEL);
> if (!ddata)
> return -ENOMEM;
>
> - /*
> - * No need to check for pcim_iomap_table() failure,
> - * pcim_iomap_regions() already does it for us.
> - */
> - ddata->io_base = pcim_iomap_table(pci)[0];
> + ddata->io_base = pcim_iomap_region(pci, 0, "pwm-dwc");
> + ret = PTR_ERR_OR_ZERO(ddata->io_base);
> + if (ret)
> + return dev_err_probe(dev, ret, "Failed to iomap PCI BAR\n");
I'd say the following is more natural:
ddata->io_base = pcim_iomap_region(pci, 0, "pwm-dwc");
if (IS_ERR(ddata->io_base))
return dev_err_probe(dev, PTR_ERR(ddata->io_base), "Failed to iomap PCI BAR\n");
(maybe with a local variable for ddata->io_base?)
> +
> ddata->info = info;
>
> for (idx = 0; idx < ddata->info->nr; idx++) {
> diff --git a/drivers/pwm/pwm-lpss-pci.c b/drivers/pwm/pwm-lpss-pci.c
> index f7ece2809e6b..823f570afb80 100644
> --- a/drivers/pwm/pwm-lpss-pci.c
> +++ b/drivers/pwm/pwm-lpss-pci.c
> [...]
> @@ -25,12 +26,12 @@ static int pwm_lpss_probe_pci(struct pci_dev *pdev,
> if (err < 0)
> return err;
>
> - err = pcim_iomap_regions(pdev, BIT(0), pci_name(pdev));
> - if (err)
> - return err;
> + io_base = pcim_iomap_region(pdev, 0, "pwm-lpss");
> + if (IS_ERR(io_base))
> + return PTR_ERR(io_base);
>
> info = (struct pwm_lpss_boardinfo *)id->driver_data;
> - chip = devm_pwm_lpss_probe(&pdev->dev, pcim_iomap_table(pdev)[0], info);
> + chip = devm_pwm_lpss_probe(&pdev->dev, io_base, info);
> if (IS_ERR(chip))
> return PTR_ERR(chip);
I remember I didn't like it when pcim_iomap_table(pdev)[0] was
introduced. Glad it can go away.
Best regards
Uwe
© 2016 - 2026 Red Hat, Inc.