[PATCH] ALSA: sis7019: Use pcim_iomap_region() for MMIO BAR

Rosen Penev posted 1 patch 5 days, 2 hours ago
sound/pci/sis7019.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
[PATCH] ALSA: sis7019: Use pcim_iomap_region() for MMIO BAR
Posted by Rosen Penev 5 days, 2 hours ago
Replace the open-coded pcim_request_all_regions() +
devm_ioremap() pair with per-BAR pcim helpers: reserve BAR0 (the
I/O port region, used via inl/outl) with pcim_request_region(), and
reserve + iomap BAR1 (MMIO) with a single pcim_iomap_region() call.

This folds the BAR1 reserve and iomap into one managed call. The
error check moves from a NULL test to IS_ERR(), since pcim_iomap_region()
returns an IOMEM_ERR_PTR on failure.

Assisted-by: opencode:hy3-free
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
 sound/pci/sis7019.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/sound/pci/sis7019.c b/sound/pci/sis7019.c
index 4be085d27712..55c1b11a2900 100644
--- a/sound/pci/sis7019.c
+++ b/sound/pci/sis7019.c
@@ -1260,16 +1260,16 @@ static int sis_chip_create(struct snd_card *card,
 	sis->irq = -1;
 	sis->ioport = pci_resource_start(pci, 0);
 
-	rc = pcim_request_all_regions(pci, "SiS7019");
+	rc = pcim_request_region(pci, 0, "SiS7019");
 	if (rc) {
-		dev_err(&pci->dev, "unable request regions\n");
+		dev_err(&pci->dev, "unable request I/O region\n");
 		return rc;
 	}
 
-	sis->ioaddr = devm_ioremap(&pci->dev, pci_resource_start(pci, 1), 0x4000);
-	if (!sis->ioaddr) {
+	sis->ioaddr = pcim_iomap_region(pci, 1, "SiS7019");
+	if (IS_ERR(sis->ioaddr)) {
 		dev_err(&pci->dev, "unable to remap MMIO, aborting\n");
-		return -EIO;
+		return PTR_ERR(sis->ioaddr);
 	}
 
 	rc = sis_alloc_suspend(sis);
-- 
2.55.0
Re: [PATCH] ALSA: sis7019: Use pcim_iomap_region() for MMIO BAR
Posted by Takashi Iwai 4 days, 20 hours ago
On Mon, 20 Jul 2026 02:09:29 +0200,
Rosen Penev wrote:
> 
> Replace the open-coded pcim_request_all_regions() +
> devm_ioremap() pair with per-BAR pcim helpers: reserve BAR0 (the
> I/O port region, used via inl/outl) with pcim_request_region(), and
> reserve + iomap BAR1 (MMIO) with a single pcim_iomap_region() call.
> 
> This folds the BAR1 reserve and iomap into one managed call. The
> error check moves from a NULL test to IS_ERR(), since pcim_iomap_region()
> returns an IOMEM_ERR_PTR on failure.
> 
> Assisted-by: opencode:hy3-free
> Signed-off-by: Rosen Penev <rosenp@gmail.com>

The original code had a fixed BAR size, but let's hope that it was
just a lazy code and not a workaround.

Applied now to for-next branch.  Thanks.


Takashi