public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls
@ 2025-01-28 10:11 Philipp Stanner
  2025-01-28 15:58 ` Bjorn Helgaas
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Philipp Stanner @ 2025-01-28 10:11 UTC (permalink / raw)
  To: Even Xu, Xinpeng Sun, Jiri Kosina, Benjamin Tissoires,
	Srinivas Pandruvada, Mark Pearson, Philipp Stanner
  Cc: linux-input, linux-kernel, linux-pci

intel-thc-hid reintroduced the already deprecated PCI API functions

	pcim_iomap_table(),
	pcim_iomap_regions(),
	pcim_iounmap_regions(),

none of which should be used anymore.

Furthermore, calling managed (pcim_*) functions in remove() and probe()
for cleanup is not necessary, since the managed functions clean up
automatically.

Replace / remove the deprecated functions.

Fixes: 61bb2714dc3a1 ("HID: intel-thc-hid: intel-quicki2c: Add THC QuickI2C driver skeleton")
Signed-off-by: Philipp Stanner <phasta@kernel.org>
---
Hi,

I'm trying to remove this API since a year. Please pay attention to the
docstrings in PCI which mark certain functions as deprecated.

Thanks
P.
---
 .../intel-thc-hid/intel-quicki2c/pci-quicki2c.c    | 14 +++++---------
 .../intel-thc-hid/intel-quickspi/pci-quickspi.c    | 14 +++++---------
 2 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
index 2de93f4a25ca..fa51155ebe39 100644
--- a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
+++ b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
@@ -557,20 +557,19 @@ static int quicki2c_probe(struct pci_dev *pdev,
 
 	pci_set_master(pdev);
 
-	ret = pcim_iomap_regions(pdev, BIT(0), KBUILD_MODNAME);
+	mem_addr = pcim_iomap_region(pdev, 0, KBUILD_MODNAME);
+	ret = PTR_ERR_OR_ZERO(mem_addr);
 	if (ret) {
 		dev_err_once(&pdev->dev, "Failed to get PCI regions, ret = %d.\n", ret);
 		goto disable_pci_device;
 	}
 
-	mem_addr = pcim_iomap_table(pdev)[0];
-
 	ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
 	if (ret) {
 		ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
 		if (ret) {
 			dev_err_once(&pdev->dev, "No usable DMA configuration %d\n", ret);
-			goto unmap_io_region;
+			goto disable_pci_device;
 		}
 	}
 
@@ -578,7 +577,7 @@ static int quicki2c_probe(struct pci_dev *pdev,
 	if (ret < 0) {
 		dev_err_once(&pdev->dev,
 			     "Failed to allocate IRQ vectors. ret = %d\n", ret);
-		goto unmap_io_region;
+		goto disable_pci_device;
 	}
 
 	pdev->irq = pci_irq_vector(pdev, 0);
@@ -587,7 +586,7 @@ static int quicki2c_probe(struct pci_dev *pdev,
 	if (IS_ERR(qcdev)) {
 		dev_err_once(&pdev->dev, "QuickI2C device init failed\n");
 		ret = PTR_ERR(qcdev);
-		goto unmap_io_region;
+		goto disable_pci_device;
 	}
 
 	pci_set_drvdata(pdev, qcdev);
@@ -666,8 +665,6 @@ static int quicki2c_probe(struct pci_dev *pdev,
 	quicki2c_dma_deinit(qcdev);
 dev_deinit:
 	quicki2c_dev_deinit(qcdev);
-unmap_io_region:
-	pcim_iounmap_regions(pdev, BIT(0));
 disable_pci_device:
 	pci_clear_master(pdev);
 
@@ -697,7 +694,6 @@ static void quicki2c_remove(struct pci_dev *pdev)
 
 	quicki2c_dev_deinit(qcdev);
 
-	pcim_iounmap_regions(pdev, BIT(0));
 	pci_clear_master(pdev);
 }
 
diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
index 4641e818dfa4..514b199cb884 100644
--- a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
+++ b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
@@ -575,20 +575,19 @@ static int quickspi_probe(struct pci_dev *pdev,
 
 	pci_set_master(pdev);
 
-	ret = pcim_iomap_regions(pdev, BIT(0), KBUILD_MODNAME);
+	mem_addr = pcim_iomap_region(pdev, 0, KBUILD_MODNAME);
+	ret = PTR_ERR_OR_ZERO(mem_addr);
 	if (ret) {
 		dev_err(&pdev->dev, "Failed to get PCI regions, ret = %d.\n", ret);
 		goto disable_pci_device;
 	}
 
-	mem_addr = pcim_iomap_table(pdev)[0];
-
 	ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
 	if (ret) {
 		ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32));
 		if (ret) {
 			dev_err(&pdev->dev, "No usable DMA configuration %d\n", ret);
-			goto unmap_io_region;
+			goto disable_pci_device;
 		}
 	}
 
@@ -596,7 +595,7 @@ static int quickspi_probe(struct pci_dev *pdev,
 	if (ret < 0) {
 		dev_err(&pdev->dev,
 			"Failed to allocate IRQ vectors. ret = %d\n", ret);
-		goto unmap_io_region;
+		goto disable_pci_device;
 	}
 
 	pdev->irq = pci_irq_vector(pdev, 0);
@@ -605,7 +604,7 @@ static int quickspi_probe(struct pci_dev *pdev,
 	if (IS_ERR(qsdev)) {
 		dev_err(&pdev->dev, "QuickSPI device init failed\n");
 		ret = PTR_ERR(qsdev);
-		goto unmap_io_region;
+		goto disable_pci_device;
 	}
 
 	pci_set_drvdata(pdev, qsdev);
@@ -668,8 +667,6 @@ static int quickspi_probe(struct pci_dev *pdev,
 	quickspi_dma_deinit(qsdev);
 dev_deinit:
 	quickspi_dev_deinit(qsdev);
-unmap_io_region:
-	pcim_iounmap_regions(pdev, BIT(0));
 disable_pci_device:
 	pci_clear_master(pdev);
 
@@ -699,7 +696,6 @@ static void quickspi_remove(struct pci_dev *pdev)
 
 	quickspi_dev_deinit(qsdev);
 
-	pcim_iounmap_regions(pdev, BIT(0));
 	pci_clear_master(pdev);
 }
 
-- 
2.47.1


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

* Re: [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls
  2025-01-28 10:11 [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls Philipp Stanner
@ 2025-01-28 15:58 ` Bjorn Helgaas
  2025-02-05  2:20   ` Xu, Even
  2025-02-05  2:28 ` Xu, Even
  2025-02-07 12:49 ` Jiri Kosina
  2 siblings, 1 reply; 5+ messages in thread
From: Bjorn Helgaas @ 2025-01-28 15:58 UTC (permalink / raw)
  To: Philipp Stanner
  Cc: Even Xu, Xinpeng Sun, Jiri Kosina, Benjamin Tissoires,
	Srinivas Pandruvada, Mark Pearson, linux-input, linux-kernel,
	linux-pci

On Tue, Jan 28, 2025 at 11:11:57AM +0100, Philipp Stanner wrote:
> intel-thc-hid reintroduced the already deprecated PCI API functions
> 
> 	pcim_iomap_table(),
> 	pcim_iomap_regions(),
> 	pcim_iounmap_regions(),
> 
> none of which should be used anymore.
> ...

> I'm trying to remove this API since a year. Please pay attention to the
> docstrings in PCI which mark certain functions as deprecated.

If you don't use it already, lei is a great tool that can help watch
for things like this:
https://people.kernel.org/monsieuricon/lore-lei-part-1-getting-started

Or lore queries along this line:
https://lore.kernel.org/all/?q=rt%3A1.month.ago..+dfb%3Apcim_iomap_table

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

* RE: [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls
  2025-01-28 15:58 ` Bjorn Helgaas
@ 2025-02-05  2:20   ` Xu, Even
  0 siblings, 0 replies; 5+ messages in thread
From: Xu, Even @ 2025-02-05  2:20 UTC (permalink / raw)
  To: Bjorn Helgaas, Philipp Stanner
  Cc: Sun, Xinpeng, Jiri Kosina, Benjamin Tissoires,
	Srinivas Pandruvada, Mark Pearson, linux-input@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org

Thanks Bjorn!

Best Regards,
Even Xu

> -----Original Message-----
> From: Bjorn Helgaas <helgaas@kernel.org>
> Sent: Tuesday, January 28, 2025 11:58 PM
> To: Philipp Stanner <phasta@kernel.org>
> Cc: Xu, Even <even.xu@intel.com>; Sun, Xinpeng <xinpeng.sun@intel.com>; Jiri
> Kosina <jikos@kernel.org>; Benjamin Tissoires <bentiss@kernel.org>; Srinivas
> Pandruvada <srinivas.pandruvada@linux.intel.com>; Mark Pearson <mpearson-
> lenovo@squebb.ca>; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org;
> linux-pci@vger.kernel.org
> Subject: Re: [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls
> 
> On Tue, Jan 28, 2025 at 11:11:57AM +0100, Philipp Stanner wrote:
> > intel-thc-hid reintroduced the already deprecated PCI API functions
> >
> > 	pcim_iomap_table(),
> > 	pcim_iomap_regions(),
> > 	pcim_iounmap_regions(),
> >
> > none of which should be used anymore.
> > ...
> 
> > I'm trying to remove this API since a year. Please pay attention to
> > the docstrings in PCI which mark certain functions as deprecated.
> 
> If you don't use it already, lei is a great tool that can help watch for things like this:
> https://people.kernel.org/monsieuricon/lore-lei-part-1-getting-started
> 
> Or lore queries along this line:
> https://lore.kernel.org/all/?q=rt%3A1.month.ago..+dfb%3Apcim_iomap_table

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

* RE: [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls
  2025-01-28 10:11 [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls Philipp Stanner
  2025-01-28 15:58 ` Bjorn Helgaas
@ 2025-02-05  2:28 ` Xu, Even
  2025-02-07 12:49 ` Jiri Kosina
  2 siblings, 0 replies; 5+ messages in thread
From: Xu, Even @ 2025-02-05  2:28 UTC (permalink / raw)
  To: Philipp Stanner, Sun, Xinpeng, Jiri Kosina, Benjamin Tissoires,
	Srinivas Pandruvada, Mark Pearson
  Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-pci@vger.kernel.org



> -----Original Message-----
> From: Philipp Stanner <phasta@kernel.org>
> Sent: Tuesday, January 28, 2025 6:12 PM
> To: Xu, Even <even.xu@intel.com>; Sun, Xinpeng <xinpeng.sun@intel.com>; Jiri
> Kosina <jikos@kernel.org>; Benjamin Tissoires <bentiss@kernel.org>; Srinivas
> Pandruvada <srinivas.pandruvada@linux.intel.com>; Mark Pearson <mpearson-
> lenovo@squebb.ca>; Philipp Stanner <phasta@kernel.org>
> Cc: linux-input@vger.kernel.org; linux-kernel@vger.kernel.org; linux-
> pci@vger.kernel.org
> Subject: [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls
> 
> intel-thc-hid reintroduced the already deprecated PCI API functions
> 
> 	pcim_iomap_table(),
> 	pcim_iomap_regions(),
> 	pcim_iounmap_regions(),
> 
> none of which should be used anymore.
> 
> Furthermore, calling managed (pcim_*) functions in remove() and probe() for
> cleanup is not necessary, since the managed functions clean up automatically.
> 
> Replace / remove the deprecated functions.
> 
> Fixes: 61bb2714dc3a1 ("HID: intel-thc-hid: intel-quicki2c: Add THC QuickI2C
> driver skeleton")
> Signed-off-by: Philipp Stanner <phasta@kernel.org>
> ---
> Hi,
> 
> I'm trying to remove this API since a year. Please pay attention to the docstrings in
> PCI which mark certain functions as deprecated.
> 
> Thanks
> P.
> ---
>  .../intel-thc-hid/intel-quicki2c/pci-quicki2c.c    | 14 +++++---------
>  .../intel-thc-hid/intel-quickspi/pci-quickspi.c    | 14 +++++---------
>  2 files changed, 10 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> index 2de93f4a25ca..fa51155ebe39 100644
> --- a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> +++ b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> @@ -557,20 +557,19 @@ static int quicki2c_probe(struct pci_dev *pdev,
> 
>  	pci_set_master(pdev);
> 
> -	ret = pcim_iomap_regions(pdev, BIT(0), KBUILD_MODNAME);
> +	mem_addr = pcim_iomap_region(pdev, 0, KBUILD_MODNAME);
> +	ret = PTR_ERR_OR_ZERO(mem_addr);
>  	if (ret) {
>  		dev_err_once(&pdev->dev, "Failed to get PCI regions, ret
> = %d.\n", ret);
>  		goto disable_pci_device;
>  	}
> 
> -	mem_addr = pcim_iomap_table(pdev)[0];
> -
>  	ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
>  	if (ret) {
>  		ret = dma_set_mask_and_coherent(&pdev->dev,
> DMA_BIT_MASK(32));
>  		if (ret) {
>  			dev_err_once(&pdev->dev, "No usable DMA
> configuration %d\n", ret);
> -			goto unmap_io_region;
> +			goto disable_pci_device;
>  		}
>  	}
> 
> @@ -578,7 +577,7 @@ static int quicki2c_probe(struct pci_dev *pdev,
>  	if (ret < 0) {
>  		dev_err_once(&pdev->dev,
>  			     "Failed to allocate IRQ vectors. ret = %d\n", ret);
> -		goto unmap_io_region;
> +		goto disable_pci_device;
>  	}
> 
>  	pdev->irq = pci_irq_vector(pdev, 0);
> @@ -587,7 +586,7 @@ static int quicki2c_probe(struct pci_dev *pdev,
>  	if (IS_ERR(qcdev)) {
>  		dev_err_once(&pdev->dev, "QuickI2C device init failed\n");
>  		ret = PTR_ERR(qcdev);
> -		goto unmap_io_region;
> +		goto disable_pci_device;
>  	}
> 
>  	pci_set_drvdata(pdev, qcdev);
> @@ -666,8 +665,6 @@ static int quicki2c_probe(struct pci_dev *pdev,
>  	quicki2c_dma_deinit(qcdev);
>  dev_deinit:
>  	quicki2c_dev_deinit(qcdev);
> -unmap_io_region:
> -	pcim_iounmap_regions(pdev, BIT(0));
>  disable_pci_device:
>  	pci_clear_master(pdev);
> 
> @@ -697,7 +694,6 @@ static void quicki2c_remove(struct pci_dev *pdev)
> 
>  	quicki2c_dev_deinit(qcdev);
> 
> -	pcim_iounmap_regions(pdev, BIT(0));
>  	pci_clear_master(pdev);
>  }
> 
> diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> index 4641e818dfa4..514b199cb884 100644
> --- a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> +++ b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> @@ -575,20 +575,19 @@ static int quickspi_probe(struct pci_dev *pdev,
> 
>  	pci_set_master(pdev);
> 
> -	ret = pcim_iomap_regions(pdev, BIT(0), KBUILD_MODNAME);
> +	mem_addr = pcim_iomap_region(pdev, 0, KBUILD_MODNAME);
> +	ret = PTR_ERR_OR_ZERO(mem_addr);
>  	if (ret) {
>  		dev_err(&pdev->dev, "Failed to get PCI regions, ret = %d.\n",
> ret);
>  		goto disable_pci_device;
>  	}
> 
> -	mem_addr = pcim_iomap_table(pdev)[0];
> -
>  	ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
>  	if (ret) {
>  		ret = dma_set_mask_and_coherent(&pdev->dev,
> DMA_BIT_MASK(32));
>  		if (ret) {
>  			dev_err(&pdev->dev, "No usable DMA
> configuration %d\n", ret);
> -			goto unmap_io_region;
> +			goto disable_pci_device;
>  		}
>  	}
> 
> @@ -596,7 +595,7 @@ static int quickspi_probe(struct pci_dev *pdev,
>  	if (ret < 0) {
>  		dev_err(&pdev->dev,
>  			"Failed to allocate IRQ vectors. ret = %d\n", ret);
> -		goto unmap_io_region;
> +		goto disable_pci_device;
>  	}
> 
>  	pdev->irq = pci_irq_vector(pdev, 0);
> @@ -605,7 +604,7 @@ static int quickspi_probe(struct pci_dev *pdev,
>  	if (IS_ERR(qsdev)) {
>  		dev_err(&pdev->dev, "QuickSPI device init failed\n");
>  		ret = PTR_ERR(qsdev);
> -		goto unmap_io_region;
> +		goto disable_pci_device;
>  	}
> 
>  	pci_set_drvdata(pdev, qsdev);
> @@ -668,8 +667,6 @@ static int quickspi_probe(struct pci_dev *pdev,
>  	quickspi_dma_deinit(qsdev);
>  dev_deinit:
>  	quickspi_dev_deinit(qsdev);
> -unmap_io_region:
> -	pcim_iounmap_regions(pdev, BIT(0));
>  disable_pci_device:
>  	pci_clear_master(pdev);
> 
> @@ -699,7 +696,6 @@ static void quickspi_remove(struct pci_dev *pdev)
> 
>  	quickspi_dev_deinit(qsdev);
> 
> -	pcim_iounmap_regions(pdev, BIT(0));
>  	pci_clear_master(pdev);
>  }

Thanks for the fix!

Reviewed-by: Even Xu <even.xu@intel.com>

> 
> --
> 2.47.1


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

* Re: [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls
  2025-01-28 10:11 [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls Philipp Stanner
  2025-01-28 15:58 ` Bjorn Helgaas
  2025-02-05  2:28 ` Xu, Even
@ 2025-02-07 12:49 ` Jiri Kosina
  2 siblings, 0 replies; 5+ messages in thread
From: Jiri Kosina @ 2025-02-07 12:49 UTC (permalink / raw)
  To: Philipp Stanner
  Cc: Even Xu, Xinpeng Sun, Benjamin Tissoires, Srinivas Pandruvada,
	Mark Pearson, linux-input, linux-kernel, linux-pci

On Tue, 28 Jan 2025, Philipp Stanner wrote:

> intel-thc-hid reintroduced the already deprecated PCI API functions
> 
> 	pcim_iomap_table(),
> 	pcim_iomap_regions(),
> 	pcim_iounmap_regions(),
> 
> none of which should be used anymore.
> 
> Furthermore, calling managed (pcim_*) functions in remove() and probe()
> for cleanup is not necessary, since the managed functions clean up
> automatically.
> 
> Replace / remove the deprecated functions.
> 
> Fixes: 61bb2714dc3a1 ("HID: intel-thc-hid: intel-quicki2c: Add THC QuickI2C driver skeleton")
> Signed-off-by: Philipp Stanner <phasta@kernel.org>
> ---
> Hi,
> 
> I'm trying to remove this API since a year. Please pay attention to the
> docstrings in PCI which mark certain functions as deprecated.

Applied, thanks.

-- 
Jiri Kosina
SUSE Labs


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

end of thread, other threads:[~2025-02-07 12:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-28 10:11 [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls Philipp Stanner
2025-01-28 15:58 ` Bjorn Helgaas
2025-02-05  2:20   ` Xu, Even
2025-02-05  2:28 ` Xu, Even
2025-02-07 12:49 ` Jiri Kosina

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