From nobody Fri Sep 25 16:03:28 2026 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013046.outbound.protection.outlook.com [40.93.201.46]) (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 F29C7453A5E; Thu, 10 Sep 2026 13:24:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046652; cv=fail; b=SSR5RvTgUFJvGNUkcwnk1msbqWFlGeAAjuONSOCDbVheBSmrqhN2cZzaY1ug20yw7nx/eHkDfZoKd2Prl2WaMvKX9a8rwcmsFffpDmqFekwZjUf8FT5QeAJeDHwNkH+t93p87r55qpsOwDrJn6JmT9N8PW5mn2O0gMTPw8GsJio= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046652; c=relaxed/simple; bh=/WS5vY1Ufmcua5S8BpTXI9I0EOwH+K/h5fIXtfST7gU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BfjVItf7uWAcZY6VMvNJROTEE0az1uX6+vKcigv4EPvGFgMIOavWIi3/DkXzOgqHwFFiWWlCxBsynj/bWfW+HwxUeOwMsi7hU7e0JyhN5D4ednfEFHMAw6Y69plP7kYdwv7fqaWVkZUBnxrxoYHJAQ9WOzJzJsj5FeEQ28SxdkI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=siWP3Kn3; arc=fail smtp.client-ip=40.93.201.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="siWP3Kn3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ACQIY19ixJPb/bJCgyY2iY/xGfplAHQakqPfmZKU0LQ/AI6wW524EcRoFJoCQCjaMvKF3KUbNGXXjAa4t1Lt8GczkdIDFNnTF2NFVCt3w7MjlEx+0nmb5h/a3+CGLvdRAdMeAKTxERhvh9MGo3ZWQutiux5h+BKGEBj3ti6iO9crFq1E5pCzjK1KgfbPi7khiKPIJ9SaEv8AhIicPV4K3jiy1bi9Qw4JHZDrNObLQi+ZXqipaTXACVHfrON7DVLUS2wazYGeWWwfsrv8jJ+NiT5jovtzwQGzewEXEbXefwDlY9H+PYgrpDZOkXER362hubPPztKc7vJ+jkndKwQWiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+KroA82CRk/g8bZB6XKSUddaxdaAEtB0qiaPRNS99cs=; b=rk0HCkwwM2OHd/pZPgVhEMkjNnKg9z58eIEJOeC4HznaZIk7+0jTZpJ3S0vs0BkRbaRjb7uiac++M+xt5hiIDKOvMUhUYpt9Gow9K0qv4lcPupRotQpqDiBGpLhokeW8KYZNuT7GZSPpRXyhuh0ARXwlSCmTOnZBU8vE1Eb+/br7bAZ3+mZO7NGdb+dsYciHsnWQ3E5LWqY9OUdW6kaRvgU/p4arW/sllGxLZlms8yJ2Qw00fbwrd9iQb3dySpD6xWi2wkM/9nhzSl8bnU2HST9r1kHgv//cq0hCJnjxkkEKQu81vHudBtFR6SKwumMqynuLp7Bf2TQp8eqlp3D1uw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+KroA82CRk/g8bZB6XKSUddaxdaAEtB0qiaPRNS99cs=; b=siWP3Kn3WHOjRieJuf5s88Cy50eXdf4VzfdLg/v4eVDLQ5Z2py89faZXeJ+DQfWZIQ0prJGol7+ryvkbn80mYIAJ78JD3WhH77uOVshyWxDoGLwl99SNC1nhmSCgcyT+TVqotqBTBybFgo+E4HSWy+sCY9iCuAFEfZ+eAhzTglw= Received: from SJ0PR05CA0099.namprd05.prod.outlook.com (2603:10b6:a03:334::14) by MN6PR12MB8514.namprd12.prod.outlook.com (2603:10b6:208:474::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.9; Thu, 10 Sep 2026 13:24:05 +0000 Received: from BY1PEPF000264B0.namprd02.prod.outlook.com (2603:10b6:a03:334:cafe::72) by SJ0PR05CA0099.outlook.office365.com (2603:10b6:a03:334::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:05 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BY1PEPF000264B0.mail.protection.outlook.com (10.167.242.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:04 +0000 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:03 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:23:58 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 01/11] ASoC: SOF: amd: return -EINVAL for unknown PCI revision in acp7x suspend Date: Thu, 10 Sep 2026 18:50:01 +0530 Message-ID: <20260910132251.1171943-2-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PEPF000264B0:EE_|MN6PR12MB8514:EE_ X-MS-Office365-Filtering-Correlation-Id: 225f1170-62b6-4b6a-dbc9-08df0f3ec944 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|7416014|82310400026|376014|1800799024|23010399003|11063799006|10067099003|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: be7ErUS6Hu2iqmSUrq/kTWhjMMH2ScbTKGifMbDpNFUC1Tsl18876oYK9Mbhc3h/b08QkW8PHepEDXiyPT/oowMH3qFdTdwkASffZ5ZM3een8agOka1Opp70WKy8jZ7GBZS4QxLKLOIK6h4W7OfPTpY+3EEwp8vQwUbJ4lxErKv7vK+S1jMJU9eJ/fg7wU/2FJAm1bcRDy4cq4JhNKdLHcplPKcrbEGPyGeoVj604eHa1Mkgxsbms4LGRWQeRnIAIBLSWedUBNJnZXcQhbtAx+3tNCQnssGYhnhLc9vClvBG3TKVDlDNPGe7br2oEO2Ae5sroJU/k0+dACjpNoBUI/dWE0OV+ECEf8P+YtQsv7mH838N63pE5FJKmxvO0pb4m5PpBzwQUPb85xwastjA0oDBif1z+bIYh+WlJZBPdyC0LfeqAF1fv3DmrpxQLFVEuerkFUvILpfqgANfO+LGtilSUhH6KbWEK8viF106kMKn48A5eVZcNm9hxCeJAgtnPTb0tr+fCaqy428oRCnANP6uQEq2hdzJCPfY1q1rShkXg7lIusqwfdP/ty0qCBB8/BI/biyj2GhlKuqgv0mVTVcD4gd2B07rcymnhDLHBDz559C8keqXLMPeL8fF++S6cOr6GTRnTJVa8HabqU61fStWB78FIBvVoJxmXW2BV6+BS5+mqfoJWMzg3ChSYEH5uMLPmzjNMSGzNjWI95R2kA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(7416014)(82310400026)(376014)(1800799024)(23010399003)(11063799006)(10067099003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ClQCkj+gfOfE1RkAQK2p/hNkWhaghES1Gqc25Lb482RBOyCyET3rbM+e/A/VugJfVxFqYni0WqCliozPtz9T4ao+PlsxcvaXaf3cHqYwGoaIKGEB99uhvzo6BB/Cll0+7YHBPIscbt9343jwhkPdREPyG6OelRC2EBXVFU0M9RGX69b+WmFfzINz/qmDxxSSqCFjU5hBGUEP5bBzQu+f25qJbZaVsoPVcGmQBF9K0t4LM7lVEndWyoxBKsvGeZPleHzkQUIZrD3gddfX0hy5iGeAC+c8bTz9S3lqsgGkUkEj10UZMGhjb3Hp2jdhBNbiBJ0DluLVDtiH+5QP5vIneJJCZOPBO+3ZzHF3Ph8p3IJxtoz+iVDeC0WGxK4efLdXYfGmL8Pc+zumlx9/31TJmAhZ53jyRKzKs5f0i8EqvMmbJzkZOeCVVo67rpvCRFZu X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:04.7733 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 225f1170-62b6-4b6a-dbc9-08df0f3ec944 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BY1PEPF000264B0.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN6PR12MB8514 Content-Type: text/plain; charset="utf-8" amd_sof_acp7x_suspend() is registered only for ACP7.B and ACP7.F platforms. If an unexpected PCI revision reaches the switch statement the default case previously fell through, leaving ACP_CONTROL with a stale value (enable=3Dfalse) before writing ZSC_DSP_CTRL=3D1. Return -EINVAL instead to surface the programming error immediately. Fixes: 1c9646f3180e ("ASoC: SOF: amd: add system and runtime PM ops for ACP= 7x") Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/acp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index f89ad86260b4..688df7acd2e2 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -1197,7 +1197,8 @@ int amd_sof_acp7x_suspend(struct snd_sof_dev *sdev, u= 32 target_state) enable =3D true; break; default: - break; + dev_err(sdev->dev, "Unexpected PCI revision: 0x%x\n", acp_data->pci_rev); + return -EINVAL; } snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP_CONTROL, enable); snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_ZSC_DSP_CTRL, 1); --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from CY3PR05CU001.outbound.protection.outlook.com (mail-westcentralusazon11013053.outbound.protection.outlook.com [40.93.201.53]) (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 5F52D48A2DD; Thu, 10 Sep 2026 13:24:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.201.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046669; cv=fail; b=nYL71nuK+AiSDGl9MX/+TdQyftl4+SbxBnJuRFsqnPSIyOlCNqhwpCcbuNezmz9nXwRdlTv4t7V/sFqyajTxhtRijQHdXrpiyyq45YLbUQ/2AZufUPq3/S//xkbcOjyUn0ONdyZzvyBDTPtODeKit0rsjWtngSh2pHXn5i4/GDQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046669; c=relaxed/simple; bh=epaQzHc444A+gAp+tg79saxtCMLmHlx5qvqxhpqd/bw=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XsAwATBukzBfJlPbnEOG5lHhv6n+7bAOjanN+PZ0nErFBtX3c+1Jb7IxTNjVc0wSNeJ/EsvfQoSJsVlKg0gER3HT4bKcTPO35iybxz3da/jWUY9ualAOHG0MYnsJmg74s3HnHmoUvn2Slm6huZ8fB0MSQsV+pfgcH1B1rBDWPEg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=a3uXBOLZ; arc=fail smtp.client-ip=40.93.201.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="a3uXBOLZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SrOyz2dEdArCqQxEbmQcBZMyaKktevaDcgtvIYhkT1DBzvpdghRfGwhL9QIt3FZ97YtSo3Y2U2z6zDYoYM0xbr+YAo7m2aEwGwBY+3zhnWqU+hcDXsNrNo8NkO1IhbxHxHTYpCSIObJlZRfGwKLWuH+VYIA09duoWp+qNd60I354GR6l+rMUtbtBYVIePhf+HEDfP989soMbqzuhiMCJQ9iDFaWsfKz3t+vKaqAaD0EhoVR0OfpXG6cHz7qPP72gDhtBhY2nzE7NICoUZMfsu1iB12XmE+jAUWGuIwv3DwAYdYfTcvO3/09uGBQ/4FhS9/Ta+yZh7gzCPzXY9dNv2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8nKQ1qbralWzZiOCqbjUvln8Lv3aYlfnHkUpVgGzFLg=; b=Q03pTev4tuO/mTvKSUdAX2gDGbmnP91d/0dAc9fpVuWdJU1fMKZnWvcMWBGQ+WrEdZuYdFUWVamyJ/sEe9KIE8jX6mn2FnrfBcOuKyVzwQKug8EQBbwFECw2GDKO03gFpj7TnW/hc8r0Z1zPgC143RM9RRsXhmYuZud9whX5n5Zmv4flv+LBpjU00/iQWSyU75HcmGnLDFGlzuyudWvOD21v7D+RN5qsM1kpqamoASyr3BjnCm9SJnspTqB3TvydOCxixwrFXBlzF7fzjLm1yAyp+ApwGvyprlk1ub+weH2a6WXBPScetbTSlFkU1CZAx+fdG7aXtWiC/ZIMXzMhQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8nKQ1qbralWzZiOCqbjUvln8Lv3aYlfnHkUpVgGzFLg=; b=a3uXBOLZx+Egs4rXNBQxaxL+QFsY42D0TJSSuFDD2o0QkOcaZQlEyJnkGjRaorTKw9flx0fKexgarN3vX+F4eijfDHupiLy7dkFMwa21aECyZpUXwJff93jVWzbobOpWqLs+lcL76OOmTeRwMfHBu9LJ+aoopfUt+lWZRl6C2a4= Received: from CH2PR07CA0037.namprd07.prod.outlook.com (2603:10b6:610:5b::11) by SA0PR12MB4496.namprd12.prod.outlook.com (2603:10b6:806:9b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.9; Thu, 10 Sep 2026 13:24:11 +0000 Received: from BN2PEPF000044A9.namprd04.prod.outlook.com (2603:10b6:610:5b:cafe::49) by CH2PR07CA0037.outlook.office365.com (2603:10b6:610:5b::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.406.9 via Frontend Transport; Thu, 10 Sep 2026 13:24:11 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF000044A9.mail.protection.outlook.com (10.167.243.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:11 +0000 Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:08 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:08 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:03 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 02/11] ASoC: SOF: amd: fix amd_sof_acp_remove() teardown ordering Date: Thu, 10 Sep 2026 18:50:02 +0530 Message-ID: <20260910132251.1171943-3-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044A9:EE_|SA0PR12MB4496:EE_ X-MS-Office365-Filtering-Correlation-Id: ba2286ca-c32a-40ee-1920-08df0f3ecd36 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|23010399003|36860700016|82310400026|56012099006|11063799006|22082099003|18002099003|10067099003|6133799003; X-Microsoft-Antispam-Message-Info: j2gy2u+gkhh3TA8JyW83/068vvWTHJ8Bt6XB69anMoWJFWrUeZ+vMnA4srH3KKf/3kKNy9/FgHtUL7Hr718C+6J+zK915qNL4hc9aIa8pTmZE6datLV0rUJuBpL+WKH1wwY7kAyCfSDejH2N31qcKfGz4bXi0of6liYSh7IcTezRHrQ5k7RX+M0HIRo7DR7+fGnzrhCj+9/YgvWK3mXN5fjH6gN/hC7y9ag6UbaHqXZwrV0uHBp4Rs36aPX3zPN64R7I4cVM+iLCCIXy83IUU1dqU2gVEc9sZqCmOSK2mZ3T7h9rOjedvWIwo22ml1VTaL+B1CsyFiJxyzOMf+ovDaw0mRKO7jltuVfIhXAynFotzsX9i0kVHw/nVk+xhmLPQ2841ET3IChnCaKgs1dMuSeGp4UEcZ/LnAs2ly1mxefDnmTNZOWg9NRjIxWkxj0nvB9ydeH5M8Xd4Awj0kSc8MX8e04nisZxQc6rouhUEcj/gML1sgbh6gvANR8rWC8xylR+br4VbUsIdid+YHgGW2QIhh/dB7PAv14lBy5Joulr/eWN0EIMVICFDBOhaweeAeBkUfptddDqC5PJO7EknOWlzp8DonFNxcEnndkUIrNZz9O/kzsG2ArUT+LDwLusAN7cpfYcHHSroFabFoxqMsJOdagT9h1wW8n30SxZYyLh9P2ePPsa6RSU99Vn3seChqIN1bFPTic7QrIaxlck9A== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(23010399003)(36860700016)(82310400026)(56012099006)(11063799006)(22082099003)(18002099003)(10067099003)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UFQ7XrZwYmTf1JG/2NqYxkP6LbU7GSByLO05hSN47kWMk849UgxZ+ZW42wRxkygbfHb7vmVAF0zYHERMEg1pRnZHJiMXi/j/D6AZ3EoOFjmm6asQIwWGxfFRDQ38KR3FLJFNKCZ2fAEDTwypltpaH4yDHC+yBdMiB8es66oG0c8LQZNqLhNlzNds7xH5HWv+mrRbPWEQk+kHA/lRHBk3cj8CY5diwfkm0JXFzioKziXZgo2yC8p2Ipq7XKsXHuNZGj7sOYHJx9Sy4xT7Lk7nNAaP2z7x8A8ky4gghlSfQW7gCOrjmW1myv5jto6y14+bwuBLL67xRFusx73MGJMVmEECiYpWzHKLIzlOEbsHQF9fjwgtVdTei8vsmjoBt/2MlbvprVlwqKE6nsVza9nYxIabnX2P7rRjBxKzxgj0Un5nAaf9EnBUEfsFrW+WQQtK X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:11.4733 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ba2286ca-c32a-40ee-1920-08df0f3ecd36 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044A9.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4496 Content-Type: text/plain; charset="utf-8" Call free_irq() before amd_sof_sdw_exit() in amd_sof_acp_remove(). amd_sof_sdw_exit() sets adata->sdw to NULL; if an IRQ fires between that point and the subsequent free_irq(), acp_irq_handler() may dereference the now-NULL pdev[] pointer, causing a use-after-free. Fixes: d948218424bf ("ASoC: SOF: amd: add code for invoking soundwire manag= er helper functions") Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/acp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index 688df7acd2e2..e4cdb74c075d 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -1048,12 +1048,12 @@ void amd_sof_acp_remove(struct snd_sof_dev *sdev) { struct acp_dev_data *adata =3D sdev->pdata->hw_pdata; =20 - if (adata->sdw) - amd_sof_sdw_exit(sdev); - if (sdev->ipc_irq) free_irq(sdev->ipc_irq, sdev); =20 + if (adata->sdw) + amd_sof_sdw_exit(sdev); + if (adata->dmic_dev) platform_device_unregister(adata->dmic_dev); =20 --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011040.outbound.protection.outlook.com [52.101.52.40]) (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 D16F937B413; Thu, 10 Sep 2026 13:24:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.52.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046662; cv=fail; b=h1/Jrbkdtwab9DoPIROZgZ2tc2oIEMM7n2/D/jh6BQSRAhbTa6P62cHn9M8JRtP2u+6mS7VyZSfrLiLGF4xX/C8R9HNSy0B1P92Ahz+0fWbW80Ra0SuzBTD/TE8RDuAIAFoh1RO0arlmKfv7YBCl26HoK25E5VGivDAVOHQ5VOE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046662; c=relaxed/simple; bh=DVhNOyqF8GYVtL7r2qjzz8lPWBT7Zpyix4XpG+aq/8A=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=c5Jn94y1gG4DsnkofIz5PVG05mVUIcwHi0IqctjV2a9scT6tAjIqnwfCjJXRT/umocGCBMvKQ9jw4+ZqVS2hDDCFtIELYnUQMSgG6/EJSDx4u/4dKL1/uN1fyO7c0X5Pyu1TRB/WAb7qsWVdFWHkscdDIegDKjTePU0d9g1pnNI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=CUb0OTWA; arc=fail smtp.client-ip=52.101.52.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="CUb0OTWA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ayYvOOnzVVU13dT4GMunyXmEAXVOO6+NPRBBWMnOKvRZfbLbnOa4AGXNxQ4JKghndj1LxCyOAAgh5H1xw1SsUZdiNG6QnJo8J0JD6WYTAQQw60YP34/BeX1MQkWhRZHXtB7hQnm0sm7Q4/4e+NA2mU9X7G0VsbjuWeoxLgzZdcjUudlaOZSbS1ThGj5eiAcf9aTRp8HaxiRnNG2qTbdzCpYtnabnJTj1lia/iTyTU4pjD7JUL8d+lCyJPhaWfk1wERiseJQLXj/4ugD/8Rn26XERxTmjMSupy2EAnFZc6B2qps2yseu3Vr8kkkf3uwyGABL0ax+KJIztrOHT2TUFaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=LfbDZK2szKvHjRr165JO7tXy1zLeS4h638g+bF96hB0=; b=UlotnZzKYlibQdYzVhO/0UE6h2JHPAZzOktoNzHv/ItNSCogwuMgOacnGpTQjAWWvJUNPjetfHptmCzQUTvvTnv7/rCBY7PXbWA1lbBJLcplJ8GOFFlkZUhXd4vIayvJ7zz9RfukFbL1Wy7wSLEpjJh08rzb3lS5+ELQz5DowWb9hlk8H5XPZER0YylMicag6GNjl/766K5NxtVwbCo/i/mpejF5FzRJ1jpMlpCub3Nk/dGDmNOcTp6kwPmSaqRb9KYzgv9O2qhOMphdLAOTTGaeeSVHt1uwF8cf9EYxh+z0+jsvVjAnbBrO6zsfJMJaKUDHpJt84ETEa+kzLF5B+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LfbDZK2szKvHjRr165JO7tXy1zLeS4h638g+bF96hB0=; b=CUb0OTWAA/GHqrjoXnRoXP3r3/wLJeyvFUfDhnnGC7UzJQIcew6DX+duJaOf4OddrtgpjKkdXjuD3kh5zlI+N3ohF+xsC3ntuTGjwJ9opqO6T+6vtdCmAGwWuJ4SB7WAQ82Z3kEcZJgHjgJxKdESqt5Q0tqc0v3Zrd6aPvirG30= Received: from SJ0PR03CA0176.namprd03.prod.outlook.com (2603:10b6:a03:338::31) by SJ5PPF4D350AC80.namprd12.prod.outlook.com (2603:10b6:a0f:fc02::993) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.9; Thu, 10 Sep 2026 13:24:17 +0000 Received: from BY1PEPF000264B3.namprd02.prod.outlook.com (2603:10b6:a03:338:cafe::74) by SJ0PR03CA0176.outlook.office365.com (2603:10b6:a03:338::31) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.406.6 via Frontend Transport; Thu, 10 Sep 2026 13:24:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BY1PEPF000264B3.mail.protection.outlook.com (10.167.242.120) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:17 +0000 Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:13 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:13 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:08 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 03/11] ASoC: SOF: amd: fix amd_sof_acp_probe() error unwind ordering Date: Thu, 10 Sep 2026 18:50:03 +0530 Message-ID: <20260910132251.1171943-4-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PEPF000264B3:EE_|SJ5PPF4D350AC80:EE_ X-MS-Office365-Filtering-Correlation-Id: 6c478ce6-7cc3-4ba1-baa4-08df0f3ed0f7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|36860700016|23010399003|82310400026|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: q44WQWH2e8wi0Kzv22WV3tp9gKDfLo9zyiJ8atfhagDuYNHEK/9e4wLYUnVHaFewjVroaJGy16fz/JP/tSa+U7UqkadRp7XDAPeOM7Z4nTyOWbyCn9H/mnCfdXm6Yt/Lkh1sLQ17fEGF7gbxnVL1KMuapwtG8cVP/xyzCm25aQcWibrjsvSjg25jbgC1ei2U0F77/45u3vy3fTDCyYp/28VOMq1cmKun3lot3J7U0+KaIZWPrC/Izwoo07wgfRPEXAP/wg8v6Fm5mKOorbDhKkBI5wqqGD5FlqbErQ8HDimxE7sUKiVG+nJ79q1qSWUEgvFMjzM0Tfu+EnfUTH+qPXqLXF2gTYewt28EV+nBdtaWeifodnkfGKGy2arHQAIYBBmWNNiIXsPEX4JIVEVli31HlCyV5FcIfrTU7/L5iCnbGvzfNUdBWVNd7/2+rg0C8MZiCleo2g0ZZrJs/HkvYaMsKBTrWNNfr6hKjN3sy7Q/6qkDCLKG0xD1wmg4r31l2Ov0xZfDPY/xobFaFOEM5PIIwcl6JjZOK5J9fRa2257Jx78u9VL+uA0X975kcd18CulxNevqO9563OVKyJdB9ErCGdrQjf2ss7y9nqWIcKwqcUmiD0UrkDjFst/+WeFCsE0PSNdShruwZGbnyRJ0982fnqTCGGfltI/15gJvAA8dSp0ld26vytW8AfttnCBlQoa0pI1Z1i7IcaG2aBX7kg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(36860700016)(23010399003)(82310400026)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: phoMddZoMQ6dMWBUFx/2tWrZBEUy7QDT3g+wBhL0SNGL2KHeVJHmh0OPwRDm2UWvs1jlsQP32hzXtN3LN9VKdO84MJpQhcDB5F9dgQLeUrWKoKvIl8sLHvwNsD+2t7jThYCO5kvc0+nDG2+6TJEexjiqFJkbnbVgoPi5CoBCN/pvXIQt3adv1ku6Golnnwvc8NhDtT+hvajzWyFJlLPMKNXPCcfywxK8Y77MW0r/e2PjquMEH2+2e21nVU3XcuIQc4aHi9EjbgFaQHCr7D58SNZp+H3Iqe/9puAiVaLRbdI5MMcefftokLdZgBFbp1Rt8tuGNA/E2qKJnIGGkQeK/FNpyeXwa5P9Zp22Mbs0tqPNKtABTSDwwdCpWlVJJzN7JIyRr4zudyLD5PEx4lS4msPmwdLaSEBxuqupL52NhlcWRAvQGNaZzyvXi/SRGVBl X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:17.6924 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6c478ce6-7cc3-4ba1-baa4-08df0f3ed0f7 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BY1PEPF000264B3.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPF4D350AC80 Content-Type: text/plain; charset="utf-8" Call amd_sof_sdw_exit() after free_irq() in the free_ipc_irq error label of amd_sof_acp_probe(). Without this, an IRQ that fires between sdw context teardown and free_irq() can dereference freed SoundWire resources. Fixes: d948218424bf ("ASoC: SOF: amd: add code for invoking soundwire manag= er helper functions") Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/acp.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index e4cdb74c075d..5570f3d1348d 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -1038,6 +1038,8 @@ int amd_sof_acp_probe(struct snd_sof_dev *sdev) =20 free_ipc_irq: free_irq(sdev->ipc_irq, sdev); + if (adata->sdw) + amd_sof_sdw_exit(sdev); unregister_dev: platform_device_unregister(adata->dmic_dev); return ret; --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010017.outbound.protection.outlook.com [52.101.61.17]) (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 70E5C47CA95; Thu, 10 Sep 2026 13:24:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046664; cv=fail; b=f+raG+A3/4konc6n9b0YuNCksT+YdQUa1i9hWnQ3lJbKrpdY78JEdAmZOsy/R1yTUNkmSv+cVlCN4trgjhX6/LXff/71RFLCpjrLCm3FAnVxzG2wEQIHOI7qe3Lwe3iUErJ/RI+cWrCxzkCTA+MQ4GCXF9U9v/LG/szYHRohBV4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046664; c=relaxed/simple; bh=obUGAg/E3caUCTwnroWse1ES4f7fICxIqfdY9MajGHc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=m2oM2EbpvoyFLb5Cict6ChdXGU0Aei/1Rd1I2bnCNCtXJfq46VAux20Pl2s8tzkP9QoJEL7a5E/kyhQWSkz5WZ14fgH3TpjqxeS1WyiULxRqPT39IBraXZ9q/jRLS3bOgEej/vg5HDyY0nclc6jS/Dx8CeYNoMIOdzOoUDmyg88= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=iedSLH68; arc=fail smtp.client-ip=52.101.61.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="iedSLH68" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oQrIMzINjKpfFRG74c/tVraoG4ZJR0LHe8791xRYwhyNua5HmSbYU7190rBzKA4zsFlVodS3CdjBuIkBJNNO3LoojXZk+xbler9maOOF1OsDJUhGqW6kZZ8hvaEUew4yLSi0AFZOtgUHgN4siTbf3PfpMyqh+FCTuHAwaiUKXKLYaPEascAOTjzrBB56luc+aWL7KrtIoIMfa+47dmWXRodXC4Jh3VagMZFNQrEoi/3uzepitMInOMDBqcXLhAuw2ONNYbxEls/JK6AP1mcbGjaTfT+i/jwEyEZX+tiq/sjaSG1/5Q5kXzb8WGPwQ/y0ELnfPpIIETiw3JXG5wFtkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3FlIzzEsf99DtQcRAi4109SfCyY38QCP+F0X0o+ZL3Y=; b=W+U7rL1O1dLCWhIi0eeqRqJD6qOexhC8sXgh7nS5LnIgabpjoTDkGlSyzdbKewlOpD0e7SdGlzwtpOgHqf7NgYVMErN+yRo4iInYWRoajob1z8zG/O7jTdGFxHM6ROwKBa57BHOkO2bWr6o3F+5P1pTe+fVWc9ipO4IZFKO8kMXAxXaU1oi6wQVR5GtNuouiXXJ9o9L9fF7GiILMs700R0A1k06A+JlM1vXjKgDAGrztVTFC2z7wPymP6rKPP+rUTuTp5SwpfVbh+1i2HDbnKUlQ7R3pnblJJHieJ/SyhhkbkB+2i9gxeb0N8p6Y21LrEs6ZirTOTe9wrgZCgm8I1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3FlIzzEsf99DtQcRAi4109SfCyY38QCP+F0X0o+ZL3Y=; b=iedSLH68yUSnP6md+Gxc7PvTDsacYVJhamXisVWn5B7oDeUpWLfPgkhkaoY1nsxsAs4aVESKLvGJ2JglG5PzSoODZM7aN51WC0i/xPJnrp9J8126++F58+Phnz2YGOhYuOgpNGCsUHFkRlmX7EUB5WNxL8nbCxA+hSF+WlP+NkQ= Received: from BL1PR13CA0264.namprd13.prod.outlook.com (2603:10b6:208:2ba::29) by MW4PR12MB7381.namprd12.prod.outlook.com (2603:10b6:303:223::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.9; Thu, 10 Sep 2026 13:24:19 +0000 Received: from BN2PEPF000044AB.namprd04.prod.outlook.com (2603:10b6:208:2ba:cafe::6b) by BL1PR13CA0264.outlook.office365.com (2603:10b6:208:2ba::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF000044AB.mail.protection.outlook.com (10.167.243.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:18 +0000 Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:18 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:18 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:13 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 04/11] ASoC: SOF: amd: add ACP7.B/7.F PDM controller scan and pdata propagation Date: Thu, 10 Sep 2026 18:50:04 +0530 Message-ID: <20260910132251.1171943-5-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044AB:EE_|MW4PR12MB7381:EE_ X-MS-Office365-Filtering-Correlation-Id: f462508f-fe90-496b-24d1-08df0f3ed19a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|36860700016|7416014|376014|82310400026|11063799006|56012099006|10067099003|6133799003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: ZDR++ki4O7uBwvPfH1klpdAI46ZHHxCptCw/GWzHPTNI33RH1mA2bCXQGnsx6K7OOud+C7fsIXbrZKwpLvPuhv6CUXtatfzH3SdLaSiESbTR/zwLwbnILm46ZU2sXjMgexHuZ4CpbRou2yA1Exv2OUQpFIOUP9EqUaQydFhIyBgWYtde9RZC9QCi9h5wbyOp3WomTX2PkpK2WgNAceBuCIcW5e+/5I6sYKzYySlBPGXML5q3KJ1DO06HmQPdQyyxSzYLbujDpX+O7eltudYop5yB/+sjKxmw+JszGKNr/DpKWExNxHYeifvGh5LK2M+g5CfG3SwQymtk+hpv3auQyzJcELrYujZhGYuo9AWhXt/sVYT6FsZCaFP+UKvoCHQYG/rZcp3M+Gm8/T+k7TUCvEMlwasSCKzRnd5lhlS9lKvLB0vLXOKOjAY45iBFppZKWb/bU0XrHiE4qtQmFa3jHdyisn/sV3C6QIFRi7yXue4dCR5k5jtFEI4NSa2Uzz4t6pl+94+YjHpGXxAsFxYJUT8avhjXnZGIh+fFmGsuUneJDArjodYFlXYwPBbg//jWkTvf6KKhYG1QJnZxh2K5EEimoO7GXkUNVUyBgjpMhdSAdIiF4iP2UgXQN6eVFU0kIRXLbY3VaoTKZvPASC6QstCwqrEIemOv3SBwrKzn1NLW7PXykAtNYQGWBFVsTBbPSMCxtbqfN805SXYn3IRc3w== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(36860700016)(7416014)(376014)(82310400026)(11063799006)(56012099006)(10067099003)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IZQjfgosE78cf7nnXHunWIGIlP863oJRPYm5hdxIgKgf+1UOjFit3PlRC7nyiZXh8fWcYvX25hMThhX1cgCAfdcw7eX1WMUxM9FX0b5D3qDhjkyweP9szFGnsSlWG3aEYv5Gnrotddec8xlgxQJ+1XB5+vjSiOwCCo6Q1y8NaYHprYwd8Kw9VAbhHbNpWK2p6SJodqz1lnyMtwAh55tUPu1WSSs5N5YZ6DuSRu9VjC+5yGuXUhC/ESbkIJV4XxnlfKUyvoSPmYcSZr0G4jHprljSiaiXWre7BqoYkMN+C+3Noyp7HNrJz8RTkeJU+00+vNavrnM350HjC6ghsUrQgoysJih2vBK+Rt3h+UVQ64XuDm14BXO05jRA+twXqE193TKYIN7pDxbChd9KDOd7zfhXt8RAMOTEdOjwjkwtofhBjWnm/AUwBC+EYwE2rixA X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:18.8387 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f462508f-fe90-496b-24d1-08df0f3ed19a X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044AB.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7381 Content-Type: text/plain; charset="utf-8" Add acp_sof_scan_pdm_devices() to read the acp-audio-ep-port ACPI _DSD property from the PDM child device on ACP7.B/7.F platforms. Value 4 selects PDM0 (ACP7X_PDM_DMIC0), value 5 selects PDM1 (ACP7X_PDM_DMIC1). Unrecognized values are reported via dev_warn(). The selected controller is stored in acp_dev_data.pdm_sel and propagated to the machine driver via mach->pdata in amd_sof_machine_select() so the machine driver probe can register the correct SOF DMIC DAI link. Signed-off-by: Vijendar Mukunda --- sound/soc/amd/acp/soc_amd_sdw_common.h | 13 +++++++++++ sound/soc/sof/amd/acp-common.c | 17 ++++++++++++++ sound/soc/sof/amd/acp.c | 31 ++++++++++++++++++++++++++ sound/soc/sof/amd/acp.h | 10 +++++++++ 4 files changed, 71 insertions(+) diff --git a/sound/soc/amd/acp/soc_amd_sdw_common.h b/sound/soc/amd/acp/soc= _amd_sdw_common.h index 3930cc46fa58..17e4e97fb3d1 100644 --- a/sound/soc/amd/acp/soc_amd_sdw_common.h +++ b/sound/soc/amd/acp/soc_amd_sdw_common.h @@ -23,6 +23,19 @@ #define ACP71_PCI_REV 0x71 #define ACP72_PCI_REV 0x72 =20 +/** + * struct amd_pdm_pdata - platform data passed via mach->pdata to machine = driver + * @pdm_sel: active PDM controller (ACP7X_PDM_DMIC0 or ACP7X_PDM_DMIC1), + * non-zero when a PDM controller was identified via ACPI _DSD + * + * Carries the PDM controller selection for ACP7.B/7.F platforms, derived + * from the acp-audio-ep-port ACPI _DSD property and passed via mach->pdata + * to the machine driver. + */ +struct amd_pdm_pdata { + unsigned int pdm_sel; +}; + #define SOC_JACK_JDSRC(quirk) ((quirk) & GENMASK(3, 0)) #define ASOC_SDW_FOUR_SPK BIT(4) #define ASOC_SDW_ACP_DMIC BIT(5) diff --git a/sound/soc/sof/amd/acp-common.c b/sound/soc/sof/amd/acp-common.c index df656cdc1527..33540f7c421b 100644 --- a/sound/soc/sof/amd/acp-common.c +++ b/sound/soc/sof/amd/acp-common.c @@ -16,6 +16,7 @@ #include "acp.h" #include "acp-dsp-offset.h" #include +#include "../../amd/acp/soc_amd_sdw_common.h" =20 /** * amd_sof_ipc_dump() - This function is called when IPC tx times out. @@ -177,6 +178,7 @@ struct snd_soc_acpi_mach *amd_sof_machine_select(struct= snd_sof_dev *sdev) struct acp_dev_data *acp_data =3D sdev->pdata->hw_pdata; const struct sof_dev_desc *desc =3D sof_pdata->desc; struct snd_soc_acpi_mach *mach =3D NULL; + struct amd_pdm_pdata *pdm_pdata; =20 if (desc->machines) mach =3D snd_soc_acpi_find_machine(desc->machines); @@ -188,7 +190,22 @@ struct snd_soc_acpi_mach *amd_sof_machine_select(struc= t snd_sof_dev *sdev) } } =20 + mach =3D devm_kmemdup(sdev->dev, mach, sizeof(*mach), GFP_KERNEL); + if (!mach) { + dev_err(sdev->dev, "failed to allocate machine entry copy\n"); + return NULL; + } + mach->mach_params.subsystem_rev =3D acp_data->pci_rev; + + if (acp_data->pdm_sel) { + pdm_pdata =3D devm_kzalloc(sdev->dev, sizeof(*pdm_pdata), GFP_KERNEL); + if (!pdm_pdata) + return NULL; + pdm_pdata->pdm_sel =3D acp_data->pdm_sel; + mach->pdata =3D pdm_pdata; + } + sof_pdata->tplg_filename =3D mach->sof_tplg_filename; sof_pdata->fw_filename =3D mach->fw_filename; =20 diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index 5570f3d1348d..37909f2d86a4 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -853,6 +853,31 @@ int amd_sof_acp_resume(struct snd_sof_dev *sdev) } EXPORT_SYMBOL_NS(amd_sof_acp_resume, "SND_SOC_SOF_AMD_COMMON"); =20 +static void acp_sof_scan_pdm_devices(struct snd_sof_dev *sdev, + struct acpi_device *pdm_dev) +{ + struct acp_dev_data *acp_data =3D sdev->pdata->hw_pdata; + struct fwnode_handle *fwnode, *child; + u32 ep_port_val; + + fwnode =3D acpi_fwnode_handle(pdm_dev); + child =3D fwnode_get_next_child_node(fwnode, NULL); + if (!child) + return; + + if (!fwnode_property_read_u32(child, "acp-audio-ep-port", &ep_port_val)) { + if (ep_port_val =3D=3D ACP_DEV_PORT_PDM) + acp_data->pdm_sel =3D ACP7X_PDM_DMIC0; + else if (ep_port_val =3D=3D ACP_DEV_PORT_PDM2) + acp_data->pdm_sel =3D ACP7X_PDM_DMIC1; + else + dev_warn(sdev->dev, + "acp-audio-ep-port: unrecognized value %u\n", + ep_port_val); + } + fwnode_handle_put(child); +} + #if IS_ENABLED(CONFIG_SND_SOC_SOF_AMD_SOUNDWIRE) static int acp_sof_scan_sdw_devices(struct snd_sof_dev *sdev, u64 addr) { @@ -1070,6 +1095,7 @@ int amd_sof_acp7x_probe(struct snd_sof_dev *sdev) const struct sof_amd_acp_desc *chip; const union acpi_object *obj; struct acpi_device *adev; + struct acpi_device *pdm_dev; unsigned int addr; unsigned int irqflags; int ret; @@ -1123,6 +1149,11 @@ int amd_sof_acp7x_probe(struct snd_sof_dev *sdev) } =20 if (adev) { + /* DMIC ACPI child address is 2 on ACP7x platforms */ + pdm_dev =3D acpi_find_child_device(adev, ACP7X_DMIC_ADDR, 0); + if (pdm_dev) + acp_sof_scan_pdm_devices(sdev, pdm_dev); + if (!acpi_dev_get_property(adev, "acp-sof-signed-firmware-image", ACPI_TYPE_INTEGER, &obj)) adata->acp_sof_signed_firmware_image =3D obj->integer.value; diff --git a/sound/soc/sof/amd/acp.h b/sound/soc/sof/amd/acp.h index 16d66b2eaa70..2326b9d2e4c6 100644 --- a/sound/soc/sof/amd/acp.h +++ b/sound/soc/sof/amd/acp.h @@ -125,6 +125,14 @@ #define ACP_SRAM_PAGE_COUNT 128 #define ACP6X_SDW_MAX_MANAGER_COUNT 2 #define ACP70_SDW_MAX_MANAGER_COUNT ACP6X_SDW_MAX_MANAGER_COUNT +/* ACPI _DSD acp-audio-ep-port values for PDM controller selection */ +#define ACP_DEV_PORT_PDM 4 +#define ACP_DEV_PORT_PDM2 5 +/* ACPI child device address for the ACP7x PDM/DMIC device */ +#define ACP7X_DMIC_ADDR 2 +/* ACP7X PDM controller selection values for acp_dev_data.pdm_sel; 0 =3D n= ot set */ +#define ACP7X_PDM_DMIC0 1 +#define ACP7X_PDM_DMIC1 2 #define ACP_DSP_MSG_SET 1 #define ACP_DSP_ACK_SET 1 =20 @@ -279,6 +287,8 @@ struct acp_dev_data { bool acp70_sdw0_wake_event; /* acp70_sdw1_wake_event flag set to true when wake irq asserted for SW1 = instance */ bool acp70_sdw1_wake_event; + /* PDM controller index selected from ACPI acp-audio-ep-port; passed to m= achine driver */ + unsigned int pdm_sel; unsigned int pci_rev; int acp_sof_signed_firmware_image; }; --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013003.outbound.protection.outlook.com [40.93.196.3]) (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 85339489882; Thu, 10 Sep 2026 13:24:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.3 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046673; cv=fail; b=e0UKCkgXdb0lHUHATLNJKD71w2/eKdXEvIj1gbBEmxWUH9t/RQ9JVeBbpW4h8XmwWpjFrpn1hmOCPfPIUt4+ynwobMswmIEI60NxYUqiN/4obT6SHGkJhEoqxYfu6CXk3n//uxbHA6KplyxswGTCwnLuQ6PzA0WLiZVrfaZEpEQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046673; c=relaxed/simple; bh=SP+OXoTB2Ao+b/JiCtFlzmOGCxFGl4jelKiyjgW4d58=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rZYwvsrZh7e0+NAc3V594aeOQg5LD80ANFpvvZOUe8TarynHD6OhV0BgF6+DUrONJKuL4Ftc4/DP0EMC1I90ZXdwE5NSzVZLh6FxNpRsSDdn2erLgjlCYpZqg9EqzDxG3rdivNXi4pyqrrsT4CJRg/sl/jOB84eNvlMa/YdwmZw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=3+DuPzSW; arc=fail smtp.client-ip=40.93.196.3 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="3+DuPzSW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z9Nh37/mN+fv0Li7Uz8dQhzgpLaOTbBa29idmsaqv38D5mp54KL+dR+WT3BHHLzeKGwuAg3MWDWzz9pHeIat3rPSBh/mwtsMDPz3AkrTom3FUMgziJbPgQwZtbksBrmfaPtxRf6XXsb38UWG02+bhRxRPRLH7yGAH0orIFV8Adksm/eSpDuWMl89Nh8lFPxwR0ZUArJ+swS+w0gPeJCa72GQpKnLwCk+pV4RSNoYl9FqYzAVJZCYVnJPlTmNKXqz1wVeoYuL0S6dPBT2FDbA4rlV4t8Ef1RjfFul3pXgyNwome7RMhSmKsBgrzTD+6i+17O/2NxqiWHtL2QPwz0+XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aOQA+KmZcO/V+zZ2h46X1gWgAstcUFOvX/vHBWPKlGU=; b=RRdYnHCBOYY5xGm6s4rZKj+e4/fP+0SuuUNAC8LJWH+c01jJYRJBJM3m1TsmBHUSm/9i9/QHspUXr2kIUtexPrS7cqTZTqsR4Wi9R0ma0RVdV6tFJuCvxUfnRKdGPlQXSfYNPU6eKlur+vVGsHtHeV12npDRdE/ZGI8oB7/GDt+46+SnI0J+sJE44XGTTy8Y8RCt0yhCRNa5/LdJ++SZwaNRnfFwXW+T+ScApYV/xlNXg7jO2Cp1u7LTpBm9YbKjV1lHGvwAbJytxIxEUg15hSa9hYHMtqaERfJaTgkL1He3e26RtmNL4BrkmbZbiHAb9J2pKy77/EJjDAf/8J9vPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aOQA+KmZcO/V+zZ2h46X1gWgAstcUFOvX/vHBWPKlGU=; b=3+DuPzSWmNx9gW2x4F3TsG/YyAiVbHBFHfnpWbGTzzszQpWbbEFQca4XYacec0X6+Q566qHjA3sG/ZGfOmIP3C0b1RcNCP5UcXQx1bMnZ73smqLmZzUYyeQYRUccgnJPDcQzXj4eD0DlmoSGrRvz1hsIAuY/jOgZPqInrX/aO94= Received: from PH7P220CA0088.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32c::32) by IA0PR12MB7531.namprd12.prod.outlook.com (2603:10b6:208:43f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.9; Thu, 10 Sep 2026 13:24:25 +0000 Received: from BY1PEPF000264B4.namprd02.prod.outlook.com (2603:10b6:510:32c:cafe::3e) by PH7P220CA0088.outlook.office365.com (2603:10b6:510:32c::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.406.8 via Frontend Transport; Thu, 10 Sep 2026 13:24:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BY1PEPF000264B4.mail.protection.outlook.com (10.167.242.121) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:24 +0000 Received: from satlexmb10.amd.com (10.181.42.219) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:23 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb10.amd.com (10.181.42.219) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:23 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:18 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 05/11] ASoC: SOF: amd: update SoundWire specific acp descriptor fields for ACP7.B/7.F Date: Thu, 10 Sep 2026 18:50:05 +0530 Message-ID: <20260910132251.1171943-6-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PEPF000264B4:EE_|IA0PR12MB7531:EE_ X-MS-Office365-Filtering-Correlation-Id: a7697747-3e04-487a-9853-08df0f3ed4c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700016|1800799024|82310400026|23010399003|3023799007|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: jbj8utpc94uGuSEdm0ckz8qc3tShqNJEMSy2x3uX1/GurxiPw/tf6sJIUAJQpzaJyBn1MYVvWOe/dn5IEli6F6sEqTorVPs2PA23VwUSl/JZPxt+N7WlAX7kRHHiTOzgkI7yPT+1GmkdoaMuZCuivN1z4ekuUpTH4yY0tS0HsYtLwF5csZQOx61krh4kVS1WPp8f4CyHls1d1zItmMu3ixJIzGRY0e0dTaU7Inl6FwJKVDVXVRjzdeSrtNP07UBBVwvIqv54V3Z29GARuICnFbryx8Jh7104/g6e+MG14m3uPqNL++RoNqczjoqTVWhNPhr+UPSBWeBtMvGdYDvgeGjSVrnDACLOahx9z53QN6p6vbJpXkNh1HkT7gvXtQD6dyYMRqkqazKqYfTA9G1JzTu3UckCaYhiQ4Fyg6nhbA1aFmkZa2CRPicHUHohALpeeZq24aHqaUid/XMR1CpoOcqpNsp7F1Cy4Ku8EboM4IF5cyltPAI/DDpDi+B/+jO5OATCJcfdNSwzYOWgXc+0xRB79L4338cTKGpZoSkI2FMQvDXUXuDY/zVc6du1dRivlJXliOEFeIh6TDASAy0zVZW6nJMycITGhk7+CaMJVcXVlh4c+OGbOLwtR91PMUh7AS/yqT9k5kjwe+8wlFBngXc8v36IfjaolTuRcMXjRhdURoZbABZyL8C7ryu1SOrvL184gWxAC1z2ffS9oBLZzw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700016)(1800799024)(82310400026)(23010399003)(3023799007)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jOEwypwqtFsCYd4O8Mc6Q97HtlWP7J8WwVSBf/ZsIZGPgMSeP1rH5StXsWJ0jlDCo+Kt1R2T8Oym71hWgC1Sw4fhD9fFWYSEtoU5h8xATS65q1DhnhsdvhCmnZPKo27ozG8auEAq6/NotQisqklaeGQroMBquHGwkQBI5ama7wLypztXvPvtkAxe6A4GwNSxEskBE9aS0tduXBZV3YNA0FGICfyHcr11QoeJVOwZey3evhBBi2/vGO7d9gM+cOwlxteZtMTkbHVug/q47jUyi3tSExPCCV5UQwm0WL1M4jQhlWcqsfcXzfAqHs/VMFlu2pWq3obMxIav2+wCwQcm80bPmuE7yjjOwsDIIpMuYPQeI4dN8BJfzlqlXPxtDtjdrMcyz0frHvikVanCQeSK3mF8GScvMleG6aCIOvsE3AICWRd3lDolwmOXbhkcTcm5 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:24.0797 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a7697747-3e04-487a-9853-08df0f3ed4c6 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BY1PEPF000264B4.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7531 Content-Type: text/plain; charset="utf-8" Populate the SoundWire descriptor fields in acp7x_chip_info so the SOF core can locate and enumerate the four SoundWire managers on ACP7.B/7.F platforms. Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/acp.h | 3 +++ sound/soc/sof/amd/pci-acp7x.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/sound/soc/sof/amd/acp.h b/sound/soc/sof/amd/acp.h index 2326b9d2e4c6..47e475de8b4d 100644 --- a/sound/soc/sof/amd/acp.h +++ b/sound/soc/sof/amd/acp.h @@ -128,6 +128,9 @@ /* ACPI _DSD acp-audio-ep-port values for PDM controller selection */ #define ACP_DEV_PORT_PDM 4 #define ACP_DEV_PORT_PDM2 5 +#define SDW_ACPI_ADDR_ACP7X SDW_ACPI_ADDR_ACP63 +#define ACP7X_SDW_MAX_MANAGER_COUNT 4 + /* ACPI child device address for the ACP7x PDM/DMIC device */ #define ACP7X_DMIC_ADDR 2 /* ACP7X PDM controller selection values for acp_dev_data.pdm_sel; 0 =3D n= ot set */ diff --git a/sound/soc/sof/amd/pci-acp7x.c b/sound/soc/sof/amd/pci-acp7x.c index 532e15313795..0594c1f3deb6 100644 --- a/sound/soc/sof/amd/pci-acp7x.c +++ b/sound/soc/sof/amd/pci-acp7x.c @@ -40,6 +40,8 @@ static const struct sof_amd_acp_desc acp7x_chip_info =3D { .fusion_dsp_offset =3D ACP7X_DSP_FUSION_RUNSTALL, .probe_reg_offset =3D ACP7X_FUTURE_REG_ACLK_0, .reg_start_addr =3D ACP7X_REG_START, + .sdw_max_link_count =3D ACP7X_SDW_MAX_MANAGER_COUNT, + .sdw_acpi_dev_addr =3D SDW_ACPI_ADDR_ACP7X, .reg_end_addr =3D ACP7X_REG_END, }; =20 --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012047.outbound.protection.outlook.com [52.101.43.47]) (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 E437B37AA6D; Thu, 10 Sep 2026 13:24:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046677; cv=fail; b=baJCCqJBoORJVPSwORBK1ibC3bolK0erOBpoPKVdfDtAPTkOSnlINJMqyOZketZvkFvxi6YJvGP+RZnSqkFcZJV7sx6CWbZj9ey/h95RUpxnnxwQSzEOmHtp5BQkJlRJV3Vu3951cc0/PcpBlGXIO90BNxFIfmdGt/rAjhzSOxA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046677; c=relaxed/simple; bh=t9nxrc8CXPp/87L/6SXnEbchmJI4NMEf3lr6/aXfebA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Nc2UKzWjs/M9W//URQhz81QXthfhapKJbaVB6sx3lw/IbiPQHGrUEDygs8Ui/NFGYKjVBaU14Gr8vIu78ym4a2li/kWwQSwSQPNa/h6mkErlxL+vRYlYnw0iTbm/m0RWJzRbI2WLGIOfMK0n/yBoLmvI1Fy1nS46gx+Yth+Nx5M= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=SwdQhLt0; arc=fail smtp.client-ip=52.101.43.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="SwdQhLt0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Rlegryd2waCKC95hkIfpyv5KtGJm7BRJBAqWVQfX6e1gwdnXCSWX/W6MblYofEAjyIYQR5TgXu7UEq5ZJh53jYHIfIe6T3VwSKO3BJva/e+0nbMe+zBbAJeQ/IJW6kkt3Ao34WlJr9XwC3IuyH9I/yACJwepqVVCm9x27rIMQI63zVG1DjwKDL2DoI/9SYfkfXQB2Bw4F69goJFtEU+17zhllvMS0tdBdFTXAYQow/mIQ0kzeDPa0VG5GBo6jwtAaZcMHchrH3xCfjPWC7jr4u6sdrGiOXbVFU8DmwuH7t2LCilxMktL8yqh9IpijhLROVR/bTiORuf+NwJvFsDh2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7CfYy4C8dP/mBg7vzEoE/Y742fPvu54oWx8zNceHPpU=; b=XYu5CrPJTP6sxZJft6+CY43Znw47vYxUVz30dJGiPhRN/V2uTO+BjTDizoQdn9sWNR8K1wyX7h5mP7uKUGaXFOdi9dgyF9s4ZK8gGxmJqqINImmM2LfR7vL9jBo39IEGFlEv1W55yuXt8JZHfvcEdQkj6/qGIhGg2ck15+EbeNmfBttKnE8vzf3s3T1D3jrjkj0v6iJaoeYvusBhuZfRawZ0P+063y8rQceFyULBqZJFQhETJL3JpJkE4Uym7Uz1c3AhRtSrNkMkS2wzei3kHxduW+j+04A1ea/KHPwrH64EgEBOq1CwfPAR+gu8hJwlpMspPtDtmzN+XB4HaW7QOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7CfYy4C8dP/mBg7vzEoE/Y742fPvu54oWx8zNceHPpU=; b=SwdQhLt0AmO0E9wNyF7k//NoqC57Yc6sdV6LSKVjsq+HymbnmH/VQ9j7O7bbXgbWvPHMcLNmBsUOy8f3gCcU198ge7lczt/yuhS3q8pKW7mcQan6kBhwV+gUjZBVhSmOULoTiPqzjJl9kzYAqUk9LZQSy2YcVjBp6QPmUCZL8oo= Received: from PH8P220CA0020.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:345::12) by IA0PR12MB8326.namprd12.prod.outlook.com (2603:10b6:208:40d::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.9; Thu, 10 Sep 2026 13:24:31 +0000 Received: from BY1PEPF000264B2.namprd02.prod.outlook.com (2603:10b6:510:345:cafe::73) by PH8P220CA0020.outlook.office365.com (2603:10b6:510:345::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.406.7 via Frontend Transport; Thu, 10 Sep 2026 13:24:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BY1PEPF000264B2.mail.protection.outlook.com (10.167.242.118) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:30 +0000 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:27 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:23 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 06/11] ASoC: SOF: amd: enable SoundWire build for ACP7.B/7.F Date: Thu, 10 Sep 2026 18:50:06 +0530 Message-ID: <20260910132251.1171943-7-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PEPF000264B2:EE_|IA0PR12MB8326:EE_ X-MS-Office365-Filtering-Correlation-Id: 6cbe9571-e8ca-480d-e966-08df0f3ed8cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|82310400026|23010399003|1800799024|36860700016|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Mh7SLZwo7b1rzk7rsxOLSxwBHyheAKWZOg3p8dFGlp704wmoPSbgYklJc2Z7K1o/qYMKe8Ps1U2JRNcmbL/x1debN9SJYj6Uz1rGu7YQGXV3v7vD6cRHPrWMszjnBQEFDsJUGNikfJYblI7I2tkCOUBqZj3/nux+OToIWCGw2e9c+Xq7Fft8XcTcXnikq3waCLww7JKyVT5tJ5sy+wTpHAAG9i94V7xVHxq7jKwuRaThRL/eMr1mA+viReAA0437Xaa2yRiwngxIfRGH6yWjAQDc1XxBy39X3Xp8gHWztr56Ls/uW3Lwb4DKIe7rvQql5Y2ms8SDCjeT3GmqJVoOQwpzjEROgg0gNJ3C72C7dLmZo8aVJI/UlvhctVj4qfDQnwquhMBZ7KisK/QcrbXoX372sSnD1hJGkdmY5bEwzlAMq0x+tmm+xv0v0Vu2VKUNDaHECzE9W4rIhsiWqoHRaz/puN7EKEBlSXTiHcMiKzUcDStfBYFrQfvmB9y05F/FuOvMrdbRpknfstXkNBP8nQHEAbMvEG9oS4FDG4WLzmFVA01onO4UQTej65uTQbXLLZM8maqVc/ZtuPY/Y6EQOU4ykK2/x0ujDUq0tVqSd8EaDvI4/tyozG4AssmPT2+MCVj6bQYcS6uJog/Mb2GL7xBYLgXBiFleA9eSIo5OnfgSBMcAgJC6D0ttF5DCnpRt/bFrRKKwsXzz0ZR475TeVA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(82310400026)(23010399003)(1800799024)(36860700016)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9fWCnvGvqlRYU2SNV9gVF+UImnHspTiYAB+n6F9fnWUp/er84nNv+FVLhE7XPkTrjrn2WK5C7vqiMEys491Kj+oLucY5dnYPXcWi8RPDQmHJ7JEZxxHf0o/+MTp6CtpG974a8fYKpr2e6uUheRRlRk+mlI1UCoqZk7f7looJU6mbdOuB9sr0H8wsZ7ZJOK0wBqEvwJBTgAWkYrhXquWjs+D8ENii/maUWK9IdsWkT/WrZNQL9/ujR5t7OYdHXVtwLbuZZgx50K/MaNexKPYewOrtDs4jdt9tP+kTR4fvA5/4F+wIz/Ji2IZWN9M4Ve50lmq+1vbVwdSI8fYAO6p7EcuYHVd3gS5yloBW+nWDr6azg0BL23LWASGlWaGGkZuPjqgWTxi9uqw0Ibni1IIUFWKHwXR9h1IaurFH9sAD6+mapX0pbwg6Ia5hGbDP6GGM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:30.8269 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6cbe9571-e8ca-480d-e966-08df0f3ed8cb X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BY1PEPF000264B2.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8326 Content-Type: text/plain; charset="utf-8" Select SND_SOC_SOF_AMD_SOUNDWIRE_LINK_BASELINE in Kconfig for SND_SOC_SOF_AMD_ACP7X so that the SoundWire stack is built when ACP7.B/7.F SOF support is enabled. Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/soc/sof/amd/Kconfig b/sound/soc/sof/amd/Kconfig index 903e7ec3b3ba..d64f682cfbea 100644 --- a/sound/soc/sof/amd/Kconfig +++ b/sound/soc/sof/amd/Kconfig @@ -109,6 +109,7 @@ config SND_SOC_SOF_AMD_ACP7X depends on SND_SOC_SOF_PCI depends on AMD_NODE select SND_SOC_SOF_AMD_COMMON + select SND_SOC_SOF_AMD_SOUNDWIRE_LINK_BASELINE help Select this option for SOF support on AMD ACP7.B and ACP7.F PCI revision based platforms. --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010028.outbound.protection.outlook.com [40.93.198.28]) (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 A3D764908D9; Thu, 10 Sep 2026 13:24:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.28 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046678; cv=fail; b=nM9J87vWin5H++UAXa8jb/cbtYap0/rJL5O5Cy7tPQl63vnp5GN9KIC2hRVUMux2reA+SFeFax8tKQhs6YlNzjsOLCFlqtZeKpxBHfYNcOLEo/t9eYD10I5hI7m6ZAZvrMIpR5yJMl0owrRnczgKVclcbszvyh8DXQbrg7T1mck= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046678; c=relaxed/simple; bh=YTXN/WCk2ht4NK94ql/bPnHWyar3zUu28qBjuDokWPs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=AxtgobgJzH5h83QZULrpQVWKP19xbvrXfhCF6ltOcajtgSAcH3h3M2nunOwQuCKindYLp1R544fdPdrLAjw0WDiT1AVDV84FMujr3/iRcSjAgFsPES597VLj+oON+8A7DapvaGoFO8at++AKSqleAdB4ryCmQLK5LuxWXg+q7Mo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=wAI49dtI; arc=fail smtp.client-ip=40.93.198.28 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="wAI49dtI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gv5wvTe/NtkqdxG/yWI6gRqk/7T/RAO7oI/ygDMPS8sJOHjQWzCBdiSJdo8OuTknCRykDn2makUonmAmylBAtUPcPPU2mQjQcxMuAdtW43Y58GIC96W3TsiYymKCFljCxQAZ8mtxSFGlWuU6OWl7gGgtT3IFF3F/BNLRA+6tSc9I/D7wGvlv9h/cRTyZtl91EqVbfJxACLlcoAMUHl7AUCu8jQZXW3/IE7RiNmjRz8QzObJfHY0MxYHQjkMFxE6e2bw26ZFNjEiMoyUpwTD2lGy99CzMoXHxcXLit4sXadidNhF64KeEQyvU684h7dHef4Hll4TOjm1nphtir0bR0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=M4Y3cEKzgO1DgVL69Nl6RATSQqiXpuJucoyPzek7mJM=; b=hrGwfV2Or8wGb2TW29btSfwd0py/7Dhb3NX/Mzkg5i4UgUztxAJ2Bnthb7GeFZZBuFqMj7hQIlFHlpdmmgHiBJIokOYbaiuyuIKOLcfsOhflzTHa9OSWYK2QNBSrfLikkkSWJQ7VHz4WJNg8Re7yEoWgRRSXUaH5u3JJ0YBanS0fITjEBA5wUg0jPQ7Rkw8hkCpw5e87VPJV2BXY2RaBC8vRgYgTm2L0bD3GDXW8n7OKm27YejJ8auy3sibf+9rAi5OFyIDrTBxBAcC64IKrKnG301Kykc+9YJQ3XbsMRK99kHen6ZzzGXFJShTCmGT8I45iXsRPegvTXu5lqLPi7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=M4Y3cEKzgO1DgVL69Nl6RATSQqiXpuJucoyPzek7mJM=; b=wAI49dtIL72q3ToQjYSDs56kOOpYHGMi91ls6QK1Qpx1hFJIBjd9wK8Mh5mgc2Lu+kb+fAWcEsIfOFHV7SS8V2Gp7762kVUizYbYTJ+cJBOWNcLUOyFrLkXW6DqZSxb+NNV6sAuYagsf0V1rKEIYBjyYbSBcHKKY2MEX4cnGDrM= Received: from BN8PR04CA0045.namprd04.prod.outlook.com (2603:10b6:408:d4::19) by IA1PR12MB6484.namprd12.prod.outlook.com (2603:10b6:208:3a7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.9; Thu, 10 Sep 2026 13:24:33 +0000 Received: from BN2PEPF000044AC.namprd04.prod.outlook.com (2603:10b6:408:d4:cafe::34) by BN8PR04CA0045.outlook.office365.com (2603:10b6:408:d4::19) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.406.9 via Frontend Transport; Thu, 10 Sep 2026 13:24:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF000044AC.mail.protection.outlook.com (10.167.243.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:33 +0000 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:32 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:28 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 07/11] ASoC: SOF: amd: wire SoundWire probe and remove into ACP7.B/7.F paths Date: Thu, 10 Sep 2026 18:50:07 +0530 Message-ID: <20260910132251.1171943-8-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044AC:EE_|IA1PR12MB6484:EE_ X-MS-Office365-Filtering-Correlation-Id: 420661e6-cd29-4f99-5ea7-08df0f3eda56 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|82310400026|1800799024|36860700016|23010399003|6133799003|22082099003|18002099003|11063799006|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: kb1d6Gw074I6mB3ecgkpignFAq7zsrcirCx0JK5q8/Hpcu6HPtdJ2IFHDICj/mwjJ2A6qsHyKFHJ+NOikmzKn+WjJT0qRg3CHnb955du3fciJTUQ+81YuLLpiIkFXNK9lBGuQ9nIPlC5Sjp7iwqYkowbQ27kSZWbUVnpQUXhNzO3C5DHDxXSVEsZlk0PAr0X95IYJ/00yItxETBtAXYm1hPpzAAbrPb+8AEY7zL+9hSRzheQ/e15LscpxaZ/AdeKNngXH7OqgD+iw7Uu3XInQTT3O8V0h99hva/Kcf4gN6+p+CT89VQ+IsgkEwuuuLiCqKFdOeXj7V3NzkofktWmxFLbR4QmfhfwSbJrj0JWa7h+yqxo9gblAmbI0pvVb+v8wTPGeMU0+80JMFlkK44UPUjsy9SFhAyC+Zjnf64MxaifhfP7Yssr6BRii6QcNGRco8/RZ9hjxtmJw6ecC+K7uoPm2bYmjyZqlnVRj2zO+IN8I9JPv45FdJvdgHgDzZ9WvFP5erYplBvOMPc7iMVC9H2EtHSUb84OpPBKTE8Wca4Yrezr53P591m++X+wqtU9XEeNRZXJaYypazid3JK3lhFWmZ19Hn1kqd9AaQ4DrwzQK49ILrOjVJJUPCtIRLlsR6TH3i31yHV4B8rKuB1YQ5i+HPasi8LovVE1ppShZ62jeoMSQo8ch+P4OlRmOIzwoJmpmNeNDs9phLgtMT8V2w== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(376014)(82310400026)(1800799024)(36860700016)(23010399003)(6133799003)(22082099003)(18002099003)(11063799006)(56012099006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: k88+aKtBixk6+RjE/mO/SougmrDRjUlT0iCOitILjZ7cVunazzed9P6eLPTxx1kW5UQDAD28B0E4+kY/oWRurskHhTpByP9GfUbX8/e5DofCLTOFizQsq4P3mPFIm11vGzB6uYL+fhjhEgZAKexViwvIvfRP6H3gofpda0V7xtbozZOD+Zee5xSMWlHfuXNyAOsQeT0h/uNeRmmic0DEUp2zzRo88TfYBVTG6xQftCt6nKOSxzag5fD6gOBXLKUZQFIYpliWF5CJu+A+IcCuAyRJCdVZkehuCThSuUh00EoLhN2t5NtHDTi28D4i2UIlgHDu4hmR+MzZbTJZpK8pBQWebngCEkoMU6KLMRQHUrAvENfC9vTeFJbdg0fObooVNuPMCL8vnhm+MaIMAvFmdZCOS6Guyxs+9bZvWZ4YCyEuKGfjeicZ3F85zq35Qw33 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:33.4930 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 420661e6-cd29-4f99-5ea7-08df0f3eda56 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044AC.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6484 Content-Type: text/plain; charset="utf-8" In amd_sof_acp7x_probe(), scan DSDT for SoundWire peripherals via acp_sof_scan_sdw_devices() and call amd_sof_sdw_probe() on success. In the error unwind, call free_irq() before amd_sof_sdw_exit() so the IRQ cannot fire after the SoundWire context is freed. In amd_sof_acp7x_remove(), call amd_sof_sdw_exit() after free_irq() to prevent a use-after-free: the IRQ handler dereferences pdev[] entries freed by amd_sof_sdw_exit(). Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/acp.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index 37909f2d86a4..a900dbc1de20 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -1148,6 +1148,18 @@ int amd_sof_acp7x_probe(struct snd_sof_dev *sdev) goto unregister_dev; } =20 + /* scan SoundWire capabilities exposed by DSDT */ + ret =3D acp_sof_scan_sdw_devices(sdev, chip->sdw_acpi_dev_addr); + if (ret < 0) { + dev_dbg(sdev->dev, "skipping SoundWire, not detected with ACPI scan\n"); + goto skip_soundwire; + } + ret =3D amd_sof_sdw_probe(sdev); + if (ret < 0) { + dev_err(sdev->dev, "error: SoundWire probe error\n"); + goto free_ipc_irq; + } +skip_soundwire: if (adev) { /* DMIC ACPI child address is 2 on ACP7x platforms */ pdm_dev =3D acpi_find_child_device(adev, ACP7X_DMIC_ADDR, 0); @@ -1191,6 +1203,8 @@ int amd_sof_acp7x_probe(struct snd_sof_dev *sdev) =20 free_ipc_irq: free_irq(sdev->ipc_irq, sdev); + if (adata->sdw) + amd_sof_sdw_exit(sdev); unregister_dev: platform_device_unregister(adata->dmic_dev); return ret; @@ -1204,6 +1218,9 @@ void amd_sof_acp7x_remove(struct snd_sof_dev *sdev) if (sdev->ipc_irq) free_irq(sdev->ipc_irq, sdev); =20 + if (adata->sdw) + amd_sof_sdw_exit(sdev); + if (adata->dmic_dev) platform_device_unregister(adata->dmic_dev); =20 --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from BL0PR03CU003.outbound.protection.outlook.com (mail-eastusazon11012028.outbound.protection.outlook.com [52.101.53.28]) (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 2AB8B48A8DB; Thu, 10 Sep 2026 13:24:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.53.28 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046683; cv=fail; b=j1kxL1VE67a0Ry1b/M9d6Qocs8caic2CTZ30wCDlfOUjRUimw9GOs8JJ2ebDCxf9tnYtNYz4/AMmqOT+2/BpIM4aQY54KK6cbC4fFDMsEYyvwacWRQGCzZ8EdVQWi2rJKXWtGZSMkPYLPyMSR6D9Pp5kXbuzdHuyQMUNREkxYZw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046683; c=relaxed/simple; bh=1opZJ/yjEYNE5y5eys04lmKQQJGh4VFdp8aMlNyhTDQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JyAxrfNyzJTEdbjxpkFsPMfi5P8yoWFjqBcXEPUiD38lEVXHoASTEKhwHE0aeMT2LDbJ4+6wDCbxJQImCxc43lXyWMBedKzRuq8BRWcChLEXg7NC+yykTbMDW7j3t6+BvMERTL+G+7XGDY7RUQIRrneQcB/piAT1sjTBsGwcZCw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=QvwK20FZ; arc=fail smtp.client-ip=52.101.53.28 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="QvwK20FZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Fv/Zh6F3UFnVYo2au8MATKnbZ/gKE6AZKv/Jdr7lz/VkeqNqS9XqC4JG8XRTXQXPgcfoJWCDuk/F6OhctSH6J7O9m8EeAVmiig24k+iemSPoF9ZYxCWozKa82NIUIhrSVtX4ELxi3d0UDN6dwn6KuMk89aHChO0W3SllkwDR8Qe6BUXftv05jlg1R6OihD0F6htELgFDuj9S28V2T4L0+cnMGjLunl0+RWTCfRfMIgPRoOFo++/GxyhP2XJIi8HKtnmZWbUICiE52fx/TAkDkXzuaQwZpmq7uKxtgzGLe82Jc013lAeQHWBd04yEMjQaJSdx4mnQKn2qcYxvENckLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AgVlPsthvwnyWUtwx4gOuU8oMMCiC162pioCSqOutCY=; b=I4BVmp4kZSmTvrIrEFv3OgyFvAOMXuH+RRUfBwWo8eNSH2KuQhvVccC1CsS04MPVlOgarXURom+dGbd39aziDWCGCMDSox8XlCwg3KkHJQ4w3lXz0ELZLkeV1UP4Tmc4H7VoW9h7zsO812cXAuBjGeTvZ6KPjJkla106bwGwCuRVFJ0L5fKkFpZs4EJ7wk4WIqT7FLfm0DpiDE0vxVcXLF0L+U+e5kbeRTs+ZvwXJ7/6OpRSlWjo/B+5cKXWiv1liKS4gjsq3HDonOf2J0SLgfaRMreRaq2gSf83fabJK+yy8l13JaT4Wo7TDhLFaafYaySo072e/H9B6r8BFQma/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AgVlPsthvwnyWUtwx4gOuU8oMMCiC162pioCSqOutCY=; b=QvwK20FZ5ubOtifJuvusWrMpFrNIQR4lHKemml3Xd2vxeXVF5Fw21MZSkjh28gJxuU11ITRmtVMm6SkwmPhed6AYkXmiWQSpGdlqSvpbnusWSb8FFhvMGni9L+RMCP6MhtBFI8CnHn8aAMNeAu4htLag2hVLGRfdL+w+f6HUh3Q= Received: from BL1PR13CA0267.namprd13.prod.outlook.com (2603:10b6:208:2ba::32) by DS2PR12MB741322.namprd12.prod.outlook.com (2603:10b6:8:3c0::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.8; Thu, 10 Sep 2026 13:24:38 +0000 Received: from BN2PEPF000044AB.namprd04.prod.outlook.com (2603:10b6:208:2ba:cafe::51) by BL1PR13CA0267.outlook.office365.com (2603:10b6:208:2ba::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.6 via Frontend Transport; Thu, 10 Sep 2026 13:24:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF000044AB.mail.protection.outlook.com (10.167.243.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:38 +0000 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:37 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:33 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 08/11] ASoC: SOF: amd: add ACP7.B/7.F clock-stop detection in check_acp_sdw_enable_status Date: Thu, 10 Sep 2026 18:50:08 +0530 Message-ID: <20260910132251.1171943-9-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044AB:EE_|DS2PR12MB741322:EE_ X-MS-Office365-Filtering-Correlation-Id: fe3866f4-aa5c-4c5e-4434-08df0f3edd41 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|23010399003|82310400026|376014|7416014|1800799024|56012099006|11063799006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 1Q7ZIyA7CuT+pzDXJ7vCvyUf/Q+QfeYbtE6UVB/etl94EyyAj5YyoXllgn6KJ6K74rsFdT/M3GX8O+HHmnFD1nqJhljm6m7xNGtO3dDJ6L1VJVnif7LlNEXMMy+lMPrWy8K1LvEBGlD7qPQxRXCbxRlvWSslzBZjKOzOfMwZyxUMi1+SMn9+2BugrhBD7Sx8V4UJ8rqTuOn3vNgXvQGu6KN/bsh6utVa9k+EhlrYbICQv/9DxzkN/tbXnrBi0VuhgIv7GG//pMTwvDWIGKKAUHq5bHaL2gnq6uqIhBYHjw0FMa4bETQVus1j0t05xyd10DW2/LOP1CQtWgyve3KKZQeHIfKZrw6x+f+9H/f6ASrmcEpZRhMbhhoEkmncAih5L3JOpgKzwM4JzqC5uGBJ3RYAZaX2DnxBuTgDAv+X12ns3d/eESIOtJiGIkVyqaKZchQB5acAUIgmIcJMVwAZ4Ol+M/MBAGybSrFiLg+j96pevNTD8M2rux9+QOWXMzdAiqbUoYxM2vWPb8rxJdxZky+wus6I0YbVz7mSM6bDb/YHog5D971Db5bty24zAE2KBUO3+yx3IK0iOFh8yajro2xNLSfZu21M6knCMvaUJxIz0rMFNy3mUyJa8lHHvFqzbeHgUC+ec5IJS6YRuxj/wClXR6nnslQPRNTh6HnKWOKcg6G33LyxxUT5+7KIi54IcvZcb8tXC4cO8WSvCGV+zg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(23010399003)(82310400026)(376014)(7416014)(1800799024)(56012099006)(11063799006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2s36wi3cbCIkRVrvz93NCKKot2XIk8aq1tdTJT2QVNpryOwQVVEDaLeEb+OXYEDO+vNlf9rDLyPgDsWUyGiEdsBfPRIp23slB+E2CpZ8m5jb5a6ay/1no8ZpBIXe+SneXcXG7YZh4s2076OCtFjzO6AaSbO7xaIjDwTr0eVqE/GMECcwTjBPA6QFaF2rgkfvNTDNwD6wdbcRjczdRymuPw753ILT6AGqzVV8+DeoO9ZKAEHWjaqeo2Qur29nk0kKayo0gHHTY4mQQV5yoU2TpxrENnKGL/z3d501NQ+a2oTFLRoyCfpV8n4HuA3kONoTLpRgY08d4/ttHywfZ9uyFkZ/JCssnDrOALdclQ0waNwC485FnyC7zq/vtbLJzdOW91LpR7hc8PF2gql09qDn/lNJgbwGwQQFj7QG6jJ8TiJb39sI155R7iXA8fwYLN6j X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:38.3913 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fe3866f4-aa5c-4c5e-4434-08df0f3edd41 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044AB.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB741322 Content-Type: text/plain; charset="utf-8" Extend check_acp_sdw_enable_status() with a pci_rev switch so that ACP7.B/7.F, which has 4 SoundWire manager instances, reads all four SW_EN registers to determine whether any manager is in clock-stop mode. The existing two-manager read (ACP_SW0_EN, ACP_SW1_EN) is preserved for ACP63/ACP70/ACP71/ACP72 platforms. Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/acp-dsp-offset.h | 2 ++ sound/soc/sof/amd/acp.c | 23 +++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/sound/soc/sof/amd/acp-dsp-offset.h b/sound/soc/sof/amd/acp-dsp= -offset.h index bea1bd3afa70..74abbc834d71 100644 --- a/sound/soc/sof/amd/acp-dsp-offset.h +++ b/sound/soc/sof/amd/acp-dsp-offset.h @@ -156,5 +156,7 @@ #define ACP7X_IDMA_ERROR_MASK 0x1FF9FF #define ACP7X_ZSC_DSP_CTRL 0x001014 #define ACP7X_PME_EN ACP70_PME_EN +/* SW enable base for SDW0; manager N uses ACP7X_SW_EN + (N * 0x2000) */ +#define ACP7X_SW_EN 0x5200 =20 #endif diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index a900dbc1de20..a4ca4f78e106 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -779,15 +779,30 @@ static int acp_init(struct snd_sof_dev *sdev) static bool check_acp_sdw_enable_status(struct snd_sof_dev *sdev) { struct acp_dev_data *acp_data; - u32 sdw0_en, sdw1_en; + u32 sdw0_en, sdw1_en, sdw2_en, sdw3_en; =20 acp_data =3D sdev->pdata->hw_pdata; if (!acp_data->sdw) return false; =20 - sdw0_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP_SW0_EN); - sdw1_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP_SW1_EN); - acp_data->sdw_en_stat =3D sdw0_en || sdw1_en; + switch (acp_data->pci_rev) { + case ACP63_PCI_ID: + case ACP70_PCI_ID: + case ACP71_PCI_ID: + case ACP72_PCI_ID: + sdw0_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP_SW0_EN); + sdw1_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP_SW1_EN); + acp_data->sdw_en_stat =3D sdw0_en || sdw1_en; + break; + case ACP7B_PCI_ID: + case ACP7F_PCI_ID: + sdw0_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP7X_SW_EN + (0 * 0x200= 0)); + sdw1_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP7X_SW_EN + (1 * 0x200= 0)); + sdw2_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP7X_SW_EN + (2 * 0x200= 0)); + sdw3_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP7X_SW_EN + (3 * 0x200= 0)); + acp_data->sdw_en_stat =3D sdw0_en || sdw1_en || sdw2_en || sdw3_en; + break; + } return acp_data->sdw_en_stat; } =20 --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010005.outbound.protection.outlook.com [52.101.85.5]) (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 5994F481FB0; Thu, 10 Sep 2026 13:24:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.5 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046688; cv=fail; b=KwIY/JaY06abNClSQADv25Uai2a5iECyR7AshQx765xQVMxkahD/OzYIEumzefn0o4gmpwygxSkbKi4n2/2zDNew5Qt4DkC+KwTXVbD+dqh7hY2jCYWeMVLrwfZ6X3QrntEH5PIvFM7Bm4LQy1bTw0I6Z2NYcxOBAafF9EotKT0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046688; c=relaxed/simple; bh=YvpvnAN42we2MwigPf4Vr7EGTiPWFzITacIF3L4sGkA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nvzv5ltG3SPHhVPTDWFnVAJJIFJBgkoFIyO6i06P+zQ+KAhySJN7Gp1HhuI3IW5c0trUi8Nu0MT7y8MbdfXLrMWAAv1sCjCbC4Kvv3H8SuoBAzhlEnFNW9m8kLId2rP6XCBzAez432E0dWLgt9QcgHSyUvAvZAMws7aCw5Sw/0A= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=cXtZFpgg; arc=fail smtp.client-ip=52.101.85.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="cXtZFpgg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Hego7RNKFWNnz5ZL2LmpSi+DF20BOt402QFW15be12Vemz8dId5qTlkxUIu9KF75BChGvFnnELcFEXOTu/Jmatq0j5w3gXhTM3fPuDgLOFtQbKn7/p8CYH6qdF2MPdB1VgEChH65eWX51vxru7xATRuRmTPrt6DpFU72kqYMEuzqSlo4SkYvlLh3MLUQ3cs6M+sf2qD7EL2WfZZybx/gPsIvWBn7Q9n3IRQNphy6NULM27ZJB4vVpX7oU9GAQ3MWbKMiMGlmeU70USNKXcU+0aEceKVCzUi5odexO4FCxWfqu7cWH5DLBaIXfuQ8mJftdrtORliJLK/4TNbpm+V8jQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=fb6ADFN3wwJDka1oaUcMl4J/K0lONFSE13HBqJAqJUE=; b=o8NIywFZ0K7bDFumrJGAirprY89Qp8H6GtMQXYJlWKOjSK8px7MwZj3eQ4ATaMsIllildxiokR0ofN+uGY70if3LNXPpoQgK3WLNRARqoh5Mk6MXLauEtKZd+AxodvgRQjooeTK0HEpbWRYnXwxA2dpIicD3QbwtaqOpajUsU4eMyxjvE9GNJGCz4Drkp4N1yr/cNU7Du+19NgSLqvZMvqb+HdpXLDgqeolIBT8volIvUPYOvpub1fC1LpA907CsldKOejrIXY/Qwra2SUXcJ2QPUCMrS6jlJjOSIbU/ShpYqCaJRPgFLspVF6h0cL2UapYczZ+sZVZhgkwZmrppRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fb6ADFN3wwJDka1oaUcMl4J/K0lONFSE13HBqJAqJUE=; b=cXtZFpgg6Qv2BAqytQoxESMO4a8fRxm8x/I0Up2NkDaMPv2MxD/0FP0BeHOWs19m4KAulyWYdMQaB50xUGMnum5FJMALbRHiWdUM4ocL6bSIGh468bz9jz/EsQW6f5ADAHStbVWvMmJp0ct1Bpe66HW2C8oNkZOXOBZfMqbSZoc= Received: from BL1PR13CA0422.namprd13.prod.outlook.com (2603:10b6:208:2c3::7) by DS0PR12MB999080.namprd12.prod.outlook.com (2603:10b6:8:2fe::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.9; Thu, 10 Sep 2026 13:24:43 +0000 Received: from BN2PEPF000044A6.namprd04.prod.outlook.com (2603:10b6:208:2c3:cafe::7d) by BL1PR13CA0422.outlook.office365.com (2603:10b6:208:2c3::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb07.amd.com; pr=C Received: from satlexmb07.amd.com (165.204.84.17) by BN2PEPF000044A6.mail.protection.outlook.com (10.167.243.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:43 +0000 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:42 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:38 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 09/11] ASoC: SOF: amd: add ACP7.B/7.F SoundWire IO IRQ handling Date: Thu, 10 Sep 2026 18:50:09 +0530 Message-ID: <20260910132251.1171943-10-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044A6:EE_|DS0PR12MB999080:EE_ X-MS-Office365-Filtering-Correlation-Id: e071de95-8fe5-4186-2b57-08df0f3ee034 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700016|1800799024|82310400026|23010399003|6133799003|10067099003|56012099006|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 61eCRnyMrSxyhnf5Q4ktSVi2c61srLJu/FauefHuGfFSuVTpKq2mHQ5l9GO6ghgrsYKTtY5iqL7JbMz6J/qDAfL12p4dwhtH1f2PnZdLH5cEhPAP3LZ4gVkmkr7/vzmlUXU2SQBPx6X8gLIwCUTWGg+3Wob/mUjZfda4UGPDjGftzFfQ23fcuJgIS1NbAjwbcSXHt8bs7KnVZFGAxNwOFlwZsiUM1ogde9KQyIRZ+rOLtpJJob0hebRq+0V/sh9E4U8kpSgn7723REO8T3xyrnrYZOUhs7g9pippROxWMeHK5CJCvTiIMhxT7EJqCBsZ/3cBc8f8tbB3FjLF+SsyOaR2xOl8pyMN9xPlQzS/lxFuI8Wd8A/NqFUarY4gavl6AY1C3hNsVWZrJrQ9zecT28rhZNo0tLX9wxZi7rfVnV9Pp6QHaTszyu+t9y1L6r4+iEpmAOyGMfZqNKQk9qkfu/KKAP8zaMRNRRzpmtE9jCBMO0OrWmbgdx5gM66mHHl71ppjq0zCXsQWSNRKTOhmU0D+uj54OtSDUxgoOJyuhbu89jUO+JyKV/bDbVNNUsb5HgDKk5JnjNA/x3x15mTkUeWj/hImqO29jPs1EHLI/P2HwUKYUhkp32WAD8ukwQNdm9SGDH4eXRuYpJ2i1k9tIoI6CYnIoRtS9vfv3Qe7xx7m2ugE4l16GD3lr/clsHnfYImx+a8UHj7VUr65fe7gCg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb07.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700016)(1800799024)(82310400026)(23010399003)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9h+456B+CboC4GwIdhBBV2N4c4AfOesCtf84waj044bAky8+nFKTfNr2hHEbVDOK8cMDmbVKBWITddotj7uX4u2gKh2LiywH1sUjqL5Sm+nGNpXqetTu02zMFeukbKRWCThsAizkWOCh+JCCeoZH+PKTlTYkDq3lHBMKVTxHQFEGkBA+TD5TB3KNpvOeZ0WTU+947a+LoqIuEN4Dk2O5paBQMnq+NNWwR8V7FO3uliZlxmFUgBSurN4a7cB9EG2bZKU0AqLyAQRGeNvVXlb/fusfGpITm7VHOju0LZrY0YkwBKYIN2uOPS2hu+kngVTsCz1fYx2YyHAhfTdDE7R2xtLoDlB8uynqPgOFnpU9ND3OGTsXdT6G8B9Ac75HsLQ3D4mnTb5ULDE/fR3G31BjwQxAk27ictd282g+hLlAkIx0kEcmimwWSb5xAXuOVFow X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:43.3370 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e071de95-8fe5-4186-2b57-08df0f3ee034 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb07.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN2PEPF000044A6.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB999080 Content-Type: text/plain; charset="utf-8" ACP7.B/7.F exposes four SoundWire managers (SDW0-SDW3), each with dedicated interrupt, wake-enable, PME status and error registers. Add acp7x_irq_handler() to dispatch: - Per-manager data IRQs via sof_acp7x_handle_sdw_manager_irq() - Host-wake and PME events via sof_amd_check_and_handle_acp7x_sdw_wake_irq() which checks both sources independently per manager so simultaneous host-wake and PME events are not missed - Error conditions via sof_amd_acp7x_clear_sdw_err_regs() which writes back the updated error status to clear only the affected manager bit Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/acp-dsp-offset.h | 15 +++ sound/soc/sof/amd/acp.c | 187 ++++++++++++++++++++++++++++- sound/soc/sof/amd/acp.h | 2 + sound/soc/sof/amd/acp7x.h | 37 ++++++ 4 files changed, 235 insertions(+), 6 deletions(-) create mode 100644 sound/soc/sof/amd/acp7x.h diff --git a/sound/soc/sof/amd/acp-dsp-offset.h b/sound/soc/sof/amd/acp-dsp= -offset.h index 74abbc834d71..3984cd627db6 100644 --- a/sound/soc/sof/amd/acp-dsp-offset.h +++ b/sound/soc/sof/amd/acp-dsp-offset.h @@ -159,4 +159,19 @@ /* SW enable base for SDW0; manager N uses ACP7X_SW_EN + (N * 0x2000) */ #define ACP7X_SW_EN 0x5200 =20 +/* ACP7X SoundWire IO registers (non-gsync, up to 4 managers SW0-SW3) */ +#define ACP7X_EXTERNAL_SW_INTR_STAT 0x001A24 +#define ACP7X_SW_WAKE_EN 0x001458 +#define ACP7X_SW_PME_STS 0x001474 +#define ACP7X_SDW_STAT BIT(23) +#define ACP7X_ERROR_IRQ BIT(29) +#define ACP7X_SW_WAKE_EN_MASK BIT(0) +#define ACP7X_SW_HOST_WAKE_MASK BIT(22) +#define ACP7X_SDW_HOST_WAKE_STAT BIT(24) +#define ACP7X_SW_FIFO_ERROR_REASON 0x50C4 +#define ACP7X_SW_ERROR_REASON1 0x50CC +#define ACP7X_SW_ERROR_REASON2 0x50D4 +#define ACP7X_EXTERNAL_SDW_STAT BIT(16) +#define ACP7X_SW_ERR_STAT_MASK BIT(11) + #endif diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index a4ca4f78e106..eff86b1cee3c 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -22,11 +22,20 @@ #include "../ops.h" #include "acp.h" #include "acp-dsp-offset.h" +#include "../../amd/acp/soc_amd_sdw_common.h" +#include "acp7x.h" =20 static bool enable_fw_debug; module_param(enable_fw_debug, bool, 0444); MODULE_PARM_DESC(enable_fw_debug, "Enable Firmware debug"); =20 +static const u32 acp7x_sof_sdw_ext_stat[ACP7X_SDW_MAX_MANAGER_COUNT] =3D { + ACP7X_SDW_STAT << 0, + ACP7X_SDW_STAT << 1, + ACP7X_SDW_STAT << 2, + ACP7X_SDW_STAT << 3, +}; + static struct acp_quirk_entry quirk_valve_galileo =3D { .signed_fw_image =3D true, .skip_iram_dram_size_mod =3D true, @@ -581,30 +590,196 @@ static irqreturn_t acp_irq_handler(int irq, void *de= v_id) return IRQ_NONE; } =20 +/* ACP7X SoundWire IO data tables */ + +const struct sof_amd_acp7x_sdw_err_regs acp7x_sdw_err_regs[ACP7X_SDW_MAX_M= ANAGER_COUNT] =3D { + { ACP7X_SW_ERR_STAT_MASK << 0, + ACP7X_SW_FIFO_ERROR_REASON + (0 * 0x2000), + ACP7X_SW_ERROR_REASON1 + (0 * 0x2000), + ACP7X_SW_ERROR_REASON2 + (0 * 0x2000) }, + { ACP7X_SW_ERR_STAT_MASK << 1, + ACP7X_SW_FIFO_ERROR_REASON + (1 * 0x2000), + ACP7X_SW_ERROR_REASON1 + (1 * 0x2000), + ACP7X_SW_ERROR_REASON2 + (1 * 0x2000) }, + { ACP7X_SW_ERR_STAT_MASK << 2, + ACP7X_SW_FIFO_ERROR_REASON + (2 * 0x2000), + ACP7X_SW_ERROR_REASON1 + (2 * 0x2000), + ACP7X_SW_ERROR_REASON2 + (2 * 0x2000) }, + { ACP7X_SW_ERR_STAT_MASK << 3, + ACP7X_SW_FIFO_ERROR_REASON + (3 * 0x2000), + ACP7X_SW_ERROR_REASON1 + (3 * 0x2000), + ACP7X_SW_ERROR_REASON2 + (3 * 0x2000) }, +}; + +const struct acp7x_sdw_wake_src acp7x_sdw_wake_sources[] =3D { + { ACP7X_SDW_HOST_WAKE_STAT << 0, ACP7X_SW_PME_STS + (0 * 4), + ACP7X_SW_WAKE_EN_MASK << 0, 0 }, + { ACP7X_SDW_HOST_WAKE_STAT << 1, ACP7X_SW_PME_STS + (1 * 4), + ACP7X_SW_WAKE_EN_MASK << 1, 1 }, + { ACP7X_SDW_HOST_WAKE_STAT << 2, ACP7X_SW_PME_STS + (2 * 4), + ACP7X_SW_WAKE_EN_MASK << 2, 2 }, + { ACP7X_SDW_HOST_WAKE_STAT << 3, ACP7X_SW_PME_STS + (3 * 4), + ACP7X_SW_WAKE_EN_MASK << 3, 3 }, +}; + +/* ACP7X SoundWire IO interrupt and wake helpers */ + +static void sof_amd_acp7x_handle_one_sdw_err(struct snd_sof_dev *sdev, u32= *err_stat, + u32 acp_error_stat_reg, + const struct sof_amd_acp7x_sdw_err_regs *regs) +{ + if (!(*err_stat & regs->err_stat_mask)) + return; + + *err_stat &=3D ~regs->err_stat_mask; + snd_sof_dsp_write(sdev, ACP_DSP_BAR, acp_error_stat_reg, *err_stat); + snd_sof_dsp_write(sdev, ACP_DSP_BAR, regs->fifo_err_reason, 0); + snd_sof_dsp_write(sdev, ACP_DSP_BAR, regs->err_reason1, 0); + snd_sof_dsp_write(sdev, ACP_DSP_BAR, regs->err_reason2, 0); +} + +/* Clears SoundWire error registers for all managers; runs in hard IRQ con= text. */ +static void sof_amd_acp7x_clear_sdw_err_regs(struct snd_sof_dev *sdev) +{ + const struct sof_amd_acp_desc *desc =3D get_chip_info(sdev->pdata); + u32 err_stat; + unsigned int instance; + + err_stat =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, desc->acp_error_stat); + + for (instance =3D 0; instance < ACP7X_SDW_MAX_MANAGER_COUNT; instance++) + sof_amd_acp7x_handle_one_sdw_err(sdev, &err_stat, desc->acp_error_stat, + &acp7x_sdw_err_regs[instance]); +} + +static void sof_amd_handle_acp7x_sdw_wake_event(struct acp_dev_data *adata) +{ + struct amd_sdw_manager *amd_manager; + unsigned int instance; + + for (instance =3D 0; instance < ACP7X_SDW_MAX_MANAGER_COUNT; instance++) { + if (!adata->acp7x_sdw_wake_event[instance]) + continue; + if (!adata->sdw->pdev[instance]) + continue; + + amd_manager =3D dev_get_drvdata(&adata->sdw->pdev[instance]->dev); + if (amd_manager) + pm_request_resume(amd_manager->dev); + adata->acp7x_sdw_wake_event[instance] =3D false; + } +} + +static int sof_amd_check_and_handle_acp7x_sdw_wake_irq(struct snd_sof_dev = *sdev) +{ + struct acp_dev_data *adata =3D sdev->pdata->hw_pdata; + const struct sof_amd_acp_desc *desc =3D get_chip_info(sdev->pdata); + unsigned int ext_intr_stat1; + unsigned int sdw_pme_stat, sdw_wake_en; + unsigned int i; + bool sdw_wake_irq =3D false; + + ext_intr_stat1 =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, desc->ext_intr_sta= t1); + + for (i =3D 0; i < ARRAY_SIZE(acp7x_sdw_wake_sources); i++) { + const struct acp7x_sdw_wake_src *src =3D &acp7x_sdw_wake_sources[i]; + + bool woke =3D false; + + if (ext_intr_stat1 & src->host_stat_mask) { + snd_sof_dsp_write(sdev, ACP_DSP_BAR, desc->ext_intr_stat1, + src->host_stat_mask); + woke =3D true; + } + + sdw_pme_stat =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, src->pme_sts_reg); + if (sdw_pme_stat) { + sdw_wake_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP7X_SW_WAKE_EN); + sdw_wake_en &=3D ~src->wake_en_mask; + snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_SW_WAKE_EN, sdw_wake_en); + snd_sof_dsp_write(sdev, ACP_DSP_BAR, src->pme_sts_reg, sdw_pme_stat); + woke =3D true; + } + + if (woke) { + adata->acp7x_sdw_wake_event[src->instance] =3D true; + sdw_wake_irq =3D true; + } + } + + if (sdw_wake_irq) { + sof_amd_handle_acp7x_sdw_wake_event(adata); + return WAKE_IRQ_HANDLED; + } + return WAKE_IRQ_NONE; +} + +static void sof_acp7x_handle_sdw_manager_irq(struct snd_sof_dev *sdev, + struct acp_dev_data *adata, + const struct sof_amd_acp_desc *desc, + unsigned int instance, + u32 ext_stat_mask) +{ + struct amd_sdw_manager *amd_manager; + unsigned int sdw_intr_stat; + u32 sw_intr_reg =3D ACP7X_EXTERNAL_SW_INTR_STAT + (instance * 4); + + snd_sof_dsp_write(sdev, ACP_DSP_BAR, desc->ext_intr_stat, ext_stat_mask); + sdw_intr_stat =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, sw_intr_reg); + if (sdw_intr_stat & ACP7X_EXTERNAL_SDW_STAT) { + snd_sof_dsp_write(sdev, ACP_DSP_BAR, sw_intr_reg, ACP7X_EXTERNAL_SDW_STA= T); + if (!adata->sdw->pdev[instance]) + return; + amd_manager =3D dev_get_drvdata(&adata->sdw->pdev[instance]->dev); + if (amd_manager) + schedule_work(&amd_manager->amd_sdw_irq_thread); + } +} + static irqreturn_t acp7x_irq_handler(int irq, void *dev_id) { struct snd_sof_dev *sdev =3D dev_id; + struct acp_dev_data *adata =3D sdev->pdata->hw_pdata; const struct sof_amd_acp_desc *desc =3D get_chip_info(sdev->pdata); unsigned int base =3D desc->dsp_intr_base; unsigned int val; unsigned int ext_intr_stat; - int irq_flag =3D 0; + unsigned int instance; + int irq_flag =3D 0, wake_irq_flag =3D 0; + bool dsp_irq =3D false; =20 val =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, base + DSP_SW_INTR_STAT_OFFSE= T); if (val & ACP_DSP_TO_HOST_IRQ) { snd_sof_dsp_write(sdev, ACP_DSP_BAR, base + DSP_SW_INTR_STAT_OFFSET, ACP_DSP_TO_HOST_IRQ); - return IRQ_WAKE_THREAD; + dsp_irq =3D true; } =20 ext_intr_stat =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, desc->ext_intr_stat= ); - if (ext_intr_stat & ACP_ERROR_IRQ_MASK) { - snd_sof_dsp_write(sdev, ACP_DSP_BAR, desc->ext_intr_stat, ACP_ERROR_IRQ_= MASK); - snd_sof_dsp_write(sdev, ACP_DSP_BAR, desc->acp_error_stat, 0); + + if (adata->sdw) { + for (instance =3D 0; instance < ACP7X_SDW_MAX_MANAGER_COUNT; instance++)= { + if (ext_intr_stat & acp7x_sof_sdw_ext_stat[instance]) { + sof_acp7x_handle_sdw_manager_irq(sdev, adata, desc, instance, + acp7x_sof_sdw_ext_stat[instance]); + irq_flag =3D 1; + } + } + } + + if (adata->sdw) + wake_irq_flag =3D sof_amd_check_and_handle_acp7x_sdw_wake_irq(sdev); + + if (ext_intr_stat & ACP7X_ERROR_IRQ) { + snd_sof_dsp_write(sdev, ACP_DSP_BAR, desc->ext_intr_stat, ACP7X_ERROR_IR= Q); + sof_amd_acp7x_clear_sdw_err_regs(sdev); irq_flag =3D 1; } =20 - if (irq_flag) + if (dsp_irq) + return IRQ_WAKE_THREAD; + + if (irq_flag || wake_irq_flag) return IRQ_HANDLED; =20 return IRQ_NONE; diff --git a/sound/soc/sof/amd/acp.h b/sound/soc/sof/amd/acp.h index 47e475de8b4d..e3c85b5cb20c 100644 --- a/sound/soc/sof/amd/acp.h +++ b/sound/soc/sof/amd/acp.h @@ -290,6 +290,8 @@ struct acp_dev_data { bool acp70_sdw0_wake_event; /* acp70_sdw1_wake_event flag set to true when wake irq asserted for SW1 = instance */ bool acp70_sdw1_wake_event; + /* per-manager wake event flags; indexed by SoundWire manager instance (0= -3) */ + bool acp7x_sdw_wake_event[ACP7X_SDW_MAX_MANAGER_COUNT]; /* PDM controller index selected from ACPI acp-audio-ep-port; passed to m= achine driver */ unsigned int pdm_sel; unsigned int pci_rev; diff --git a/sound/soc/sof/amd/acp7x.h b/sound/soc/sof/amd/acp7x.h new file mode 100644 index 000000000000..5151d8757c12 --- /dev/null +++ b/sound/soc/sof/amd/acp7x.h @@ -0,0 +1,37 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ +/* + * This file is provided under a dual BSD/GPLv2 license. When using or + * redistributing this file, you may do so under either license. + * + * Copyright(c) 2026 Advanced Micro Devices, Inc. All rights reserved. + * + * Author: Vijendar Mukunda + */ + +#ifndef __SOF_AMD_ACP7X_H +#define __SOF_AMD_ACP7X_H + +/* Return values for sof_amd_check_and_handle_acp7x_sdw_wake_irq() */ +#define WAKE_IRQ_HANDLED 1 +#define WAKE_IRQ_NONE 0 + +/* ACP7X SoundWire IO structures */ + +struct sof_amd_acp7x_sdw_err_regs { + u32 err_stat_mask; + u32 fifo_err_reason; + u32 err_reason1; + u32 err_reason2; +}; + +struct acp7x_sdw_wake_src { + u32 host_stat_mask; + u32 pme_sts_reg; + u32 wake_en_mask; + u8 instance; +}; + +extern const struct sof_amd_acp7x_sdw_err_regs acp7x_sdw_err_regs[ACP7X_SD= W_MAX_MANAGER_COUNT]; +extern const struct acp7x_sdw_wake_src acp7x_sdw_wake_sources[]; + +#endif /* __SOF_AMD_ACP7X_H */ --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012022.outbound.protection.outlook.com [52.101.43.22]) (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 4824C3911C9; Thu, 10 Sep 2026 13:24:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.22 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046699; cv=fail; b=LW4UTox9bHBb7bE8CBsRmoEUVOoQS7mU0yjia8DW+LoBR7vbf+tBh6uNmdtdsHaJNrA7MFiR8T+vUvGv66Fl6apcKLSPIoIi+HX4wQZ+J7dtG8+uY1QyprpcmYHmMl1+eEpjfi/tcMsJ5tBhF4XZCY3vT4KB+5mtmbfbC34nRUI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046699; c=relaxed/simple; bh=i717O9FirZ9RiYOxN/qfxWBuw8UUpD2VCS6br3gOT/E=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eini0x1JbQhlNR+XhjruPke/TTMk6gV+8dIyhnex/TsvcrIbpJEJiEyov3K3KNCTAbTzv61IQygfssP9Eo4gaT5TytZtOY4zexpsV1CAYB9jSlVxK38SKHd0Jsnh/tcDCY57DOnqzvGeMKMYNHTzec/73ybw5CVX/QzHA9OKZlc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=qSImAMjE; arc=fail smtp.client-ip=52.101.43.22 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="qSImAMjE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LcNDnusWefD+VRjNZGFC6KoH1uJ8bK5EWmIuAlifFUZMO6zp4iJ0ncv11ptDQXmQN0xtI56jMxNIkP+Ugnt8nDwj87AhwarwYdUjrcCvTFV2/4C9LYZ5+0WILkinRLK7cZ4Blk7QI2skO/p2cGQuW9WUHew4gY3hXAleS/hsm00FlzghXoZ/7hvQ1UkxWY00vthFcOhC5CVN9fG8cTGv6V0qyV5B5HJe4IsqVcXuiV8K+onPgnofTPurSx66+x9Uu4srpofIjHwxIpy9X77cjtSBR5glV1EwnEcKegJMs6ZRi0AISRvZiT7Stw4za608LXn3aS0Z/lxFg5yfdOlO0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ak/Ng+vhHBtCUreB6yM98H1PFL332b+ELD3jDlBXmTw=; b=jxenk6/Fh1HF+II4IZlAua6OxunL+OuEfqd/Mw3+a8ebYoKC1dHK06yybX5cgQajQCJPaeutd5Z+NjBQmUI+hF8y+7ao63WpUYvqa5BAdedh7Ys6nPx86Mva61e0qCGN4KUgmfuhqPKtv3vbOdXngKTQNlME6wu2ImnC5TC6NgpZJvKW58pYnThYbXzGZvGfIrBumg2gmVSQ1jIYtty7rBZl1EFNrlzdtWnPAvO7GYwDkwmcOqJkJcJEwUIL1ApL5VHawlWo2mtg6ijkMF9JMcG2usfGPxcFWIDbAV+uMfe8j44jdEl/b0+TTlHOh7Qk2IF4PHkN6sVeBQ38ruwD0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ak/Ng+vhHBtCUreB6yM98H1PFL332b+ELD3jDlBXmTw=; b=qSImAMjEp7o4R+1t0NkPe1DrwUf9FD7Lpy/TVNeMi45WjZIzQXQl9Zd2O0oMW4IWdjnzsjocbygoAa7hx/TPSAm2yCDf3X0tbT1KfNX0kreYEOC/AtX4e7IE6sliX0Ns/egjP/VjK2MTyu8rSDCOaUD2wnIo8dmQR6Hwjef28SE= Received: from PH8P220CA0011.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:345::17) by SA1PR12MB6798.namprd12.prod.outlook.com (2603:10b6:806:25a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.7; Thu, 10 Sep 2026 13:24:51 +0000 Received: from BY1PEPF000264B2.namprd02.prod.outlook.com (2603:10b6:510:345:cafe::5c) by PH8P220CA0011.outlook.office365.com (2603:10b6:510:345::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.406.7 via Frontend Transport; Thu, 10 Sep 2026 13:24:51 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BY1PEPF000264B2.mail.protection.outlook.com (10.167.242.118) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:51 +0000 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:47 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:43 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 10/11] ASoC: SOF: amd: enable SoundWire host wake interrupt in acp_init Date: Thu, 10 Sep 2026 18:50:10 +0530 Message-ID: <20260910132251.1171943-11-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PEPF000264B2:EE_|SA1PR12MB6798:EE_ X-MS-Office365-Filtering-Correlation-Id: 87f3b3b1-eabf-4767-07b5-08df0f3ee4f1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|23010399003|36860700016|376014|7416014|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: ogvkemy+htxieMvrTentS2aNlMy5raakEnrTM/JUKWEl2RiGVmyhYTXypZpLU9X5+O/msZS3wFPFw14VIBtvhXBjlguw/ldmburVW+TfEbYxWmz4ze0DH82lVXbTvkFNQFezE4S/MM4MAt7GrrkynpWI4zmxZ3adWSac/bwjSungbdYlu1HUXPrEf2voyuacUfhcb3/R1j5Aene8PJsGVOLSvkhLfmjByhFZv/AdLuOjjisz8qidgUHq8P1qNfln4KKYnwcQ7EQl/tTKzuAsUew0ikMaVuPqJGM4kDDpFTAw5dOLPCZn999QNr+TxOko0ld8KQV27pr1kA1LiktE2ihFOdNPaT5LbsDE47K1ypAwMMkcp6G+B+OTEE9xfXxvv8h3J3Td0KQOGFuyq6w20LJdLhQnQzkF+e1mZMHd90lQsRyuWrO8IHVw99UyZ1c4ofS9ER8cOufyh8QU17Qxg5+LplOVgyPsUGTMWSsy/QQ4cCCJxg1A6MJ5RjH9psA+IOGx2PR78oZ5FJxdIv/NtZHGNu/wABQe+cOWanLEv5fiR3qXHOJO6eFnRXpELCsQgtzQYfi+X1MwoJuWwMjWB/2rgqljX558qWMfmKOVr4mo12LkOrAYNjO7KGJ7SQMVGJIW8rsXE8Fg5MpZ3UUqC7LOHjOkn2qovUB/pBE5yYC6Dh3renxXLrXDUYX/GKgckjlGOC12j7TBX008zWi+Sg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(23010399003)(36860700016)(376014)(7416014)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: XXq9sszNRIhCSDpGLs2P/2Xpo+GxKwOAY+6QPbpYE+DLoe1WSUr4HY2jHcYmGbND5TvvJhSJc/J9pXfFZqO54DDv7jnLuAwXw/DhW/w282Z597lt5ftTs8qYB9JZNBtiKEUnHvbxoTQrScXJp2t348oLnU/u+K6V/EBbkn/aYkF4R3jNS0ORs2ZdNixPHDDZNedPVqEkae5ETNjmx0E6MepZrxv3Cgkk98VtZhjNhSXLcm/3toYifxwgNj0Ha8YbvQHfw99AGO90Zw5WReMIt0m7KYhMy0TiRvjcvXJBmBFGFQkniPm3l+AYvxohUYFyhRrdiBwmRoPkta34qU6hcGR0KVwL59xUityI9HRUmPV5QuLbgqsO+k6KZL/+qKCiZz2yCJ+FeOFmrppVNI9rJch/GYR4eAKJygIrGvZhdi5aZKwMG57PE1snDxVXAqfM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:51.1246 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 87f3b3b1-eabf-4767-07b5-08df0f3ee4f1 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BY1PEPF000264B2.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6798 Content-Type: text/plain; charset="utf-8" During acp_init() for ACP7.B/7.F, read ACP7X_SW_WAKE_EN and enable the corresponding host-wake interrupt mask in ACP7X_EXTERNAL_INTR_CNTL1 only for managers that have wake-enable set (SW_WAKE_EN bit i enables ACP7X_SW_HOST_WAKE_MASK << i in INTR_CNTL1). This ensures only the active managers arm their host-wake interrupt when ACP enters D0. Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/acp.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index eff86b1cee3c..da987a51491c 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -903,6 +903,8 @@ static int acp_init(struct snd_sof_dev *sdev) const struct sof_amd_acp_desc *desc =3D get_chip_info(sdev->pdata); struct acp_dev_data *acp_data; unsigned int sdw0_wake_en, sdw1_wake_en; + u32 sdw_wake_en, intr_mask; + unsigned int i; int ret; =20 /* power on */ @@ -946,6 +948,20 @@ static int acp_init(struct snd_sof_dev *sdev) snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_PME_EN, 1); snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_DSP0_IDMA_ERROR_MASK, ACP7X_IDMA_ERROR_MASK); + /* + * Enable host-wake interrupt per manager based on SW_WAKE_EN: + * SW_WAKE_EN bit i enables ACP7X_SW_HOST_WAKE_MASK << i in INTR_CNTL1. + */ + sdw_wake_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP7X_SW_WAKE_EN); + intr_mask =3D 0; + for (i =3D 0; i < ACP7X_SDW_MAX_MANAGER_COUNT; i++) { + if (sdw_wake_en & BIT(i)) + intr_mask |=3D ACP7X_SW_HOST_WAKE_MASK << i; + } + if (intr_mask) + snd_sof_dsp_update_bits(sdev, ACP_DSP_BAR, + ACP7X_EXTERNAL_INTR_CNTL1, + intr_mask, intr_mask); break; } return 0; --=20 2.48.1 From nobody Fri Sep 25 16:03:28 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012051.outbound.protection.outlook.com [40.107.200.51]) (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 6FF633911C9; Thu, 10 Sep 2026 13:25:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046710; cv=fail; b=j8hQj0L+dzVygWODUyyCTtlqkCXN9mfIBRim24C3vWRtq3+de4Dm/dEVVZ2NUlUeIoasyl8NhESb/wbbrzjfgbSZDRp/X1gqhU2UwW3rA4zuxVFDMDwYvLNpeapPW0kZjRmvLDrxnObeYmFS9uvixi9BP6UpRapdo/B/oJblkA4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789046710; c=relaxed/simple; bh=HHLv01q1l7VfuH575E5wv/htSR7+4eFlDZEeChopIBg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Za6ds0DjLLM56kkV62Ghm+06o3vDpHcWdmWyp6hVGxyqhEPDoSE9llDNpcEHpFdLngVgZo+cPf1JZz9l68ghcMiw27WHcw2vviRZyfY0EHEhC0dYT4SiiwRu4tgf33P5v/W3oAwHkLXBXw2bLdpReuzuQX9jJjOCsvbJ2ajuOLg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=WohEccg5; arc=fail smtp.client-ip=40.107.200.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="WohEccg5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SQsDcvPtjMpuZhv4eH1Yux2mbH+qCFqkoebKBibJkjXvcr0qiJ8BzP0hBDRY7ESqFNbzdjA5f5NlqaUeXdTtFS3ZI0s16E3tysGcUPTLKKOPYpV4yXpjN2tE2BlgDKXSL/OC9JWjInYzAjnBjm9MJsfnyM4yYyDSTc23bd7gKzxI/zXOy26XHX2Ixh4cUP6AiEDeISxrvBMMWf8AWQV1YbT+hT+Du1FVD6ZGqN8nK4pDT/LrHsir5d1hGkNGWIYQKgFh8l4TUlKph1L4wBqIFk0GsOlIKTwkqOYgpqV0X0V5CEqMoy9b0rzwBbBa7Jo7OaPvD/Y3sfSuW0RYwQxH5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SBODxhGo3UEVtL00YmmLgC1v33e6Or+mzKtJs2MKxHY=; b=ghmDnXEQNp3tq1MqlcvT1XvkI6aISHAcZiSzPrqSUhfr5obMF8P9pxDSylTYLaaEv8CRLcPhbxulpbzHXRq9FlMp5SPxUzrqOeSsqxlfbMaG9Db6ydpXSxlRuFVuOAcnV2R/slmAndWG5+ZYmaduE1lRDemZDlyI1off1NpczG9UQUjge5gWSVUxcX6lwC8rB/1eVNXEwHpqG9SCEYWcv0tbqwVpOAuAEuyxZqIOSEBs18pBLU25QFqWb6mtZgbwVz6CBgg7CGsjGFAm1ZFuF6rz87xtqaE/vAU8u1h1J9xC75X4U5cDY0WbD2BhqnFFiW1bUGqJCBa/aqJmYJbtEw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SBODxhGo3UEVtL00YmmLgC1v33e6Or+mzKtJs2MKxHY=; b=WohEccg5DCvEqBnrYRLcz9IHeWuohWiJOMFlb3ULdY9sGSfwBbUlOi6gyN43h4sPNA4llvzR5U9GzqUyPdi1IGSYrRnT/W5fsqXBu1Rl1QQzsbQOVLAiLotqrJJ+A7gePamh6r/dG+rZTs6r4wwoK3QhdOGbTBjlexuWpoIB2bw= Received: from PH8PR05CA0023.namprd05.prod.outlook.com (2603:10b6:510:2cc::8) by SA1PR12MB8697.namprd12.prod.outlook.com (2603:10b6:806:385::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.9; Thu, 10 Sep 2026 13:24:56 +0000 Received: from BY1PEPF000264B2.namprd02.prod.outlook.com (2603:10b6:510:2cc:cafe::9) by PH8PR05CA0023.outlook.office365.com (2603:10b6:510:2cc::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.428.6 via Frontend Transport; Thu, 10 Sep 2026 13:24:56 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=satlexmb08.amd.com; pr=C Received: from satlexmb08.amd.com (165.204.84.17) by BY1PEPF000264B2.mail.protection.outlook.com (10.167.242.118) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.5 via Frontend Transport; Thu, 10 Sep 2026 13:24:56 +0000 Received: from Satlexmb09.amd.com (10.181.42.218) by satlexmb08.amd.com (10.181.42.217) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:53 -0500 Received: from satlexmb07.amd.com (10.181.42.216) by satlexmb09.amd.com (10.181.42.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Thu, 10 Sep 2026 08:24:52 -0500 Received: from amd-System-Product-Name.amd.com (10.180.168.240) by satlexmb07.amd.com (10.181.42.216) with Microsoft SMTP Server id 15.2.2562.46 via Frontend Transport; Thu, 10 Sep 2026 08:24:48 -0500 From: Vijendar Mukunda To: CC: , , , , , , , , , , , , , , , Vijendar Mukunda Subject: [PATCH 11/11] ASoC: SOF: amd: add SoundWire PM ops for ACP7.B/7.F Date: Thu, 10 Sep 2026 18:50:11 +0530 Message-ID: <20260910132251.1171943-12-Vijendar.Mukunda@amd.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> References: <20260910132251.1171943-1-Vijendar.Mukunda@amd.com> 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 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BY1PEPF000264B2:EE_|SA1PR12MB8697:EE_ X-MS-Office365-Filtering-Correlation-Id: eb806849-bc8c-4070-7381-08df0f3ee7e2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|82310400026|36860700016|7416014|376014|56012099006|10067099003|11063799006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: klm5D3uAQHt9uBM21l9ySR7epH65L6rRvTfRk5rrSd5iXrLADbcEefHz907bGTy/rmehmHx3aEAaPuAtit9LsUybErOqFXurSJUJxCLC2UiMVA0IIUMsDyAVMAkS72NnMp3qFEJv43ieRw3mn2txprqyIzdMSUP5F26KVP+JMxYrU1GfJcM5dKmgQfCOhasbHbFYFCFFsHoPTZQ6G2Kp11CUD39DliQmoRIP1njOJANHyG8kIW8Kp8F3vMjW3/EJE6GECFc07kDkkafFIa0W9TJk1ZJieBizljiaGR+zVlyb3GdkmXtrHfQpoWXtKbZhY1jAhOuaqOVSdmcQmv+opRA4vme5hszLvkidLxdg/NZuQ905YCeqsyB++3PJMzXIPt5VvRAHG2B8O0HObClCMMcOhQY8KM/xHZHQXqRE/69f626kmamN5dmlycQoWNXnfO+2ASyrrjZgMZKlv31zoC21EYp08Tk1LBBjCaeeRvJJ/n6Im2nlmkd7NKfcQ9mtBXBViFUf9tT4h9MQj1Q2N3jiZPIV6Fhqh3wh/euvbftsxsJqtw70BVlQ7g6TZWn5IGPoz+7f7XLqtb1knzGJRf+A4BAa+emwemczGsgB6JZxoMPwzq+zbVweW1r+xhbi2VDymyCFhDHp7lpP8Z5RlLVgJzw94xvIOpmf29lx7MtPKQFCE4B22TKAID9leyBBRPTx5B3lWsHXcny5PhH7Xw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:satlexmb08.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(82310400026)(36860700016)(7416014)(376014)(56012099006)(10067099003)(11063799006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8z8xLtwIlxp/xwbtHqYx23OJuDJ4oLKZmJ07c7tr2O0QIxFq2kPBj/BqzImgCIm+63wYBSOKNJftgNpmy8y1XYtf03TiA6S5pHwj0h14Z9BaBD/7or52MkN/TazBbfYxCY86iQN93zOcGrqps1KtqEFc8vfbdN8ZrnaCbOhj/6/rooH10TeFXFMnA3crcz6gPyz0XyU+2D5V07rLfgsMsMjg3Mi0xxTqq/DukEyrcUYZftd0/M8RbEXrBHnk2rFLHKLRFsZ9+QuazG4l3KJN0g0FxOw5NN+NiyNJbtoH9oNMokD5RmIHo02fHp1f5ljeR38ofggZPDd80MrLuVwjRs0QDU4wSv+/0zR64CdeaT3W5pyWH9gyKRqe4QOU487gPR/vfxtW3daz7DtXwNhQhXtRPlVfx/PsyKG9az+yfb1wESyMyrHii6iiz03cA5Ke X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2026 13:24:56.1412 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eb806849-bc8c-4070-7381-08df0f3ee7e2 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[satlexmb08.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BY1PEPF000264B2.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB8697 Content-Type: text/plain; charset="utf-8" Add handle_amd_sof_acp7x_sdw_pme_event() to iterate over all four SoundWire managers on runtime PM resume, clear PME status and wake-enable bits (under acp_lock to prevent races with the IRQ path), and request runtime resume for each active manager. Extend amd_sof_acp7x_suspend() with a clock-stop fast path: when SoundWire managers are in clock-stop mode, write ZSC_DSP_CTRL=3D1 and call acp_dsp_reset() instead of the full acp_reset() to preserve SoundWire bus state. Extend amd_sof_acp7x_resume() with a matching clock-stop resume path that restores ZSC_DSP_CTRL and re-arms PME_EN. Introduce amd_sof_acp7x_suspend_runtime() and amd_sof_acp7x_resume_runtime() as separate runtime PM callbacks. The runtime resume path calls handle_amd_sof_acp7x_sdw_pme_event() after re-initialising hardware to clear any PME state that arrived during the suspend window. Signed-off-by: Vijendar Mukunda --- sound/soc/sof/amd/acp.c | 104 +++++++++++++++++++++++++++++++++------- sound/soc/sof/amd/acp.h | 1 + 2 files changed, 87 insertions(+), 18 deletions(-) diff --git a/sound/soc/sof/amd/acp.c b/sound/soc/sof/amd/acp.c index da987a51491c..b059039c9e0d 100644 --- a/sound/soc/sof/amd/acp.c +++ b/sound/soc/sof/amd/acp.c @@ -1365,6 +1365,9 @@ int amd_sof_acp7x_probe(struct snd_sof_dev *sdev) dev_err(sdev->dev, "error: SoundWire probe error\n"); goto free_ipc_irq; } + if (adata->info.link_mask) + adata->is_sdw_dev =3D true; + skip_soundwire: if (adev) { /* DMIC ACPI child address is 2 on ACP7x platforms */ @@ -1434,6 +1437,44 @@ void amd_sof_acp7x_remove(struct snd_sof_dev *sdev) } EXPORT_SYMBOL_NS(amd_sof_acp7x_remove, "SND_SOC_SOF_AMD_COMMON"); =20 +static void handle_amd_sof_acp7x_sdw_pme_event(struct snd_sof_dev *sdev) +{ + struct acp_dev_data *adata; + struct amd_sdw_manager *amd_manager; + u32 sdw_pme_stat; + u32 sdw_wake_en; + u32 pme_reg; + u32 wake_mask; + unsigned int instance; + + adata =3D sdev->pdata->hw_pdata; + if (!adata->sdw) + return; + + for (instance =3D 0; instance < ACP7X_SDW_MAX_MANAGER_COUNT; instance++) { + pme_reg =3D ACP7X_SW_PME_STS + (instance * 4); + wake_mask =3D ACP7X_SW_WAKE_EN_MASK << instance; + + sdw_pme_stat =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, pme_reg); + if (!sdw_pme_stat) + continue; + + mutex_lock(&adata->acp_lock); + sdw_wake_en =3D snd_sof_dsp_read(sdev, ACP_DSP_BAR, ACP7X_SW_WAKE_EN); + sdw_wake_en &=3D ~wake_mask; + snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_SW_WAKE_EN, sdw_wake_en); + mutex_unlock(&adata->acp_lock); + snd_sof_dsp_write(sdev, ACP_DSP_BAR, pme_reg, sdw_pme_stat); + + if (!adata->sdw->pdev[instance]) + continue; + + amd_manager =3D dev_get_drvdata(&adata->sdw->pdev[instance]->dev); + if (amd_manager) + pm_request_resume(amd_manager->dev); + } +} + int amd_sof_acp7x_suspend(struct snd_sof_dev *sdev, u32 target_state) { struct acp_dev_data *acp_data; @@ -1442,6 +1483,11 @@ int amd_sof_acp7x_suspend(struct snd_sof_dev *sdev, = u32 target_state) =20 acp_data =3D sdev->pdata->hw_pdata; =20 + if (acp_data->is_sdw_dev && check_acp_sdw_enable_status(sdev)) { + snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_ZSC_DSP_CTRL, 1); + return acp_dsp_reset(sdev); + } + ret =3D acp_reset(sdev); if (ret) { dev_err(sdev->dev, "ACP Reset failed\n"); @@ -1463,13 +1509,25 @@ int amd_sof_acp7x_suspend(struct snd_sof_dev *sdev,= u32 target_state) } EXPORT_SYMBOL_NS(amd_sof_acp7x_suspend, "SND_SOC_SOF_AMD_COMMON"); =20 -int amd_sof_acp7x_resume(struct snd_sof_dev *sdev) +int amd_sof_acp7x_suspend_runtime(struct snd_sof_dev *sdev) +{ + return amd_sof_acp7x_suspend(sdev, 0); +} +EXPORT_SYMBOL_NS(amd_sof_acp7x_suspend_runtime, "SND_SOC_SOF_AMD_COMMON"); + +int amd_sof_acp7x_resume_runtime(struct snd_sof_dev *sdev) { struct acp_dev_data *acp_data; int ret; =20 acp_data =3D sdev->pdata->hw_pdata; =20 + if (acp_data->sdw_en_stat) { + snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_ZSC_DSP_CTRL, 0); + snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_PME_EN, 1); + return acp_dsp_reset(sdev); + } + ret =3D acp_init(sdev); if (ret) { dev_err(sdev->dev, "ACP Init failed\n"); @@ -1481,30 +1539,40 @@ int amd_sof_acp7x_resume(struct snd_sof_dev *sdev) return ret; } =20 - switch (acp_data->pci_rev) { - case ACP7B_PCI_ID: - case ACP7F_PCI_ID: - snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_PME_EN, 1); - break; - default: - break; - } + if (acp_data->is_sdw_dev) + handle_amd_sof_acp7x_sdw_pme_event(sdev); =20 return 0; } -EXPORT_SYMBOL_NS(amd_sof_acp7x_resume, "SND_SOC_SOF_AMD_COMMON"); +EXPORT_SYMBOL_NS(amd_sof_acp7x_resume_runtime, "SND_SOC_SOF_AMD_COMMON"); =20 -int amd_sof_acp7x_suspend_runtime(struct snd_sof_dev *sdev) +int amd_sof_acp7x_resume(struct snd_sof_dev *sdev) { - return amd_sof_acp7x_suspend(sdev, 0); -} -EXPORT_SYMBOL_NS(amd_sof_acp7x_suspend_runtime, "SND_SOC_SOF_AMD_COMMON"); + struct acp_dev_data *acp_data; + int ret; =20 -int amd_sof_acp7x_resume_runtime(struct snd_sof_dev *sdev) -{ - return amd_sof_acp7x_resume(sdev); + acp_data =3D sdev->pdata->hw_pdata; + + if (acp_data->sdw_en_stat) { + snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_ZSC_DSP_CTRL, 0); + snd_sof_dsp_write(sdev, ACP_DSP_BAR, ACP7X_PME_EN, 1); + return acp_dsp_reset(sdev); + } + + ret =3D acp_init(sdev); + if (ret) { + dev_err(sdev->dev, "ACP Init failed\n"); + return ret; + } + ret =3D acp_memory_init(sdev); + if (ret) { + dev_err(sdev->dev, "ACP Memory init failed\n"); + return ret; + } + + return 0; } -EXPORT_SYMBOL_NS(amd_sof_acp7x_resume_runtime, "SND_SOC_SOF_AMD_COMMON"); +EXPORT_SYMBOL_NS(amd_sof_acp7x_resume, "SND_SOC_SOF_AMD_COMMON"); =20 MODULE_LICENSE("Dual BSD/GPL"); MODULE_DESCRIPTION("AMD ACP sof driver"); diff --git a/sound/soc/sof/amd/acp.h b/sound/soc/sof/amd/acp.h index e3c85b5cb20c..1bc6b572448d 100644 --- a/sound/soc/sof/amd/acp.h +++ b/sound/soc/sof/amd/acp.h @@ -294,6 +294,7 @@ struct acp_dev_data { bool acp7x_sdw_wake_event[ACP7X_SDW_MAX_MANAGER_COUNT]; /* PDM controller index selected from ACPI acp-audio-ep-port; passed to m= achine driver */ unsigned int pdm_sel; + bool is_sdw_dev; unsigned int pci_rev; int acp_sof_signed_firmware_image; }; --=20 2.48.1