From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1577F3B8111 for ; Mon, 13 Jul 2026 23:28:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783985295; cv=none; b=V8e0nfeupIknIcidp1lc7U4dZTBlauLrFgWsMuPpxz3zVpoY89FcSAeg6zatozl7TjJLQVkhn/yrub6wND27tEHNt1n2yzQu6cGvvelGYTp1PaZGm0fWD8dwWRiO290CkQbsCS+bkEsMkc7GACQEu40fGxEqaKoijJU0LnFJyNg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783985295; c=relaxed/simple; bh=aaIoKxerYazpmbZIApAxA9/aIMa5XXLt9MueI3ppcgc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=QUDrqOa1nlA1rgDZcGGZyIReKIpzmhkoA4wWkR0tw6VUASAF4XufmGUHjKOqJfWo0bXIt+huqLsRmj63tkPoOR823+TQK3lYadAbzFNz758OkzRhRZTx3LZpqiobkoIUg65Q+iX2dCex2myrxlMCf+6ZTFYixna2DgoDO84F30Q= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ZW/k1uvx; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZW/k1uvx" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2ca64c3ce5fso40826525ad.3 for ; Mon, 13 Jul 2026 16:28:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783985292; x=1784590092; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=Z60C7Uy39FpdZ+RfV4gWz/iQ2OV7+l8hzFbxcfqVBdM=; b=ZW/k1uvx7pqPMNjHGWIgDGUDOQkFbb6HhVSt1kB+EBy+0h2H+tjq48hbzm1onc6yc1 WDUD1W435MrQtOV21I0SgCqi5VB/upi8qjKbmDuPsRlkk52P2Nb0LIo4tfN+HseN1BBF HsU6csuPdl3De782wEwbb+QYTS9GTHe2wcJhwyjjkaMByM51+JHYtt0/RiO/4IVyhXBE +OiM11/uwPtfr1+6+0/Ps3srxi7zBYWVG4Ff9pi88ZHoej4TAZomJXlojA9f3HTXqFag DnRO/esyry5ECsEC3v8UR5Wd1QqqRCk227sXUyLwaCC7K40PQ+SVJIVZ7nMZW1Ch4YHu 4p4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783985292; x=1784590092; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Z60C7Uy39FpdZ+RfV4gWz/iQ2OV7+l8hzFbxcfqVBdM=; b=Z2oKJSfC5CtPC/TNI+shCMrxYeILMt5OZW2k6s5621NhX+axtnreeKI3ChI8hVD9g6 5UApHahbI86Jrv1nxrokxaxCIqXQKyIUGkcrXeK5KUBf0VvSMGzwMIcBJFqW1+SBC4kk VKoOrciCl8fR1HP9QtJJuFlOJQAedfxosFSvcQopuY288OX1ydYqc0glfo8L41Dp5wrO xaneW30aBsw8zBG1TsmKBtgNd79ULzIU3kVTrebkf9H6xuY5IdTUcxSljeJ1rkx+/JLg M820lzH0T3043rYKRXksp9nq9GA+KJdDH72qxgoN14tFMMsifJuWSTdWYIUOTnJS4+Zi EQlQ== X-Forwarded-Encrypted: i=1; AHgh+Rpcwkep6kdZIbti3Mlhb45nS3FBr8Fu913Qz3hOq6OVSva8DHIZmgHrlEHD71kXftjh3fEtfDYyUkD0zVM=@vger.kernel.org X-Gm-Message-State: AOJu0Yzi7lyvXwL0vbZvnKI4n6PwCQkmrCswgGORXOJnV/ZwLhnE8e5q fgNtZwRkd9guguDGBERumtT3ZhCG7VTBcvukIknsLfk8OXt81FKv2w3vdHZa+g== X-Gm-Gg: AfdE7cmAEepXu149mPP0QGJuR0t9tKuzbyDSSA7CA9qZ4cy+zFUNP6Fzav3ESwtJNEv oLYffmIxBFAVrVT0brcJnP/4xWoZwPvqjexjoI4eqeKyBqTCRZjb1H2DVBa5/nngM7QYFt+F7qu GIGonTA4NsOTmpfLMqJLybwLbJF8sAQ+K4Reezthph+9dwmZqrPtORL5NssF+mX9xTY+PmhHGJr Za7niwt1JGtlyE4UY5HZupYvUNbPGn/2eA/ombDuXnRxhLWKro79umwtMkMSTlnSpOMV33CjRsR R32SjI8xK7HDN3cyDpXwAxCV6f5piFB9b5Aj7PyNtD/+Ib1e0+LBRlHSO5kOjbJCdNoXV+l/C5h MkeBhECsEEWSDN4MakzZbQK1mTjzfGg2bHx6WPLOi29p52caReF2+bPNuvGSCVlXb+oHy/yjpJA wPwfYBq3HHHybEOnLLwWUYOdbMNVSMSsEyzBX4cgSouoqEWVDteNRv4bK2ZoPWoSxpOdKCXs5Gl 0gHnGwW2F+J67rzV5IAWrlhcUowVQeCpKjlOGz3p+v7S9JGKEPZJSIAhyOXsC/jkg== X-Received: by 2002:a17:903:b4f:b0:2c9:9a19:10c with SMTP id d9443c01a7336-2ce9f1867b9mr109279595ad.40.1783985292371; Mon, 13 Jul 2026 16:28:12 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ccc9bdb877sm105340885ad.14.2026.07.13.16.28.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2026 16:28:11 -0700 (PDT) From: Rosen Penev To: linux-gpio@vger.kernel.org Cc: Michael Buesch , Linus Walleij , Bartosz Golaszewski , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt , 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 Message-ID: <20260713232810.1144712-1-rosenp@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 --- 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