mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] pwm: Replace deprecated PCI functions
@ 2024-11-05  9:26 Philipp Stanner
  2024-11-05 13:39 ` Uwe Kleine-König
  0 siblings, 1 reply; 2+ messages in thread
From: Philipp Stanner @ 2024-11-05  9:26 UTC (permalink / raw)
  To: Uwe Kleine-König; +Cc: linux-pwm, linux-kernel, Philipp Stanner

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


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] pwm: Replace deprecated PCI functions
  2024-11-05  9:26 [PATCH] pwm: Replace deprecated PCI functions Philipp Stanner
@ 2024-11-05 13:39 ` Uwe Kleine-König
  0 siblings, 0 replies; 2+ messages in thread
From: Uwe Kleine-König @ 2024-11-05 13:39 UTC (permalink / raw)
  To: Philipp Stanner; +Cc: linux-pwm, linux-kernel, Bjorn Helgaas, linux-pci

[-- Attachment #1: Type: text/plain, Size: 2353 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-11-05 13:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-05  9:26 [PATCH] pwm: Replace deprecated PCI functions Philipp Stanner
2024-11-05 13:39 ` Uwe Kleine-König

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®