From patchwork Mon Feb 17 23:17:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 13978775 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 950901AE01C; Mon, 17 Feb 2025 23:18:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834283; cv=none; b=BYxkVbd7uDs/B286EPqmLt7R75XJuyBXmNjUIRtGN1TTBoHdaideVnVbb4fZT4zYXyiu+xyqOQ+HrXtPKQaWV9kAPgaPT7NByLlhiGu7Iu2yrhWYvo15TodBDN81b4Hx1syJvK6Oq/iPva90PShttg/yEXZesSpsm9/v0XayYNQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834283; c=relaxed/simple; bh=euxvD6yIxhjBOEu1HF06JzVE8wLldDYNfDpJHlqO/58=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Bo6O98z0GrGo/veKhCF1NzwH/JCjuTP/+BeM3JXv9x+Ict9943JmUjAy4nvHR0COCKNhTQ2XN+rWuEjOQlKSPSDQ0lVKAzBl6MHbjCF7VE2OEBZ9e2UvHM9XMklUQwpaj05k11RyYYSQ+o72VjIFX0UG6noUmgHSe49pHRZJiUY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hVjsIu+Z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hVjsIu+Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id A1E4AC4CEE8; Mon, 17 Feb 2025 23:18:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739834283; bh=euxvD6yIxhjBOEu1HF06JzVE8wLldDYNfDpJHlqO/58=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=hVjsIu+ZThFc1+tad0AKiQVaRUAKG6+ePgdobuBw5FGsE55GBVCZJHeT43N8eERaY OEafDR7c3o9p4eT/4z4s9xdOK6APLO+t6ljLEbATgoP43Mo8CF0iAiW4F3g/qcpiR1 sT2v8OOt3G/e8wTWnlvv9fOCHxDc7lM+jjE4LZY9y9mB4NV5XNuZXbuxMPBl3Y3OoV zvgods4PpId6LAKHqEqUx5XE8gGSjXz9p5T8JVye6Wwi0oQg+21f6fHrpXrly95HXD 1tj1piKxYE9pYbva0dOClP6RPgP8F6bT5LpBJpfRt99C17LYpzJeZ3lZJBg08QqqJa 5BtTyAki+T0Zg== From: Mario Limonciello To: Yazen Ghannam , Borislav Petkov , Mark Brown Cc: Mario Limonciello , Thomas Gleixner , Dave Hansen , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), "H . Peter Anvin" , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Daniel Baluta , Kai Vehmanen , Pierre-Louis Bossart , Vijendar Mukunda , Peter Zijlstra , Jeff Johnson , Venkata Prasad Potturu , =?utf-8?q?Uwe_Klein?= =?utf-8?q?e-K=C3=B6nig?= , Arnd Bergmann , Cristian Ciocaltea , Krzysztof Kozlowski , linux-kernel@vger.kernel.org (open list:AMD NODE DRIVER), linux-sound@vger.kernel.org (open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...), sound-open-firmware@alsa-project.org (moderated list:SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS) Subject: [PATCH 1/7] x86/amd_node: Add a helper for use with `read_poll_timeout` Date: Mon, 17 Feb 2025 17:17:41 -0600 Message-ID: <20250217231747.1656228-2-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250217231747.1656228-1-superm1@kernel.org> References: <20250217231747.1656228-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Mario Limonciello Some of the ACP drivers will poll registers through SMN using `read_poll_timeout` which requires returning the result of the register read as the argument. Add a helper to do just that. Tested by: Venkata Prasad Potturu Signed-off-by: Mario Limonciello --- arch/x86/include/asm/amd_node.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/x86/include/asm/amd_node.h b/arch/x86/include/asm/amd_node.h index 113ad3e8ee40a..9f3f613366f7d 100644 --- a/arch/x86/include/asm/amd_node.h +++ b/arch/x86/include/asm/amd_node.h @@ -33,4 +33,15 @@ static inline u16 amd_num_nodes(void) int __must_check amd_smn_read(u16 node, u32 address, u32 *value); int __must_check amd_smn_write(u16 node, u32 address, u32 value); +/* helper for use with read_poll_timeout */ +static inline int smn_read_register(u32 reg) +{ + int data, rc; + + rc = amd_smn_read(0, reg, &data); + if (rc) + return rc; + + return data; +} #endif /*_ASM_X86_AMD_NODE_H_*/ From patchwork Mon Feb 17 23:17:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 13978776 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3145D1AE01C; Mon, 17 Feb 2025 23:18:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834287; cv=none; b=UoPzUlrmmF6Iha04kq3GBBJiWg53OWpVZmL7tohIKIh+4uybcMrGlIzrLuPWodqR4nSlpSTCqYBRfBChogfZ9Wy05kUfSOJeRHa/3CgGW6lx1tqTC4C1dvPtHGteWcuwYWsCfrxJLAnk36JqCdUD7nhXFE28SlDMsQ3AKgZHtTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834287; c=relaxed/simple; bh=J4+qBi6Z3BTv/cG5EqfyHKOUwMClU9CQQwCsGOkKg7k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pRyG2cwtP46yYXaIVpzEkkat0WaJJnO5r0JWly1omYfyab/DmEhFp+x3XOzFn7r1nT53sp9T+BYteSN4XJcJiwyDkG9rkEmlSiCqc55BKNlenwmfj6s85JLh7TZsuqkh9wVEAPcD6xjCAjOUBIV/JXL1skGgJkLphOnL6EgGx+8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Vg/kiVR4; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Vg/kiVR4" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B4F5C4CEEA; Mon, 17 Feb 2025 23:18:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739834285; bh=J4+qBi6Z3BTv/cG5EqfyHKOUwMClU9CQQwCsGOkKg7k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Vg/kiVR4cirr0hG5Z3UC/RQmY1oV3otn/8fYbf9TGFiab/sskM5P/hdKn5O373cne c8Tj2iXvteu/upyy8zK3tBZNNwxKMgPow1cwPYdp9P6dRaMMN+2B2cDSXM5UPng1Xp HCVwnOJenm0yIwxwFy5wy9/aELrHhPRiife265IXl5moD6sSx1zYgf8MgKeoWJqHcY wRRYtWMDChGcCX1i4kNTuPjqgP6UT+ablSW5eiUz9hg5c4xmM/cA3EQRs6gXs0QQXz vHpaq1vM4Oy1tX1T5dbJGItS6pWuVred9seoT3UmLAng1CTLMuC2rT0x3UulAje6Dx Z7T3BL7i0BOOg== From: Mario Limonciello To: Yazen Ghannam , Borislav Petkov , Mark Brown Cc: Mario Limonciello , Thomas Gleixner , Dave Hansen , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), "H . Peter Anvin" , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Daniel Baluta , Kai Vehmanen , Pierre-Louis Bossart , Vijendar Mukunda , Peter Zijlstra , Jeff Johnson , Venkata Prasad Potturu , =?utf-8?q?Uwe_Klein?= =?utf-8?q?e-K=C3=B6nig?= , Arnd Bergmann , Cristian Ciocaltea , Krzysztof Kozlowski , linux-kernel@vger.kernel.org (open list:AMD NODE DRIVER), linux-sound@vger.kernel.org (open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...), sound-open-firmware@alsa-project.org (moderated list:SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS) Subject: [PATCH 2/7] ASoC: amd: acp: rembrandt: Use AMD_NODE Date: Mon, 17 Feb 2025 17:17:42 -0600 Message-ID: <20250217231747.1656228-3-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250217231747.1656228-1-superm1@kernel.org> References: <20250217231747.1656228-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Mario Limonciello All consumers of SMN in the kernel should be doing it through the functions provided by AMD_NODE. Stop using the local SMN read/write symbols and switch to the AMD_NODE provided ones. Tested by: Venkata Prasad Potturu Signed-off-by: Mario Limonciello --- sound/soc/amd/acp/Kconfig | 1 + sound/soc/amd/acp/acp-rembrandt.c | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/sound/soc/amd/acp/Kconfig b/sound/soc/amd/acp/Kconfig index 53793ec7c7b49..2bb78a748c79d 100644 --- a/sound/soc/amd/acp/Kconfig +++ b/sound/soc/amd/acp/Kconfig @@ -58,6 +58,7 @@ config SND_AMD_ASOC_REMBRANDT select SND_SOC_AMD_ACP_I2S select SND_SOC_AMD_ACP_PDM select SND_SOC_AMD_ACP_LEGACY_COMMON + depends on AMD_NODE depends on X86 && PCI help This option enables Rembrandt I2S support on AMD platform. diff --git a/sound/soc/amd/acp/acp-rembrandt.c b/sound/soc/amd/acp/acp-rembrandt.c index 2648256fa129c..e727754a8231c 100644 --- a/sound/soc/amd/acp/acp-rembrandt.c +++ b/sound/soc/amd/acp/acp-rembrandt.c @@ -22,6 +22,8 @@ #include #include +#include + #include "amd.h" #include "../mach-config.h" #include "acp-mach.h" @@ -31,7 +33,6 @@ #define MP1_C2PMSG_69 0x3B10A14 #define MP1_C2PMSG_85 0x3B10A54 #define MP1_C2PMSG_93 0x3B10A74 -#define HOST_BRIDGE_ID 0x14B5 static struct acp_resource rsrc = { .offset = 0, @@ -166,21 +167,20 @@ static struct snd_soc_dai_driver acp_rmb_dai[] = { static int acp6x_master_clock_generate(struct device *dev) { - int data = 0; - struct pci_dev *smn_dev; + int data, rc; - smn_dev = pci_get_device(PCI_VENDOR_ID_AMD, HOST_BRIDGE_ID, NULL); - if (!smn_dev) { - dev_err(dev, "Failed to get host bridge device\n"); - return -ENODEV; - } + rc = amd_smn_write(0, MP1_C2PMSG_93, 0); + if (rc) + return rc; + rc = amd_smn_write(0, MP1_C2PMSG_85, 0xC4); + if (rc) + return rc; + rc = amd_smn_write(0, MP1_C2PMSG_69, 0x4); + if (rc) + return rc; - smn_write(smn_dev, MP1_C2PMSG_93, 0); - smn_write(smn_dev, MP1_C2PMSG_85, 0xC4); - smn_write(smn_dev, MP1_C2PMSG_69, 0x4); - read_poll_timeout(smn_read, data, data, DELAY_US, - ACP_TIMEOUT, false, smn_dev, MP1_C2PMSG_93); - return 0; + return read_poll_timeout(smn_read_register, data, data > 0, DELAY_US, + ACP_TIMEOUT, false, MP1_C2PMSG_93); } static int rembrandt_audio_probe(struct platform_device *pdev) From patchwork Mon Feb 17 23:17:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 13978777 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6CA6E1AAA1F; Mon, 17 Feb 2025 23:18:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834288; cv=none; b=T/y4yUB2V4rrUMpyv8F2f9HCEqar99E12cU3KroxybqmpVDkuakhuWcLPqG01bKLsFSa/7lL4DNLeChRD2Wvn6n2aBUg/nx17xJD3X9rYOqhn7SvV/icUJ0NMSvclojqBiPOZy86y09hOuC7HsIWESERSvrJc0+Kgvxbcz8DAVc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834288; c=relaxed/simple; bh=WxRSXlQocu9WEzHt6sN6+QF8YyFOo9r+uyTx4yS5Alw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=seL6p2i6Y29K+mp08KoqzWBoRuus8XNfxi01+i0SuKONShMXfkWRzGqaGnfgUsobTq7WEeD2l28fOVRvnGer8bbotnUCMVsfdqxMypQ2wBCUPo9I1oM8nZL27xHvW+3sQFK0qXf7TmjkJox4uYeZRtMw80oqfXh509ERCvQeuro= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LCWn+Si1; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LCWn+Si1" Received: by smtp.kernel.org (Postfix) with ESMTPSA id E338CC4CEE7; Mon, 17 Feb 2025 23:18:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739834288; bh=WxRSXlQocu9WEzHt6sN6+QF8YyFOo9r+uyTx4yS5Alw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LCWn+Si1DTDRrON1vZbmLnviLwEBMhhyhhsVMLLaRFIWy0QPoljsJqRqcgjZEGPyd LLBh7DtcBHK6A5pRmLj4yO5T9vP1doLWq5bKY22Hfty8selMz5+gFP5EN6xslrAzSL nt52y2PSZ5PCMOJ138kfMwajxECOQCbSnD5u83m42NxiwCFWw2JFI32MpW8oSzRdiA CGFhNTu7qYDUtdc0zhK1preI5f9WNhbFho0oIzpyKd7r9ukuYmLZhoiObbTW5QRnsF 1DNbcsWsqTUQjurHPaY1Tdyh1u63BMY4it6+P4c3IXXDJpCLnr2tsOoAS7ZwQ0lPTP 5JgTZ0bXyJe+Q== From: Mario Limonciello To: Yazen Ghannam , Borislav Petkov , Mark Brown Cc: Mario Limonciello , Thomas Gleixner , Dave Hansen , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), "H . Peter Anvin" , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Daniel Baluta , Kai Vehmanen , Pierre-Louis Bossart , Vijendar Mukunda , Peter Zijlstra , Jeff Johnson , Venkata Prasad Potturu , =?utf-8?q?Uwe_Klein?= =?utf-8?q?e-K=C3=B6nig?= , Arnd Bergmann , Cristian Ciocaltea , Krzysztof Kozlowski , linux-kernel@vger.kernel.org (open list:AMD NODE DRIVER), linux-sound@vger.kernel.org (open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...), sound-open-firmware@alsa-project.org (moderated list:SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS) Subject: [PATCH 3/7] ASoC: amd: acp: acp70: Use AMD_NODE Date: Mon, 17 Feb 2025 17:17:43 -0600 Message-ID: <20250217231747.1656228-4-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250217231747.1656228-1-superm1@kernel.org> References: <20250217231747.1656228-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Mario Limonciello All consumers of SMN in the kernel should be doing it through the functions provided by AMD_NODE. Stop using the local SMN read/write symbols and switch to the AMD_NODE provided ones. Tested by: Venkata Prasad Potturu Signed-off-by: Mario Limonciello --- sound/soc/amd/acp/Kconfig | 1 + sound/soc/amd/acp/acp70.c | 28 ++++------------------------ sound/soc/sof/amd/pci-acp70.c | 1 - 3 files changed, 5 insertions(+), 25 deletions(-) diff --git a/sound/soc/amd/acp/Kconfig b/sound/soc/amd/acp/Kconfig index 2bb78a748c79d..a649f49864059 100644 --- a/sound/soc/amd/acp/Kconfig +++ b/sound/soc/amd/acp/Kconfig @@ -82,6 +82,7 @@ config SND_AMD_ASOC_ACP70 tristate "AMD ACP ASOC Acp7.0 Support" depends on X86 && PCI depends on ACPI + depends on AMD_NODE select SND_SOC_AMD_ACP_PCM select SND_SOC_AMD_ACP_I2S select SND_SOC_AMD_ACP_PDM diff --git a/sound/soc/amd/acp/acp70.c b/sound/soc/amd/acp/acp70.c index 9e23729fd1a71..ef3f6504bc7f5 100644 --- a/sound/soc/amd/acp/acp70.c +++ b/sound/soc/amd/acp/acp70.c @@ -23,6 +23,8 @@ #include "amd.h" #include "acp-mach.h" +#include + #define DRV_NAME "acp_asoc_acp70" #define CLK7_CLK0_DFS_CNTL_N1 0X0006C1A4 @@ -137,29 +139,6 @@ static struct snd_soc_dai_driver acp70_dai[] = { }, }; -static int acp70_i2s_master_clock_generate(struct acp_dev_data *adata) -{ - struct pci_dev *smn_dev; - u32 device_id; - - if (adata->acp_rev == ACP70_PCI_ID) - device_id = 0x1507; - else if (adata->acp_rev == ACP71_PCI_ID) - device_id = 0x1122; - else - return -ENODEV; - - smn_dev = pci_get_device(PCI_VENDOR_ID_AMD, device_id, NULL); - - if (!smn_dev) - return -ENODEV; - - /* Set clk7 DFS clock divider register value to get mclk as 196.608MHz*/ - smn_write(smn_dev, CLK7_CLK0_DFS_CNTL_N1, CLK0_DIVIDER); - - return 0; -} - static int acp_acp70_audio_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -215,7 +194,8 @@ static int acp_acp70_audio_probe(struct platform_device *pdev) dev_set_drvdata(dev, adata); - ret = acp70_i2s_master_clock_generate(adata); + /* Set clk7 DFS clock divider register value to get mclk as 196.608MHz*/ + ret = amd_smn_write(0, CLK7_CLK0_DFS_CNTL_N1, CLK0_DIVIDER); if (ret) { dev_err(&pdev->dev, "Failed to set I2S master clock as 196.608MHz\n"); return ret; diff --git a/sound/soc/sof/amd/pci-acp70.c b/sound/soc/sof/amd/pci-acp70.c index 3647ec992e95f..d886bdf3a1128 100644 --- a/sound/soc/sof/amd/pci-acp70.c +++ b/sound/soc/sof/amd/pci-acp70.c @@ -28,7 +28,6 @@ #define ACP70_REG_END 0x125C000 static const struct sof_amd_acp_desc acp70_chip_info = { - .host_bridge_id = HOST_BRIDGE_ACP70, .pgfsm_base = ACP70_PGFSM_BASE, .ext_intr_enb = ACP70_EXTERNAL_INTR_ENB, .ext_intr_cntl = ACP70_EXTERNAL_INTR_CNTL, From patchwork Mon Feb 17 23:17:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 13978778 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 660761ACEDB; Mon, 17 Feb 2025 23:18:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834291; cv=none; b=c3pnDSifRJqnDrWvrd0U9PdmRSjWeHPmzUWG1sTDOANaL3BJkWzcYxTo79Y+YigETVswjfiC6cAUsi+nM4A6tpObahIbn2WTGalM4wzcD2DWJ89mPZ9v5oGybXslFUA+T9jfgcTGxNgzBVPFDWVTDpCbZEjcX3iV7DATiZi0+K4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834291; c=relaxed/simple; bh=sUIu2FaiR2xdtVemSdyik2qyFvzuB7tdiosak35TN5w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bC4GUD2hNSdht8bWKf2CxKBIDrwq8WevqT+A31KhE9UJZj13QKWXxBycraFjUT+HQfHXyXq3ZHEm5d7C0LuIOjbMhJFkf59nCcDhjfM83y8whZuB6W6q1UHGEr9bkpgxH4o+TIh8UWhJVH/L7mOlV5wP/feckO6of2laZxepTAI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=C+kwcMom; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="C+kwcMom" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8E308C4CEE4; Mon, 17 Feb 2025 23:18:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739834290; bh=sUIu2FaiR2xdtVemSdyik2qyFvzuB7tdiosak35TN5w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C+kwcMomu9MCpqiVpjK9KqTAs3ws3UUOyClWn/PfZgAuTwPbiPxmDV0fbP5WTZJ4g 9AEIwKt+MdrzOmt7CdEiTTybQZ1++2ILbqeqJT1zprAG16xMH7yeWoNr92uWdqlq1Y QdNDLpeam6VLF+lu7tXCYUvPO5CssLAYUWQqIYRm10BZhdzP/iSCLM1LDEa3nFR3k0 CYrgyMZBps8Bq3kI8Xe2XW43dcc2MzNUztb/J8Oy/GGYQ5adTv7++kdN9jETcauAZr solrAS02D0/NgHNwfpS0tbEB/Ml4KgMI7auK5QYvCqMzyN5cQhL0jHxm65Z4om8GF4 JA+o9hmrM/wrw== From: Mario Limonciello To: Yazen Ghannam , Borislav Petkov , Mark Brown Cc: Mario Limonciello , Thomas Gleixner , Dave Hansen , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), "H . Peter Anvin" , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Daniel Baluta , Kai Vehmanen , Pierre-Louis Bossart , Vijendar Mukunda , Peter Zijlstra , Jeff Johnson , Venkata Prasad Potturu , =?utf-8?q?Uwe_Klein?= =?utf-8?q?e-K=C3=B6nig?= , Arnd Bergmann , Cristian Ciocaltea , Krzysztof Kozlowski , linux-kernel@vger.kernel.org (open list:AMD NODE DRIVER), linux-sound@vger.kernel.org (open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...), sound-open-firmware@alsa-project.org (moderated list:SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS) Subject: [PATCH 4/7] ASoC: amd: acp: acp63: Use AMD_NODE Date: Mon, 17 Feb 2025 17:17:44 -0600 Message-ID: <20250217231747.1656228-5-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250217231747.1656228-1-superm1@kernel.org> References: <20250217231747.1656228-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Mario Limonciello All consumers of SMN in the kernel should be doing it through the functions provided by AMD_NODE. Stop using the local SMN read/write symbols and switch to the AMD_NODE provided ones. Tested by: Venkata Prasad Potturu Signed-off-by: Mario Limonciello --- sound/soc/amd/acp/Kconfig | 1 + sound/soc/amd/acp/acp63.c | 63 +++++++++++++++++++++++------------ sound/soc/sof/amd/pci-acp63.c | 1 - 3 files changed, 42 insertions(+), 23 deletions(-) diff --git a/sound/soc/amd/acp/Kconfig b/sound/soc/amd/acp/Kconfig index a649f49864059..157c124570c88 100644 --- a/sound/soc/amd/acp/Kconfig +++ b/sound/soc/amd/acp/Kconfig @@ -69,6 +69,7 @@ config SND_AMD_ASOC_ACP63 tristate "AMD ACP ASOC ACP6.3 Support" depends on X86 && PCI depends on ACPI + depends on AMD_NODE select SND_SOC_AMD_ACP_PCM select SND_SOC_AMD_ACP_I2S select SND_SOC_AMD_ACP_PDM diff --git a/sound/soc/amd/acp/acp63.c b/sound/soc/amd/acp/acp63.c index 81496e713440b..4187a8968de75 100644 --- a/sound/soc/amd/acp/acp63.c +++ b/sound/soc/amd/acp/acp63.c @@ -20,6 +20,9 @@ #include #include #include + +#include + #include "amd.h" #include "acp-mach.h" #include "../mach-config.h" @@ -160,37 +163,53 @@ static struct snd_soc_dai_driver acp63_dai[] = { static int acp63_i2s_master_clock_generate(struct acp_dev_data *adata) { + int rc; u32 data; union clk_pll_req_no clk_pll; - struct pci_dev *smn_dev; - - smn_dev = pci_get_device(PCI_VENDOR_ID_AMD, 0x14E8, NULL); - if (!smn_dev) - return -ENODEV; /* Clk5 pll register values to get mclk as 196.6MHz*/ clk_pll.bits.fb_mult_int = 0x31; clk_pll.bits.pll_spine_div = 0; clk_pll.bits.gb_mult_frac = 0x26E9; - data = smn_read(smn_dev, CLK_PLL_PWR_REQ_N0); - smn_write(smn_dev, CLK_PLL_PWR_REQ_N0, data | PLL_AUTO_STOP_REQ); - - data = smn_read(smn_dev, CLK_SPLL_FIELD_2_N0); - if (data & PLL_FRANCE_EN) - smn_write(smn_dev, CLK_SPLL_FIELD_2_N0, data | PLL_FRANCE_EN); - - smn_write(smn_dev, CLK_PLL_REQ_N0, clk_pll.clk_pll_req_no_reg); - - data = smn_read(smn_dev, CLK_PLL_PWR_REQ_N0); - smn_write(smn_dev, CLK_PLL_PWR_REQ_N0, data | PLL_AUTO_START_REQ); - - data = smn_read(smn_dev, CLK_DFSBYPASS_CONTR); - smn_write(smn_dev, CLK_DFSBYPASS_CONTR, data | EXIT_DPF_BYPASS_0); - smn_write(smn_dev, CLK_DFSBYPASS_CONTR, data | EXIT_DPF_BYPASS_1); + rc = amd_smn_read(0, CLK_PLL_PWR_REQ_N0, &data); + if (rc) + return rc; + rc = amd_smn_write(0, CLK_PLL_PWR_REQ_N0, data | PLL_AUTO_STOP_REQ); + if (rc) + return rc; + + rc = amd_smn_read(0, CLK_SPLL_FIELD_2_N0, &data); + if (rc) + return rc; + if (data & PLL_FRANCE_EN) { + rc = amd_smn_write(0, CLK_SPLL_FIELD_2_N0, data | PLL_FRANCE_EN); + if (rc) + return rc; + } - smn_write(smn_dev, CLK_DFS_CNTL_N0, CLK0_DIVIDER); - return 0; + rc = amd_smn_write(0, CLK_PLL_REQ_N0, clk_pll.clk_pll_req_no_reg); + if (rc) + return rc; + + rc = amd_smn_read(0, CLK_PLL_PWR_REQ_N0, &data); + if (rc) + return rc; + rc = amd_smn_write(0, CLK_PLL_PWR_REQ_N0, data | PLL_AUTO_START_REQ); + if (rc) + return rc; + + rc = amd_smn_read(0, CLK_DFSBYPASS_CONTR, &data); + if (rc) + return rc; + rc = amd_smn_write(0, CLK_DFSBYPASS_CONTR, data | EXIT_DPF_BYPASS_0); + if (rc) + return rc; + rc = amd_smn_write(0, CLK_DFSBYPASS_CONTR, data | EXIT_DPF_BYPASS_1); + if (rc) + return rc; + + return amd_smn_write(0, CLK_DFS_CNTL_N0, CLK0_DIVIDER); } static int acp63_audio_probe(struct platform_device *pdev) diff --git a/sound/soc/sof/amd/pci-acp63.c b/sound/soc/sof/amd/pci-acp63.c index ffe7c755d655e..13aa87cdeeac3 100644 --- a/sound/soc/sof/amd/pci-acp63.c +++ b/sound/soc/sof/amd/pci-acp63.c @@ -28,7 +28,6 @@ #define ACP6x_REG_END 0x125C000 static const struct sof_amd_acp_desc acp63_chip_info = { - .host_bridge_id = HOST_BRIDGE_ACP63, .pgfsm_base = ACP6X_PGFSM_BASE, .ext_intr_enb = ACP6X_EXTERNAL_INTR_ENB, .ext_intr_cntl = ACP6X_EXTERNAL_INTR_CNTL, From patchwork Mon Feb 17 23:17:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 13978779 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A1E3E1B4121; Mon, 17 Feb 2025 23:18:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834293; cv=none; b=ehrZ0f17oFW9+SklS3ak+g7u0RAV9jPGNIALv1NKN4mGMPH2qs3jWYznioFPc/zEc93jMh6N3H7eMJ/0KlE9thQX7qZCQZmtoNBAWOuKjdEi+bRCVhxt9JRF0McOpnhDcE2/ratg0IZe9qDuVQ4olvIZ3QYcmjnfAJo84gQVyds= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834293; c=relaxed/simple; bh=hf3KmRzay8I25VUNi5mF4wnWXDOqaDqXyiDeTP4rF3g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ubf5BFVRCTQXQc4yDqpotmnJn3CcNBnSFtjqFMu1NSoyyVWLp5XPnrZyFLlGACf1LShAzm3ozXDHJ9lI9b4EWrok07RDdJYUUJ62BvXgOL9TPyKgEnHhu+44GFSh4NnMxifEGXw8Q5qTQUWaUZ9sDxWy70hmwAc1CxqCnhz09p4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ht4rA+oO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ht4rA+oO" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2E9E2C4CEE7; Mon, 17 Feb 2025 23:18:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739834293; bh=hf3KmRzay8I25VUNi5mF4wnWXDOqaDqXyiDeTP4rF3g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ht4rA+oOF4hiM0AMblWvwR+3DJZcYEwnr02ht2XC3QX/QHe6KEe2ZlTtIBSdj3Tal MI4ecPkv27vASX/2G/qzRBOwjrT/fqwcpY4iqlqh4sbI5ig4zGEZL+WRySS9QulwAZ FsvfO0DD3kfkONfWjDYblvkzcvDLuu1DwDo7We7p2OivK3chHIIk5sdJO0n/NKZ3iG jztKYA8BC/JKA/+mwcf8ViL/5PfBdIfE+veCydDbvFeDZHHXbaCPN3BPSgnQjhLspL dGM4xZ/uSF1c6HdV6/yE/OltiSNx48Hm+n/Lagd2n76EfeD9VLv5GhAQ9UN+lmDo8d KK4wMTPb3Em6Q== From: Mario Limonciello To: Yazen Ghannam , Borislav Petkov , Mark Brown Cc: Mario Limonciello , Thomas Gleixner , Dave Hansen , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), "H . Peter Anvin" , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Daniel Baluta , Kai Vehmanen , Pierre-Louis Bossart , Vijendar Mukunda , Peter Zijlstra , Jeff Johnson , Venkata Prasad Potturu , =?utf-8?q?Uwe_Klein?= =?utf-8?q?e-K=C3=B6nig?= , Arnd Bergmann , Cristian Ciocaltea , Krzysztof Kozlowski , linux-kernel@vger.kernel.org (open list:AMD NODE DRIVER), linux-sound@vger.kernel.org (open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...), sound-open-firmware@alsa-project.org (moderated list:SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS) Subject: [PATCH 5/7] ASoC: SOF: amd: Use AMD_NODE Date: Mon, 17 Feb 2025 17:17:45 -0600 Message-ID: <20250217231747.1656228-6-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250217231747.1656228-1-superm1@kernel.org> References: <20250217231747.1656228-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Mario Limonciello All consumers of SMN in the kernel should be doing it through the functions provided by AMD_NODE. Stop using the local SMN read/write symbols and switch to the AMD_NODE provided ones. Tested by: Venkata Prasad Potturu Signed-off-by: Mario Limonciello --- sound/soc/sof/amd/Kconfig | 1 + sound/soc/sof/amd/acp.c | 56 ++++++++++----------------------- sound/soc/sof/amd/acp.h | 1 - sound/soc/sof/amd/pci-rmb.c | 1 - sound/soc/sof/amd/pci-rn.c | 1 - sound/soc/sof/amd/pci-vangogh.c | 1 - 6 files changed, 17 insertions(+), 44 deletions(-) diff --git a/sound/soc/sof/amd/Kconfig b/sound/soc/sof/amd/Kconfig index f4cafe8010178..28216c8c1cf97 100644 --- a/sound/soc/sof/amd/Kconfig +++ b/sound/soc/sof/amd/Kconfig @@ -25,6 +25,7 @@ config SND_SOC_SOF_AMD_COMMON select SND_SOC_SOF_ACP_PROBES select SND_SOC_ACPI_AMD_MATCH select SND_SOC_ACPI if ACPI + depends on AMD_NODE help This option is not user-selectable but automatically handled by 'select' statements at a higher level diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index 9e13c96528be3..7c6d647fa253b 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -16,6 +16,8 @@ #include #include +#include + #include "../ops.h" #include "acp.h" #include "acp-dsp-offset.h" @@ -43,24 +45,6 @@ const struct dmi_system_id acp_sof_quirk_table[] = { }; EXPORT_SYMBOL_GPL(acp_sof_quirk_table); -static int smn_write(struct pci_dev *dev, u32 smn_addr, u32 data) -{ - pci_write_config_dword(dev, 0x60, smn_addr); - pci_write_config_dword(dev, 0x64, data); - - return 0; -} - -static int smn_read(struct pci_dev *dev, u32 smn_addr) -{ - u32 data = 0; - - pci_write_config_dword(dev, 0x60, smn_addr); - pci_read_config_dword(dev, 0x64, &data); - - return data; -} - static void init_dma_descriptor(struct acp_dev_data *adata) { struct snd_sof_dev *sdev = adata->dev; @@ -209,11 +193,11 @@ int configure_and_run_dma(struct acp_dev_data *adata, unsigned int src_addr, static int psp_mbox_ready(struct acp_dev_data *adata, bool ack) { struct snd_sof_dev *sdev = adata->dev; - int ret; - u32 data; + int ret, data; + + ret = read_poll_timeout(smn_read_register, data, data > 0 && data & MBOX_READY_MASK, + MBOX_DELAY_US, ACP_PSP_TIMEOUT_US, false, MP0_C2PMSG_114_REG); - ret = read_poll_timeout(smn_read, data, data & MBOX_READY_MASK, MBOX_DELAY_US, - ACP_PSP_TIMEOUT_US, false, adata->smn_dev, MP0_C2PMSG_114_REG); if (!ret) return 0; @@ -241,8 +225,8 @@ static int psp_send_cmd(struct acp_dev_data *adata, int cmd) return -EINVAL; /* Get a non-zero Doorbell value from PSP */ - ret = read_poll_timeout(smn_read, data, data, MBOX_DELAY_US, ACP_PSP_TIMEOUT_US, false, - adata->smn_dev, MP0_C2PMSG_73_REG); + ret = read_poll_timeout(smn_read_register, data, data > 0, MBOX_DELAY_US, + ACP_PSP_TIMEOUT_US, false, MP0_C2PMSG_73_REG); if (ret) { dev_err(sdev->dev, "Failed to get Doorbell from MBOX %x\n", MP0_C2PMSG_73_REG); @@ -254,10 +238,14 @@ static int psp_send_cmd(struct acp_dev_data *adata, int cmd) if (ret) return ret; - smn_write(adata->smn_dev, MP0_C2PMSG_114_REG, cmd); + ret = amd_smn_write(0, MP0_C2PMSG_114_REG, cmd); + if (ret) + return ret; /* Ring the Doorbell for PSP */ - smn_write(adata->smn_dev, MP0_C2PMSG_73_REG, data); + ret = amd_smn_write(0, MP0_C2PMSG_73_REG, data); + if (ret) + return ret; /* Check MBOX ready as PSP ack */ ret = psp_mbox_ready(adata, 1); @@ -771,16 +759,10 @@ int amd_sof_acp_probe(struct snd_sof_dev *sdev) adata->pci_rev = pci->revision; mutex_init(&adata->acp_lock); sdev->pdata->hw_pdata = adata; - adata->smn_dev = pci_get_device(PCI_VENDOR_ID_AMD, chip->host_bridge_id, NULL); - if (!adata->smn_dev) { - dev_err(sdev->dev, "Failed to get host bridge device\n"); - ret = -ENODEV; - goto unregister_dev; - } ret = acp_init(sdev); if (ret < 0) - goto free_smn_dev; + goto unregister_dev; sdev->ipc_irq = pci->irq; ret = request_threaded_irq(sdev->ipc_irq, acp_irq_handler, acp_irq_thread, @@ -788,7 +770,7 @@ int amd_sof_acp_probe(struct snd_sof_dev *sdev) if (ret < 0) { dev_err(sdev->dev, "failed to register IRQ %d\n", sdev->ipc_irq); - goto free_smn_dev; + goto unregister_dev; } /* scan SoundWire capabilities exposed by DSDT */ @@ -801,7 +783,6 @@ int amd_sof_acp_probe(struct snd_sof_dev *sdev) if (ret < 0) { dev_err(sdev->dev, "error: SoundWire probe error\n"); free_irq(sdev->ipc_irq, sdev); - pci_dev_put(adata->smn_dev); return ret; } @@ -847,8 +828,6 @@ int amd_sof_acp_probe(struct snd_sof_dev *sdev) free_ipc_irq: free_irq(sdev->ipc_irq, sdev); -free_smn_dev: - pci_dev_put(adata->smn_dev); unregister_dev: platform_device_unregister(adata->dmic_dev); return ret; @@ -859,9 +838,6 @@ void amd_sof_acp_remove(struct snd_sof_dev *sdev) { struct acp_dev_data *adata = sdev->pdata->hw_pdata; - if (adata->smn_dev) - pci_dev_put(adata->smn_dev); - if (adata->sdw) amd_sof_sdw_exit(sdev); diff --git a/sound/soc/sof/amd/acp.h b/sound/soc/sof/amd/acp.h index 2a19d82d62002..4bfb05d93b25a 100644 --- a/sound/soc/sof/amd/acp.h +++ b/sound/soc/sof/amd/acp.h @@ -256,7 +256,6 @@ struct acp_dev_data { struct dma_descriptor dscr_info[ACP_MAX_DESC]; struct acp_dsp_stream stream_buf[ACP_MAX_STREAM]; struct acp_dsp_stream *dtrace_stream; - struct pci_dev *smn_dev; struct acp_dsp_stream *probe_stream; bool enable_fw_debug; bool is_dram_in_use; diff --git a/sound/soc/sof/amd/pci-rmb.c b/sound/soc/sof/amd/pci-rmb.c index cbb4d52826644..0233b6ba2d2e2 100644 --- a/sound/soc/sof/amd/pci-rmb.c +++ b/sound/soc/sof/amd/pci-rmb.c @@ -28,7 +28,6 @@ #define ACP6X_FUTURE_REG_ACLK_0 0x1854 static const struct sof_amd_acp_desc rembrandt_chip_info = { - .host_bridge_id = HOST_BRIDGE_RMB, .pgfsm_base = ACP6X_PGFSM_BASE, .ext_intr_stat = ACP6X_EXT_INTR_STAT, .dsp_intr_base = ACP6X_DSP_SW_INTR_BASE, diff --git a/sound/soc/sof/amd/pci-rn.c b/sound/soc/sof/amd/pci-rn.c index b7d558cb1fd7a..4a36029a00dec 100644 --- a/sound/soc/sof/amd/pci-rn.c +++ b/sound/soc/sof/amd/pci-rn.c @@ -28,7 +28,6 @@ #define ACP3X_FUTURE_REG_ACLK_0 0x1860 static const struct sof_amd_acp_desc renoir_chip_info = { - .host_bridge_id = HOST_BRIDGE_CZN, .pgfsm_base = ACP3X_PGFSM_BASE, .ext_intr_stat = ACP3X_EXT_INTR_STAT, .dsp_intr_base = ACP3X_DSP_SW_INTR_BASE, diff --git a/sound/soc/sof/amd/pci-vangogh.c b/sound/soc/sof/amd/pci-vangogh.c index 28f2d4050a676..caf9e2b2e4638 100644 --- a/sound/soc/sof/amd/pci-vangogh.c +++ b/sound/soc/sof/amd/pci-vangogh.c @@ -25,7 +25,6 @@ static const struct sof_amd_acp_desc vangogh_chip_info = { .name = "vangogh", - .host_bridge_id = HOST_BRIDGE_VGH, .pgfsm_base = ACP5X_PGFSM_BASE, .ext_intr_stat = ACP5X_EXT_INTR_STAT, .dsp_intr_base = ACP5X_DSP_SW_INTR_BASE, From patchwork Mon Feb 17 23:17:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 13978780 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4A2031B423E; Mon, 17 Feb 2025 23:18:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834296; cv=none; b=nnPyqtrQaht+acm1cpi1cLyH3YjiFR0VG5rEUt+8e+DtFvr144iTvg15e67cunvP2ghKwdvZH+xTUuu7PwVa7RaBW8SVPVaHL9WqIpVRyFVhru7Rc0PrhnIPKsfAtPIdx4aUsOojKhovOL1jCSkNAvN/I/tf5Pozf/VHXR1bWKs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834296; c=relaxed/simple; bh=5beDSDABhZK7GZ0ae4q5aJKX12z6pf18bP43T+D8VzE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Vp9XfsRFdjW67AsHC1DIhJujJDPhp0j2M05AmEK/Xz6NtjKpufrE6Sa/2yMXeM5fGPdoICw0MsI/1FAycSLnmMRJJcu/1xTRiVF/m1NRRoqlK9JW5jU2IaDwOXuEjxMICzTbG5tQ2jIEO3QmP9reKYCzK+dAiEdWp+7gE5vjrNk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=C6Rf3UHu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="C6Rf3UHu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BDAA3C4CEEA; Mon, 17 Feb 2025 23:18:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739834296; bh=5beDSDABhZK7GZ0ae4q5aJKX12z6pf18bP43T+D8VzE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C6Rf3UHu4j49MCKYR5IQXc7YsRmbdw1a0dQQbOATteYf84tgiSGqEQhjm0nJFG419 sIWsiLxyw7kYrj6bvtQB4hrz/VcY5cB6etodAXv3hWJaSzfLtuUVFXcc9BMs7Pb1cn SvPjEAhi8Sk0Ku0PEfpeQfHSshK0fZv9vw9B0u0qNdo81COV7K9d6yNmdyg3WqElAv nuRxGcqedv+9Hvekeowl6hI/5o07Wbc53c68UZHR/HEY/oPXW6sJN4h1ekuz5xOP+G Pak4VP1tLyd5wGYlnjg5RXVFgsL4rlzr0gUdpNWU1xPUAsVeIQeoVQj5ZDi00FJBNO WTXVFVYfHsj2w== From: Mario Limonciello To: Yazen Ghannam , Borislav Petkov , Mark Brown Cc: Mario Limonciello , Thomas Gleixner , Dave Hansen , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), "H . Peter Anvin" , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Daniel Baluta , Kai Vehmanen , Pierre-Louis Bossart , Vijendar Mukunda , Peter Zijlstra , Jeff Johnson , Venkata Prasad Potturu , =?utf-8?q?Uwe_Klein?= =?utf-8?q?e-K=C3=B6nig?= , Arnd Bergmann , Cristian Ciocaltea , Krzysztof Kozlowski , linux-kernel@vger.kernel.org (open list:AMD NODE DRIVER), linux-sound@vger.kernel.org (open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...), sound-open-firmware@alsa-project.org (moderated list:SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS) Subject: [PATCH 6/7] ASoC: amd: acp: Drop local symbols for smn read/write Date: Mon, 17 Feb 2025 17:17:46 -0600 Message-ID: <20250217231747.1656228-7-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250217231747.1656228-1-superm1@kernel.org> References: <20250217231747.1656228-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Mario Limonciello As the ACP drivers use the AMD_NODE provided symbols, the local ones are no longer necessary. Tested by: Venkata Prasad Potturu Signed-off-by: Mario Limonciello --- sound/soc/amd/acp/acp-legacy-common.c | 18 ------------------ sound/soc/amd/acp/amd.h | 3 --- 2 files changed, 21 deletions(-) diff --git a/sound/soc/amd/acp/acp-legacy-common.c b/sound/soc/amd/acp/acp-legacy-common.c index 7acc7ed2e8cc9..89f5cda18a23e 100644 --- a/sound/soc/amd/acp/acp-legacy-common.c +++ b/sound/soc/amd/acp/acp-legacy-common.c @@ -345,24 +345,6 @@ int acp_deinit(struct acp_chip_info *chip) } EXPORT_SYMBOL_NS_GPL(acp_deinit, "SND_SOC_ACP_COMMON"); -int smn_write(struct pci_dev *dev, u32 smn_addr, u32 data) -{ - pci_write_config_dword(dev, 0x60, smn_addr); - pci_write_config_dword(dev, 0x64, data); - return 0; -} -EXPORT_SYMBOL_NS_GPL(smn_write, "SND_SOC_ACP_COMMON"); - -int smn_read(struct pci_dev *dev, u32 smn_addr) -{ - u32 data; - - pci_write_config_dword(dev, 0x60, smn_addr); - pci_read_config_dword(dev, 0x64, &data); - return data; -} -EXPORT_SYMBOL_NS_GPL(smn_read, "SND_SOC_ACP_COMMON"); - static void check_acp3x_config(struct acp_chip_info *chip) { u32 val; diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index ee69dfb10cb86..c921bcabbcec6 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -235,9 +235,6 @@ int acp_platform_unregister(struct device *dev); int acp_machine_select(struct acp_dev_data *adata); -int smn_read(struct pci_dev *dev, u32 smn_addr); -int smn_write(struct pci_dev *dev, u32 smn_addr, u32 data); - int acp_init(struct acp_chip_info *chip); int acp_deinit(struct acp_chip_info *chip); void acp_enable_interrupts(struct acp_dev_data *adata); From patchwork Mon Feb 17 23:17:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mario Limonciello X-Patchwork-Id: 13978781 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 399AB1AF0D6; Mon, 17 Feb 2025 23:18:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834300; cv=none; b=G3NjNlnsbisBbDt+MdoV1ViHpnfbbue0AYoVYmhYoDI9QbZLmqyXoCJPQRMkfV4q2nrgV/XikGBT9FCL/cpYuuJQXwmLF31Wc48HUbAwRzIhIT99a2jdytPIWSulewMEx9T4I/fgxny2S+tACISDOLIIjPN/GBCToP6u7hIWaOY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739834300; c=relaxed/simple; bh=A//T4FziV5YTqBmwItukIEcIB39iJrlwpQY2sdqd/PM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HzzMHQLetkQQf3jCaaJpttPEiLoirnCrQfrvbv/Zr3MlvxOV1o7deNIbGlbhfauchfbFiUcpTQusPyn0cIDJS5YX+rvF0CXRaO//PmOgfpIYXZ3g5532btzcdt3Ulfwids9fayb+EVD+APWGOuAT8UvqhancZ3tE1wn+T8jBqvk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=nIuuyuDy; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="nIuuyuDy" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 62A9CC4CEEB; Mon, 17 Feb 2025 23:18:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739834298; bh=A//T4FziV5YTqBmwItukIEcIB39iJrlwpQY2sdqd/PM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nIuuyuDyhMnAOqZAwRkfWyYj6Ucp9jPEEq9dHfVGWfkLBTbs3vEtFh44QAvj54OzQ fTMBakxYx15jKOUTFzroydwn9otXVLSV0sxxsYeDTSd7E+aGcK1dfN0ffWvKikaJfA yM+4G2Y4iz1zMNjoPnlt/vMmF27vZX1fzMp4Xiq+XIpCmtZRgRW7YJYu25JEAFTrNm wHeFvWJ1XKWzM0kfDZ56rWt1LD+gLAmNX3PeMpRZOyIV0jxTsDe1UaQfKvxxFdCZms pdFSSVDybpsVRpnq8EuXEZlGV4nZR7g7l4Y1oZEAIgT9enCb4NOk1LJRJY5+my77xV 4TMMhnY/UTVMw== From: Mario Limonciello To: Yazen Ghannam , Borislav Petkov , Mark Brown Cc: Mario Limonciello , Thomas Gleixner , Dave Hansen , x86@kernel.org (maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)), "H . Peter Anvin" , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Peter Ujfalusi , Bard Liao , Ranjani Sridharan , Daniel Baluta , Kai Vehmanen , Pierre-Louis Bossart , Vijendar Mukunda , Peter Zijlstra , Jeff Johnson , Venkata Prasad Potturu , =?utf-8?q?Uwe_Klein?= =?utf-8?q?e-K=C3=B6nig?= , Arnd Bergmann , Cristian Ciocaltea , Krzysztof Kozlowski , linux-kernel@vger.kernel.org (open list:AMD NODE DRIVER), linux-sound@vger.kernel.org (open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...), sound-open-firmware@alsa-project.org (moderated list:SOUND - SOUND OPEN FIRMWARE (SOF) DRIVERS) Subject: [PATCH 7/7] ASoC: SOF: amd: Drop host bridge ID from struct Date: Mon, 17 Feb 2025 17:17:47 -0600 Message-ID: <20250217231747.1656228-8-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250217231747.1656228-1-superm1@kernel.org> References: <20250217231747.1656228-1-superm1@kernel.org> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Mario Limonciello host_bridge_id is no longer used by any of the SoCs as they all use AMD_NODE to communicate with SMN routers. Signed-off-by: Mario Limonciello --- sound/soc/sof/amd/acp.h | 1 - 1 file changed, 1 deletion(-) diff --git a/sound/soc/sof/amd/acp.h b/sound/soc/sof/amd/acp.h index 4bfb05d93b25a..d084db34eed8d 100644 --- a/sound/soc/sof/amd/acp.h +++ b/sound/soc/sof/amd/acp.h @@ -197,7 +197,6 @@ struct acp_dsp_stream { struct sof_amd_acp_desc { const char *name; - unsigned int host_bridge_id; u32 pgfsm_base; u32 ext_intr_enb; u32 ext_intr_cntl;