Thread (5 messages) 5 messages, 4 authors, 2025-02-07

RE: [PATCH] HID: intel-thc-hid: Remove deprecated PCI API calls

From: "Xu, Even" <even.xu@intel.com>
Date: 2025-02-05 02:28:14
Also in: linux-pci, lkml

quoted hunk ↗ jump to hunk
-----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 [off-list ref]; Benjamin Tissoires [off-list ref]; Srinivas
Pandruvada [off-list ref]; Mark Pearson <mpearson-
lenovo@squebb.ca>; Philipp Stanner [off-list ref]
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
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help