Message ID | 20241105092641.49541-2-pstanner@redhat.com |
---|---|
State | Superseded |
Headers | show |
Series | pwm: Replace deprecated PCI functions | expand |
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
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);
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(-)