From: Rosen Penev <rosenp@gmail.com>
To: linux-gpio@vger.kernel.org
Cc: Michael Buesch <m@bues.ch>, Linus Walleij <linusw@kernel.org>,
Bartosz Golaszewski <brgl@kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
linux-kernel@vger.kernel.org (open list),
llvm@lists.linux.dev (open list:CLANG/LLVM BUILD
SUPPORT:Keyword:\b(?i:clang|llvm)\b)
Subject: [PATCH] gpio: bt8xx: use devm_ioremap_resource()
Date: Mon, 13 Jul 2026 16:28:10 -0700 [thread overview]
Message-ID: <20260713232810.1144712-1-rosenp@gmail.com> (raw)
Replace the open-coded devm_request_mem_region() plus devm_ioremap()
sequence with a single devm_ioremap_resource() call on the BAR0 resource.
This reserves the region and maps it in one step, and maps the full BAR
length instead of a hardcoded 0x1000 (BAR0 on the bt848/878 is a 4KB
register block, so the mapped size is unchanged).
devm_ioremap_resource() returns an ERR_PTR on failure, so check with
IS_ERR() and propagate PTR_ERR(). Drop the now-redundant error message,
as devm_ioremap_resource() already logs on every failure path. Since it
can return -EPROBE_DEFER, place it early.
Built for ARM (defconfig + CONFIG_GPIO_BT8XX) with LLVM=1;
drivers/gpio/gpio-bt8xx.o compiles cleanly.
Assisted-by: opencode:hy3-free
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/gpio/gpio-bt8xx.c | 21 ++++++---------------
1 file changed, 6 insertions(+), 15 deletions(-)
diff --git a/drivers/gpio/gpio-bt8xx.c b/drivers/gpio/gpio-bt8xx.c
index 324eeb77dbd5..f3a2321bc388 100644
--- a/drivers/gpio/gpio-bt8xx.c
+++ b/drivers/gpio/gpio-bt8xx.c
@@ -154,12 +154,18 @@ static int bt8xxgpio_probe(struct pci_dev *dev,
const struct pci_device_id *pci_id)
{
struct bt8xxgpio *bg;
+ void __iomem *mmio;
int err;
+ mmio = devm_ioremap_resource(&dev->dev, pci_resource_n(dev, 0));
+ if (IS_ERR(mmio))
+ return PTR_ERR(mmio);
+
bg = devm_kzalloc(&dev->dev, sizeof(struct bt8xxgpio), GFP_KERNEL);
if (!bg)
return -ENOMEM;
+ bg->mmio = mmio;
bg->pdev = dev;
spin_lock_init(&bg->lock);
@@ -168,24 +174,9 @@ static int bt8xxgpio_probe(struct pci_dev *dev,
dev_err(&dev->dev, "can't enable device.\n");
return err;
}
- if (!devm_request_mem_region(&dev->dev, pci_resource_start(dev, 0),
- pci_resource_len(dev, 0),
- "bt8xxgpio")) {
- dev_warn(&dev->dev, "can't request iomem (0x%llx).\n",
- (unsigned long long)pci_resource_start(dev, 0));
- err = -EBUSY;
- goto err_disable;
- }
pci_set_master(dev);
pci_set_drvdata(dev, bg);
- bg->mmio = devm_ioremap(&dev->dev, pci_resource_start(dev, 0), 0x1000);
- if (!bg->mmio) {
- dev_err(&dev->dev, "ioremap() failed\n");
- err = -EIO;
- goto err_disable;
- }
-
/* Disable interrupts */
bgwrite(0, BT848_INT_MASK);
--
2.55.0
next reply other threads:[~2026-07-13 23:28 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-13 23:28 Rosen Penev [this message]
2026-07-17 8:58 ` Bartosz Golaszewski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260713232810.1144712-1-rosenp@gmail.com \
--to=rosenp@gmail.com \
--cc=brgl@kernel.org \
--cc=justinstitt@google.com \
--cc=linusw@kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=m@bues.ch \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox