From nobody Sat Jul 25 03:20:11 2026 Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) (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 1544F125A0 for ; Mon, 20 Jul 2026 00:10:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784506258; cv=none; b=fvzLRv2ALiBYpYu3LbnTdJlzRrGymsgzdP6cNr8uYYAhFy3+G8sPXghfsrtqyJUbjyKfDn0PfS9aVviKbhDutyLmmbtfoN01lcPCchGfDykB6Bmq9unoFPYfY/7NIPxw5Z93W0jFzRjQKCgyreqidBzYPRhl2BWEwx7H6mPRqIY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784506258; c=relaxed/simple; bh=XTw3AwFb1YcwTYZdYmPrrrNQJb6VvWRBt5MJz4ibYUI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=j/yrHq/Pe88pZRRv93kguY6nR3y2W561yRkjzdaXojMhFemcO2XEbVkppiz8GhcMR6cpGbaJrkZfsLSZYz/jiaf/hcDB0eB4eSPsiNStzYUpRRwStlA+dw+9jT3GXWMX4JruEzaWjbUwswUt6HZsRar/vzmfTuhH+RiODsDM/dE= 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=NM+19RE3; arc=none smtp.client-ip=209.85.215.171 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="NM+19RE3" Received: by mail-pg1-f171.google.com with SMTP id 41be03b00d2f7-c9b373d5af0so7208273a12.2 for ; Sun, 19 Jul 2026 17:10:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784506256; x=1785111056; 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=mcHvPzL38Wp+Wu9dffoXAEVAy0XziQJGzhqz3Hssx80=; b=NM+19RE3kPYhbwVsTK1jpJXCaj0qiWeqyNJSxuwO3xqrgVUYfG7BFQzmtfEY/FlgtD SS/Klh0c6sqlwcbnss52Fg5pgcpg1mqI8IyYvczkvrlA1B6Xy0rjxIw/Z13sOt3F7UI8 mpVbbd80uW/D3pZGKTwKRQENkxy13UIUbMhTVWPoamMW5xzQkmfXJANVKlFoRkYJVaTU MWWqPRE53LRfze78eR0lWV857p3eZjMUN3WNd8xpE9GJNCR/XWGg1iU8KSN2HNSghRR2 AtyzP8uKtFjyKJdHO9YTz77Vg9UlgFK4+hnSWX+HtZApnPPV9Sakv2kSzModMy41sO9Y PUrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784506256; x=1785111056; 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=mcHvPzL38Wp+Wu9dffoXAEVAy0XziQJGzhqz3Hssx80=; b=OzR4RpbxjL48Mu++mPKFU/dHmgNBW/trxoPFW5YWKp41nXQzoBtL6C4vgCItqANDUf t8D+cRT2kPOXFpBzMG8VMRrCLy119akGDbD0Vcz2OSPxiPiHSUCfvX7qMpF19gBgCdjJ Ejb4q2H4lrYR6HA6xtW/pjA42LYomb8wP9fyezOkc6F6/rrrZD/IPBn3ZExnyomHsJhq oHaESUOc+Dm+z6C3yu+6g/nsikLlh0fPs7KLQQ5zdw5mjdxrXuyr2Ja5X9ZneNY3EgmP waXo6VFdVwq3u6lrmK3WjULtpYLrbTZBNUBSn/AcKTg9lw3Aqmws5Y9OHbRM2O+fxAEC 84zw== X-Forwarded-Encrypted: i=1; AHgh+Rr/HZRkzKcy8Fs14CcxRWeqtv18+Uf/ads1YGahMIK9Q7X3uRvE8qa78IBtO1LbtjUSHe0ooiZX5c1QN+s=@vger.kernel.org X-Gm-Message-State: AOJu0YxVPBj6pq2DjthsKAo0S/rWJuOMDiV8KHNJGJRTYcOq06yaH60c XmxVNG9TudcryCctjhbf9RHBjoyZz5+CO5p/7cuqBySihSR+M510c1fc X-Gm-Gg: AfdE7clAPbWz2TO7pAVhqCzOmtGFWnI/VQcAsXe31TpFZ/nYF2o4nBWhGmOThCOxQW3 bJEDmq3AXinxI4JVorWnBPXJppMVCDS63kEQS2SA7Kxs8SpWYbtTnU+nnTY20H4/0FE0UjAgVxv wiKzW0vUKQV83oS9dTwfxxl/zQvF9Fwnf6WoEIfTMoELvm7Eefz8LZku0Q1U5rJ2ATQakghc+Mc a2sjMpI+Q5XRUTATlgW0HdL4BCLETjqGChH/wD3ZQga6MyoFjRTMojFxWj+SNfOPgrq5OCWndNb Qx6nxCKdM+/IYmerWzPz+VG3sbDdCI4sitvt9H3F77LCzsJ2Jw0Lhol+7lrfHac/5i/73bOe9vk aMCAvYLmuBdU5RxTPntkeGFRGo0+Xc17qtvaUJMbqTi/3ictfm8MjCV/A2RdXrLtDhIwoQfpVA1 n7l6bMPsz7OQwK4sNu2zwgXeINYmCfqZotQVaCYBK3nVbsqpjDAmbITbZ6hUaft1W3r1389jbAe J9F7M4+LZYBPLt5YueSSn/XoIYWW2f+E1MxFqWmP7yf+501dtmFMpNM3jtDfu+c1w== X-Received: by 2002:a05:6a21:1404:b0:3c0:fab7:bee0 with SMTP id adf61e73a8af0-3c3ada77847mr12682703637.62.1784506256276; Sun, 19 Jul 2026 17:10:56 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cb517aada63sm3680944a12.3.2026.07.19.17.10.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Jul 2026 17:10:55 -0700 (PDT) From: Rosen Penev To: linux-sound@vger.kernel.org Cc: Vijendar Mukunda , Venkata Prasad Potturu , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , linux-kernel@vger.kernel.org (open list) Subject: [PATCH] ASoC: amd: acp: Use pcim_iomap_region() in acp-pci Date: Sun, 19 Jul 2026 17:10:54 -0700 Message-ID: <20260720001054.1439409-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: quoted-printable Content-Type: text/plain; charset="utf-8" Convert acp-pci to the pcim-managed PCI life-cycle. Replace pci_enable_device() with pcim_enable_device() and fold the open-coded pci_request_regions() + devm_ioremap() pair into a single pcim_iomap_region() call for BAR0, which reserves and iomaps the register window. This lets the driver drop the manual pci_release_regions() and pci_disable_device() calls from the probe error path; pcim releases the device and region automatically on detach or probe failure. The error check moves from a NULL test to IS_ERR(), since pcim_iomap_region() returns an IOMEM_ERR_PTR on failure. The child platform devices only use devm_ioremap() on their sub-range of BAR0 (no request_mem_region), so reserving the full BAR0 here does not conflict with them. Assisted-by: opencode:hy3-free Signed-off-by: Rosen Penev --- sound/soc/amd/acp/acp-pci.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index f83708755ed1..98771323eace 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -118,17 +118,10 @@ static int acp_pci_probe(struct pci_dev *pci, const s= truct pci_device_id *pci_id if (!chip) return -ENOMEM; =20 - if (pci_enable_device(pci)) + if (pcim_enable_device(pci)) return dev_err_probe(&pci->dev, -ENODEV, "pci_enable_device failed\n"); =20 - ret =3D pci_request_regions(pci, "AMD ACP3x audio"); - if (ret < 0) { - dev_err(&pci->dev, "pci_request_regions failed\n"); - ret =3D -ENOMEM; - goto disable_pci; - } - pci_set_master(pci); =20 chip->acp_rev =3D pci->revision; @@ -161,24 +154,21 @@ static int acp_pci_probe(struct pci_dev *pci, const s= truct pci_device_id *pci_id break; default: dev_err(dev, "Unsupported device revision:0x%x\n", pci->revision); - ret =3D -EINVAL; - goto release_regions; + return -EINVAL; } chip->flag =3D flag; =20 addr =3D pci_resource_start(pci, 0); - chip->base =3D devm_ioremap(&pci->dev, addr, pci_resource_len(pci, 0)); - if (!chip->base) { - ret =3D -ENOMEM; - goto release_regions; - } + chip->base =3D pcim_iomap_region(pci, 0, "AMD ACP3x audio"); + if (IS_ERR(chip->base)) + return PTR_ERR(chip->base); =20 chip->addr =3D addr; =20 chip->acp_hw_ops_init(chip); ret =3D acp_hw_init(chip); if (ret) - goto release_regions; + goto de_init; =20 ret =3D devm_request_irq(dev, pci->irq, irq_handler, IRQF_SHARED, "ACP_I2S_IRQ", chip); @@ -214,10 +204,6 @@ static int acp_pci_probe(struct pci_dev *pci, const st= ruct pci_device_id *pci_id =20 de_init: acp_hw_deinit(chip); -release_regions: - pci_release_regions(pci); -disable_pci: - pci_disable_device(pci); =20 return ret; }; --=20 2.55.0