From patchwork Mon Mar 10 18:31:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010485 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2063.outbound.protection.outlook.com [40.107.244.63]) (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 2FEA62AD16; Mon, 10 Mar 2025 18:32:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631535; cv=fail; b=oc1hBI7RFWg2mYICOSJG8SoKs01C7MpoGRP3vACy4+WpEyLETg/DYCyPJRGtc7lw5TnUJRuwiuRevUrqGGXHfr9JkRKMO+/orKA93j5lNGL4nvjqhVdvzmYeGK74Iyjoxlrlg8MUe4QkhGjoRjh//dC9vL1ZWkYehVhX4JbN/40= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631535; c=relaxed/simple; bh=2BP6YuyeU4WhFXCNvBTr+wMceAJSBSimCl9+O9wmgjU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=eDQDUz9ie+55/+tHwkCrVP1/KI20HMZj69C2hduAaoB6esGwC4Mk0aBvLBwUBv8qZ7Lk9iGPgPF4x52eiF6+OG5ryn1h+/UasHfXjR62Uegq9VGW80bgQtC39FNhOJvaufjQ+72qI2bDBn1WBf7U2pO+tt5pM5f8GO6HeeoXqgU= 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=dgH7G/Vv; arc=fail smtp.client-ip=40.107.244.63 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="dgH7G/Vv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uSCkpApqfZBU/wvJUt2c2+OevSxYc6YiNM4zC6wZWzefvgtWwEknxeCmlT9mXX4ahpIDLBRGleUN9v7cr08lysRLYuceZcT2EfGa9uUP0mvZ7gyogcyLbWKnezikT4r7bHEByG+HkG0pk8MA4j0OomP5OP5fKMUJpTdUKsjmsRbJy0rnR7DCnA8oV5BkNB2p9vA5TkKWXpWue9ZOrhmNs8KIEcJ58URCgIhVeFxUuRtPyVDj0KgGnwljwT5q4jYMvOswwvpJJzIJY/6dTqSZTkSHL87iubbL/Igpy1UKy2KqFxUXWeaExywBqTWkhMQOjQMaq/NDqpmmEs6ZcTCvHQ== 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=V+bLPr6B0TtWHXRNqjxV0TEG4yeJkcpDDbO3jsYEi6E=; b=pp0Ogb2AdHOc1hvL+BBhssoSwwmAMf8fmm0yXWeG6kvBNdoOimowLvVATSSUwSr9v53Bm+YJq49W4JW+QHkAyJ9nU9pZc2FUbD5qYT4UADz5TF9ZQRVjoJf6lsai7dCX4F5tYW6jlBM1EthxhLVAJ4IXHoosg7r44Klqo/OoY4b2eE4rBc5OM5hajMPhlxUS1ckTjBSh+JDQ/m1nC//hOmloHjC2fz0FFShAuhuXCu+AX08+A5JkKoCOFEPpZWtdKPApi7YZN67CHHr+qFGycqFbMWQJ5flT7QMneyR0cKZr5iTaijnxg1978qm8/UH38Hc8irWw/P3BWKDp9az0Lw== 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=V+bLPr6B0TtWHXRNqjxV0TEG4yeJkcpDDbO3jsYEi6E=; b=dgH7G/VvbFqPVRLwy/TqzYNH/rYI+ZCS3BAotB7U0z1nAFMhswYnTQW1DLeDveNaB5iHu80ek2ILUYUPnEPjJMiSljJ+AYRIPcP2L/1q8VCEU19tTzi/r6KqRaoPu9++oLHeDwTasRCknB8re0uOFbF1VKStv6Z9S4lnKFJgYP0= Received: from BN0PR04CA0139.namprd04.prod.outlook.com (2603:10b6:408:ed::24) by CH3PR12MB8187.namprd12.prod.outlook.com (2603:10b6:610:125::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:32:10 +0000 Received: from BL02EPF00021F69.namprd02.prod.outlook.com (2603:10b6:408:ed:cafe::72) by BN0PR04CA0139.outlook.office365.com (2603:10b6:408:ed::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 18:32:10 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F69.mail.protection.outlook.com (10.167.249.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:32:10 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:32:09 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:32:06 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Greg KH , "Peter Zijlstra" , Jeff Johnson , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 01/14] ASoC: amd: acp: Remove redundant acp70 chip->name Date: Tue, 11 Mar 2025 00:01:48 +0530 Message-ID: <20250310183201.11979-2-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F69:EE_|CH3PR12MB8187:EE_ X-MS-Office365-Filtering-Correlation-Id: 83c0128c-601b-4581-b3b2-08dd6001ded3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: sGluWTd8bVYvkN56oSd3z7OsYGdlatprQ29oHnUBG3QbV0VksuPwMvE2c+wRJPNG4niFfWdyOqacY43HJKJrL1bJS/69GtjwzauZuC0znlIRcmcareeF+BH+OlHUHztsx2EM/0G68R/bedYxOVMvvIwOOkIO6IJ9ksBtdiL/lX69Z90VTkRomTU/RU8QF8hnKBE5ca2rKWnUrnXF5OTRsXvVgh16/suUSNgoxixYCHdWgeTMYNNIrq5QUX8OxcAHt72Z330D1DVwCwZv6NkrwuLZDhw2FfQVX+/EmUjwwOS+744CtKqoaaXu+cttI22w2BJITRzn11JG1m8zVsh1dvpJdF0o4ORxgRLfCZ8Jndz2lGmZ89Q5pBoxM1gfCF5maxHWK+Ee3uiOnpBpNc6w9ai6thUj7h+9D7jUeiHDgCAEeCDsFD8c+VdRAspVJOoaWnqHv3a4ByAOny4tlISvQjoSQoY9vvF5JWPQ7Ad1IRmpc6pI8HrGTMBRk7P+kC8bMFFr8E9Qp/aF9Jm/m5lN5F99Tsg9AJN2vxTVsTYUFIj/QziFq8OnvmqpSQFeiF1KWez6P0/Ab2cCLeShvQB51nmGc3IzTrxns3afRUX0gnMuUviHxQ3vQeCHYgIW2tWjIu3YNu8lp44Oiy257OKhAOItc8EPo9pAfKUyFOYjxzBKVr45FLdvLFKEc/xRlGI9TFBZefB7+dnF/keDxJIe4ceASP8uu4jiGSo71w/7A2yTQGBqcY5ht+y6spZxvpvmNh7u7xb78CIySO0npp930KEVn7e6rpiReEFwfQk58YAsw5WJ+i3U/AWCoGrniZuxkBGCAaYy0an88bb1y5urOfjKkNilK7U8LAvc0Iwd+jIHLTdUDmbpT1VOgIx83D0r0wM+BC6qhpQki/csCUEBEq71JCxzhfqC1eJ1dotevYZA4Q0cWaDuUGqXjhiqO96YpKG1xKAs1ZCs87opLO911fwuFZOx17Vuy5WvoYBII9KuES2sj/edH8ByS+5T/rSEFJVXAj8qbUUZAcogG/nFinTgQQ5MtiGaoNV+BEF/1P7B4VrAZKPg/ama1MX0w40vMWuk8AtDVeNo1NcQi2Ts8+SqnLMB7bVUGvC6kMk2ODr8YJlQpBzh66pxzJwY+7xZznMUnQ6msNErSqx58N+JUC0k8AvGtJIEnAPWhZuUznjXX2aJ4eDz8e2T4gDXQx2eiqH1GMMl2qrjLdN09IP/7W1o+8kNMs+QDc1R8NzGorZ5pVkTOJoDtWBMtoK42bvE4T9+MZjsA0EUX9yff8V0B3GIA7dSjJM+QvfcBZ39wOXwC68V9ZTIrcZBkTkvxPsYRFYwPuW9Dn8jopN3Z21WmF5oQ36dJ1p38AJN05HlecvuIbHreISMiw1D08hmnrhoLkhl7BVcRP4jYBnOeSqs5DUia9Q45sFDdDMz+CzT11TjiDJOdM27qoRL/bNo58p5vDfW3pHYW+Y3mfwiN8qBtzp7OqJCSMSQSW3cXh99/II= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:32:10.5815 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 83c0128c-601b-4581-b3b2-08dd6001ded3 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F69.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8187 As acp71 platform driver uses acp70 platform driver, remove the redundant chip->name. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-pci.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index e0fc42d939d3..dcd92d716e78 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -89,8 +89,6 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id chip->name = "acp_asoc_acp63"; break; case 0x70: - chip->name = "acp_asoc_acp70"; - break; case 0x71: chip->name = "acp_asoc_acp70"; break; From patchwork Mon Mar 10 18:31:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010486 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2087.outbound.protection.outlook.com [40.107.92.87]) (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 980A72AD16; Mon, 10 Mar 2025 18:32:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.87 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631543; cv=fail; b=QGtnW4DU9ZefOU7oytGMWVp7arWEQs/n9EKNQlUK07YetCAr/RlJC8ZMpRjQLJdBnh6sG4PwkY8aEUxuHAeeSAcmVE/U9oftknDsBJ9GZgh5OHqxbX9w6l9kb2mbzj28k+l7tAXoNjm8IUMhFXGe6/oE4oJO38giJ6ID+q6FRv0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631543; c=relaxed/simple; bh=AeJFi3q47HY4SDYEIFsXss7reFvPIGFUBAjn2Z3t9nU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZWzI1Y8Ij+ujHrsmxvwx+NmnZrADodJpsUGV9Ufg8NnYc5/9IXkX8l11tbA47YngOzoS9bRKpUWkeV1MVtMw/t6TDBz63GrwDJygqjXXbr//DCrw8E1Lr3u7IEgVgyARqObO6WP/8zsnfJKu/x+oQqma3pk7TOmMZI4mGGuEWvs= 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=vhFFjd9d; arc=fail smtp.client-ip=40.107.92.87 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="vhFFjd9d" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ImW/fzRk4zDO6F9In16T6EvRkE2EA6EMxZ22/aGrZSAppfPaHyrCwsP1GfSzSK3qoIoMSvbZMPxgK56APy867GbpdJMIqnZoLnx/UjodJFKW5btb8ZzSOPNdrNVT7122p4hxQLYqS1Y7lJbAzBBmZfsH4A9zChEYIZS3rqQAVnyqVMbOIkFg5rP+2y2800LArQeNhpWmdgS4DRPCsePS+SPH1d3e/+TMpjGft+WUTIGzsEOCv+vgEfWTeF9HCbMTIM7TuzfM3+kfScW24u0QLslJ2GiCCga1ACXCl4TNX/mkesQsX7cSl49ByX6tOcH7XD3WK2Szo58chC2QHZwvVQ== 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=oVve5xY86B7Vxx7Gmx3H2QvNhiF9Xy+jcYjT50d6wHE=; b=i0tMANTvNXq+j5EeP/Q5FggBjPET/TPPpijwHZVFFFjyt3eLjwh8aWKKZeHSaT+a17QerLdUkWOFWa3KkuOsLQnm8iI0eikF64jaW3w4oISVtvfa/qZjYZT3HKH3vXUaWWRQcRG4cB8mh66tZg3YTwlS8kDaqxzJQuWZyK8D6z3Z1kLwHTtxn2H6TU2eyGJ9HjeswOAg+BMlmbTDaB6sUaD1rVMdMT8OO4I3hNtrwtMWiFXHUqC88N9QnIE5uZz/wfKqj4/F68yMkilXmsA/kTMljKtahffm7xnVjRtWTdfVdoErX/rnx0aQ0jq9Ddr1VSCTCR2rnfAfD3/H0jpxjQ== 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=oVve5xY86B7Vxx7Gmx3H2QvNhiF9Xy+jcYjT50d6wHE=; b=vhFFjd9dyrkKe1EHuc90+bYkDke3aaoiaincSQKgK1duTtYSaWKC+7InenWhRrMNQnOlFy3YMBVznMvcOpJ5R4KgN9TiDWdBZBGpOt5DsrE45VIHZTFaf3cExlGAohtN0yf69DUoCGD0148KEWp+icPQI8jX2hc5A8A8V0Osj7s= Received: from BL1PR13CA0441.namprd13.prod.outlook.com (2603:10b6:208:2c3::26) by DS0PR12MB7826.namprd12.prod.outlook.com (2603:10b6:8:148::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:32:17 +0000 Received: from MN1PEPF0000F0E4.namprd04.prod.outlook.com (2603:10b6:208:2c3:cafe::1a) by BL1PR13CA0441.outlook.office365.com (2603:10b6:208:2c3::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.18 via Frontend Transport; Mon, 10 Mar 2025 18:32: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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MN1PEPF0000F0E4.mail.protection.outlook.com (10.167.242.42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:32:17 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:32:16 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:32:16 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:32:12 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Jeff Johnson , Peter Zijlstra , Greg KH , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 02/14] ASoC: amd: acp: Implement acp_common_hw_ops support for acp platforms Date: Tue, 11 Mar 2025 00:01:49 +0530 Message-ID: <20250310183201.11979-3-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E4:EE_|DS0PR12MB7826:EE_ X-MS-Office365-Filtering-Correlation-Id: e5fd77cc-1bfe-4cb4-3bb8-08dd6001e2c2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: X+LNN0JuQ3swK7HMLgpTaBge4XcSZhQkBn6VHaR9qyDDoMlIMBeIKIIp8DQMpcGf5Ws7bNiGXvxcOrb9uKWMhvPZuh9YJZTrlfkcXe44AUBqhlVFDrMuGzvIX7pb+3K+th2iDjFu14T0wGmRzhHCfzxm++zv3IsCtWRAX6mCHypd/nAYHD3+zmcVTnqznnuxfggUJPWFN8/qR+mRRZ1tvL7KxsQXuR49qkVCvg638abPIYCQA36mvNG6tfjQCh5e9t7QO+WeSn7ogXz7vPPS7qWbEcFkcHILd/DQgPpAQoIwDTX+Hkd90KRXTQ173ksRTqZdjpmtmmGNfNluyGSjN9SLpO9FG3A3hVy7aM7yS0sFAZKABkqmvlGhcpXdlrKqAMMcL5+TakycidahlwWY2x8f7PvrkQg+5PyvIoeUgf+IIAuu7GzXncm5HT2JiC1Qg28Np84q+PMcWJ4yjNtCltJC8zVbopOctGmAHUD6Usz18GOlJo/E5sd4sRWDOcdudLRtFmR9GftBeoUks9kR6HzqpHfw9ocIlRDMQAt09T1+4a1s2VA72iuHI0tvBZ3qNYTzQzzC2nXogwx8NbKyMg3BIlt7fll9Jr50OvADfBAWX028l3rMpUnL3QsI9fsOx+DEPL8xoehzrbnuSRQNEFx24DU+FrOmfLxgDME6pAntcGnZ5hXmkZiVHqOIXlzWvznHWtoggYK9nGS9niZloQWQLMiTwWd8GNLoyoaWjgydrbZOl8HPYtD3G5zQ34t32fOupZdWuotSIU9gtLm2XCznwP/jLiBJ4BEG/Dg3A2oJ7tv/bDECOt8SYTHckxjmgjbxTOteKUGAFOJFLmy3egsjqJhl/mFPEmrOYcZvEy7INQDXcGIYJ2hTWPcZKERLZJmDPNxmT5zkduxeJy8ZjRZaCVnU1suCHKHuP1/uxA+SkFyrBzv8y3E0DdmlGAdIIBekXWSAibIiGq7alu0YhXmuJ8qAeDDfhmUolt28NqIDxyglsKca0rvgD3+31B6EMTAxc92f9BbBXt9CQOcQfFrpb0o/tDI8R4M82u1OmoueL4N7jyKBOS5hmqo0PAIq2utTljqRAIRMdyogTxACpB4s/VJQv/T6i/EScaHCMeEXIp19UY5qeDfyZcGHDE0xbPGDCWJ4LTjIHDr2TFgjHa8pf7cHi8F0/sYHFxBre/NfG72s3K0eG71HIjPVYu9FW4fKMgPygT/lswvlp2pqQpU3MFtHTLOVUYEbPtgLkqSW71/Xbs4RcwdCIULNi4EaYOLzWp66y7WWrS2N4Zl2RhW7UhsFESrW3jxJd8rh7HK6ZOlGUniFSNj4giN0Owoygft2+Zr1W5bmWNRvkCj1MsuWyYg1wh23GhAPpNV3xxQbAx5PWTo1LVL9OmyqYVKH60ZP9jBGCEPNOqJCpnswUoc3pgkZ+bInR2uAbBHOot4ZWsCp6J2CcDuqGofeMcV6O4hfmhHiBqyXmMJaOTNnwMlsgQaYMCV61rjoLXPAois= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:32:17.1779 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e5fd77cc-1bfe-4cb4-3bb8-08dd6001e2c2 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E4.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7826 Implement acp common hardware ops for acp_init and acp_deinit funcions to support commons ops for all platforms. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-legacy-common.c | 50 +++++++++++++++++++++++++++ sound/soc/amd/acp/acp-pci.c | 13 ++++--- sound/soc/amd/acp/amd.h | 36 +++++++++++++++++++ 3 files changed, 95 insertions(+), 4 deletions(-) diff --git a/sound/soc/amd/acp/acp-legacy-common.c b/sound/soc/amd/acp/acp-legacy-common.c index 89f5cda18a23..f87a2da8c641 100644 --- a/sound/soc/amd/acp/acp-legacy-common.c +++ b/sound/soc/amd/acp/acp-legacy-common.c @@ -21,6 +21,12 @@ #define ACP63_PDM_ADDR 0x02 #define ACP70_PDM_ADDR 0x02 +const struct snd_acp_hw_ops acp_common_hw_ops = { + /* ACP hardware initilizations */ + .acp_init = acp_init, + .acp_deinit = acp_deinit, +}; +EXPORT_SYMBOL_NS_GPL(acp_common_hw_ops, "SND_SOC_ACP_COMMON"); void acp_enable_interrupts(struct acp_dev_data *adata) { struct acp_resource *rsrc = adata->rsrc; @@ -463,5 +469,49 @@ void check_acp_config(struct pci_dev *pci, struct acp_chip_info *chip) } EXPORT_SYMBOL_NS_GPL(check_acp_config, "SND_SOC_ACP_COMMON"); +struct snd_acp_hw_ops acp31_common_hw_ops; +EXPORT_SYMBOL_NS_GPL(acp31_common_hw_ops, "SND_SOC_ACP_COMMON"); +int acp31_hw_ops_init(struct acp_chip_info *chip) +{ + memcpy(&acp31_common_hw_ops, &acp_common_hw_ops, sizeof(acp_common_hw_ops)); + chip->acp_hw_ops = &acp31_common_hw_ops; + + return 0; +} +EXPORT_SYMBOL_NS_GPL(acp31_hw_ops_init, "SND_SOC_ACP_COMMON"); + +struct snd_acp_hw_ops acp6x_common_hw_ops; +EXPORT_SYMBOL_NS_GPL(acp6x_common_hw_ops, "SND_SOC_ACP_COMMON"); +int acp6x_hw_ops_init(struct acp_chip_info *chip) +{ + memcpy(&acp6x_common_hw_ops, &acp_common_hw_ops, sizeof(acp_common_hw_ops)); + chip->acp_hw_ops = &acp6x_common_hw_ops; + + return 0; +} +EXPORT_SYMBOL_NS_GPL(acp6x_hw_ops_init, "SND_SOC_ACP_COMMON"); + +struct snd_acp_hw_ops acp63_common_hw_ops; +EXPORT_SYMBOL_NS_GPL(acp63_common_hw_ops, "SND_SOC_ACP_COMMON"); +int acp63_hw_ops_init(struct acp_chip_info *chip) +{ + memcpy(&acp63_common_hw_ops, &acp_common_hw_ops, sizeof(acp_common_hw_ops)); + chip->acp_hw_ops = &acp63_common_hw_ops; + + return 0; +} +EXPORT_SYMBOL_NS_GPL(acp63_hw_ops_init, "SND_SOC_ACP_COMMON"); + +struct snd_acp_hw_ops acp70_common_hw_ops; +EXPORT_SYMBOL_NS_GPL(acp70_common_hw_ops, "SND_SOC_ACP_COMMON"); +int acp70_hw_ops_init(struct acp_chip_info *chip) +{ + memcpy(&acp70_common_hw_ops, &acp_common_hw_ops, sizeof(acp_common_hw_ops)); + chip->acp_hw_ops = &acp70_common_hw_ops; + + return 0; +} +EXPORT_SYMBOL_NS_GPL(acp70_hw_ops_init, "SND_SOC_ACP_COMMON"); + MODULE_DESCRIPTION("AMD ACP legacy common features"); MODULE_LICENSE("Dual BSD/GPL"); diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index dcd92d716e78..b5eabd0280bc 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -81,16 +81,20 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id switch (pci->revision) { case 0x01: chip->name = "acp_asoc_renoir"; + chip->acp_hw_ops_init = acp31_hw_ops_init; break; case 0x6f: chip->name = "acp_asoc_rembrandt"; + chip->acp_hw_ops_init = acp6x_hw_ops_init; break; case 0x63: chip->name = "acp_asoc_acp63"; + chip->acp_hw_ops_init = acp63_hw_ops_init; break; case 0x70: case 0x71: chip->name = "acp_asoc_acp70"; + chip->acp_hw_ops_init = acp70_hw_ops_init; break; default: dev_err(dev, "Unsupported device revision:0x%x\n", pci->revision); @@ -112,7 +116,8 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id goto unregister_dmic_dev; } - ret = acp_init(chip); + chip->acp_hw_ops_init(chip); + ret = acp_hw_init(chip); if (ret) goto unregister_dmic_dev; @@ -179,7 +184,7 @@ static int __maybe_unused snd_acp_suspend(struct device *dev) int ret; chip = dev_get_drvdata(dev); - ret = acp_deinit(chip); + ret = acp_hw_deinit(chip); if (ret) dev_err(dev, "ACP de-init failed\n"); return ret; @@ -193,7 +198,7 @@ static int __maybe_unused snd_acp_resume(struct device *dev) int ret; chip = dev_get_drvdata(dev); - ret = acp_init(chip); + ret = acp_hw_init(chip); if (ret) dev_err(dev, "ACP init failed\n"); if (chip->chip_pdev) { @@ -222,7 +227,7 @@ static void acp_pci_remove(struct pci_dev *pci) platform_device_unregister(dmic_dev); if (pdev) platform_device_unregister(pdev); - ret = acp_deinit(chip); + ret = acp_hw_deinit(chip); if (ret) dev_err(&pci->dev, "ACP de-init failed\n"); } diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index c921bcabbcec..3c06567e112c 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -142,6 +142,8 @@ struct acp_chip_info { char *name; /* Platform name */ unsigned int acp_rev; /* ACP Revision id */ void __iomem *base; /* ACP memory PCI base */ + struct snd_acp_hw_ops *acp_hw_ops; + int (*acp_hw_ops_init)(struct acp_chip_info *chip); struct platform_device *chip_pdev; unsigned int flag; /* Distinguish b/w Legacy or Only PDM */ bool is_pdm_dev; /* flag set to true when ACP PDM controller exists */ @@ -203,6 +205,17 @@ struct acp_dev_data { unsigned int flag; }; +/** + * struct snd_acp_hw_ops - ACP PCI driver platform specific ops + * @acp_init: ACP initialization + * @acp_deinit: ACP de-initialization + */ +struct snd_acp_hw_ops { + /* ACP hardware initilizations */ + int (*acp_init)(struct acp_chip_info *chip); + int (*acp_deinit)(struct acp_chip_info *chip); +}; + enum acp_config { ACP_CONFIG_0 = 0, ACP_CONFIG_1, @@ -239,6 +252,15 @@ int acp_init(struct acp_chip_info *chip); int acp_deinit(struct acp_chip_info *chip); void acp_enable_interrupts(struct acp_dev_data *adata); void acp_disable_interrupts(struct acp_dev_data *adata); + +extern struct snd_acp_hw_ops acp31_common_hw_ops; +extern struct snd_acp_hw_ops acp6x_common_hw_ops; +extern struct snd_acp_hw_ops acp63_common_hw_ops; +extern struct snd_acp_hw_ops acp70_common_hw_ops; +extern int acp31_hw_ops_init(struct acp_chip_info *chip); +extern int acp6x_hw_ops_init(struct acp_chip_info *chip); +extern int acp63_hw_ops_init(struct acp_chip_info *chip); +extern int acp70_hw_ops_init(struct acp_chip_info *chip); /* Machine configuration */ int snd_amd_acp_find_config(struct pci_dev *pci); @@ -252,6 +274,20 @@ int restore_acp_i2s_params(struct snd_pcm_substream *substream, void check_acp_config(struct pci_dev *pci, struct acp_chip_info *chip); +static inline int acp_hw_init(struct acp_chip_info *chip) +{ + if (chip && chip->acp_hw_ops && chip->acp_hw_ops->acp_init) + return chip->acp_hw_ops->acp_init(chip); + return -EOPNOTSUPP; +} + +static inline int acp_hw_deinit(struct acp_chip_info *chip) +{ + if (chip && chip->acp_hw_ops && chip->acp_hw_ops->acp_deinit) + return chip->acp_hw_ops->acp_deinit(chip); + return -EOPNOTSUPP; +} + static inline u64 acp_get_byte_count(struct acp_dev_data *adata, int dai_id, int direction) { u64 byte_count = 0, low = 0, high = 0; From patchwork Mon Mar 10 18:31:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010487 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2062.outbound.protection.outlook.com [40.107.94.62]) (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 A611C235BFF; Mon, 10 Mar 2025 18:32:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631550; cv=fail; b=fH4RqAuN4VWncHQx+7rMjpeSIBpKcTxRrT2TT4DB6rB/9gos79JARh90e2jB6bHk1KphKNp64HqlOTbzg9T9f7hwB27m4l76IB+XK7uhMgeYtEusFWYMIucj2ZxMMwGfoaSfgSf1uQ3oRsrFhWFajNIUF7j/xxa9dsVn29FIhE4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631550; c=relaxed/simple; bh=4kd4g3GxjV6bfj+dOc/L+olSEAk3JkCZNcoQWU3Mn0I=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=FMeqJaNvaYAPr1aNLkFlnvOzj+Zhg/GNR+QmnDCWaP2mSxkG6UgawVjeHgaUyse6aq6o3uVc+ThOcBFM/sxN3jaHX4wDHHpHGa67izKLinYYWKe0io2IOazGfCkeEuF/Q56g6FWq3kMR4F7L2cTLSx+Tmi2dzCVTSh6yd1G14Y0= 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=uEpmx486; arc=fail smtp.client-ip=40.107.94.62 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="uEpmx486" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nWYx9QN3Rq8N8D/yJFzgAgoLpaQMUn+kys/bWHS0MtmwwP562RkuJmBojZAuZ8ojm4lsC2HQc88hcYHl1o3WqXxIDlUbYa5nNx76PrF6AWpkMtjws0QppbM86KD2P+Jk1BIuNJweFtDgEwho+umc9cqd2SLsopwBNXptXLZUuU+SEX4gTYAU5PFWCrK4gpdj5t+oXCsoffSXGLOKG2xCc1XdF2smSWDsMFyckKuiml/KzIV/hIpp1QSReNjZvUjjyaahc2PeRVMH12zKV5y9hBfZXBZT6N56Iuw0bksvXBM5I0RcI7gK2qEDS1DYrtSlI3fNCZ8N5ohceIKkK9IeXw== 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=91rq8pQ8W96B26QRLhyZbdJ03P+k3QwS54zN46FhSK8=; b=xqHGLBcJs2CfhMkPD4FV61mhWoR+WjZSayXOrW28pbQpEqnXU9ARYqwXixnZkC1g5dzO40O6SeWPBc2hkMV60YAd/uUfK5WcZm5ZJzJJux4Fi3s71EnMEZo4unG1zo1ldrfX9vDSc9ou0YKZypBCVY2fGvxy8SIKnZXFJnw1xa8RFLMbWf1ZYzA5uzbT9nsB19DB4JZOS3hgcbzF1lAq31hoPI5KB6Mhb8at5rgnJfuW54+hPKGOetA1g7AWiTCYlPcMjIBrSj/tdeJkKp8ba7121VM3HfE8Rz31gISne+jYfQxgSylQSJa9wfcyhDfMLYgwJDIZJL7/9cP5GI0r/w== 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=91rq8pQ8W96B26QRLhyZbdJ03P+k3QwS54zN46FhSK8=; b=uEpmx486IktyCdfpcLrYu+FnlPWU4h6mJXKvtv8TYvTtyWrgGA/0RNUNZHBXsKNmZBFUucPnvgIi5HW1XJloElmvxO1IqS6nfi/A7w9w362h6qLG9iCgXSx6zjZ2VBXcvLs5fS9H16lw9h4ytYx4/bGGrFTmsofrZgn+jOr/Jjs= Received: from BN0PR04CA0064.namprd04.prod.outlook.com (2603:10b6:408:ea::9) by CY8PR12MB7538.namprd12.prod.outlook.com (2603:10b6:930:95::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:32:23 +0000 Received: from BL02EPF00021F68.namprd02.prod.outlook.com (2603:10b6:408:ea:cafe::19) by BN0PR04CA0064.outlook.office365.com (2603:10b6:408:ea::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 18:32:22 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F68.mail.protection.outlook.com (10.167.249.4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:32:22 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:32:22 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:32:18 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Greg KH , "Jeff Johnson" , Peter Zijlstra , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 03/14] ASoC: amd: acp: Refactor dmic-codec platform device creation Date: Tue, 11 Mar 2025 00:01:50 +0530 Message-ID: <20250310183201.11979-4-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F68:EE_|CY8PR12MB7538:EE_ X-MS-Office365-Filtering-Correlation-Id: f8272731-e684-4b97-977d-08dd6001e5fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: wsENIvKE2/+TTXPqIBH/dKNHy9hzRHKBm2VL2qSwBVXxuinZMHVF74rF4O0/KxuewDeiJGeTAAEeMlsX391inFYweAka0O+HhIm9YwwuWgTzfeAXzVZSiW9cIaOaeRiixJfZPjqIcsSRO0h6uBMqaUgCxxfrV/nC+VfxOqwTKT5cDL3z86HzxBlrE60pNSqduM5E80ZVjij+IR3Nyuy45gV0U64d+oWHPsxuXDgyDbjJT8xa21HTXfY8eC3OysAo3Uw2/n1kuXQzCHcKycRV9hqgy6OrKqKkJolPHo0nT6IYe/HLw4ilRgyaEKU0IUDhlh1v0SN8bNLF4hxbzVK7JndA4FmO2Dd66yQZh6RSkfFDH+jwq8hx2p5O2BqLonwRX5zsANb+RlMaqdE+IoWTcmZAntGoblrwSEdu86q28N+5jhZJzf6q1jwdkJBiwzZCABVUf4JwijhrVCDd5/2QlM7UyGCIF3hpdcu3v5TznN3ZWUr75Ju0v0UmT81XIdRP8MCahFPUm3fMRDJliJOEkD/buJT73ywFO5QVNOioTSRmIK+EiidQ0zGfUUDkK9kFuC8uDd0W3tUDZsKLQC+jhIyTn0KeMlkJ+L3NB1A2hxhz1ErvvyBNPuvuloaL3DiObw6jkDzMnXZX+AxUGPhKj9Ub5bRipSLL1N4f4bnfe8bkgZxMckZgZdqs+X9u3Q347vDsmVKyIiLwqcaaIHBMfwyyr5Q/+XTmoW9qvM9uoqT3jkbNVNVliRqoWcjDFArZOlGQa6VIhgn6U1NpxwzIzHbRaxw/aa+ciGFMY9XDzU2bYqeDnszKL0gdUjtNl7Mx/CoL9SY1qtAYHhLicfNuP+PuvtEMWpdJNI6YL+Vumh+nX/HYy7kSH1Jn+LLXU1A9L8R5uUN9HqeHm7kUVfm9T2M2YZ9RPWF5MkcC2hhxIM0VL+MbnhCpp+CV3VV/yfmPzK5c57OsujJIrndOZKThoIaCxbmQ6whiHOrNHSmAETDyuzrKoNWQtwtBeOb0eeUB7mDA/Y3MwgKKuX1UYKoGjQyG2MTbdODfWMBiWuLkcjT8Tts3om0x7mXjyEwIapJKhctX/pB6rXxv2VTZ3oeTD7Cjw4H4A6+3y7lP2Khvk7eERWLYQ4NWKKj23bHdoZdSsFrXKVoALWH/KDJcZHwgN/e45dfz+thG6MGhWLc6i7tX13iEEa8Fyf6ZzvDF0HTiUwP4J7UmjDoM+vY7ZGVB2vM9NnQ/31Ua1wyN8W+q5g0CkLRiP46H/C4rtjzIF/YpXNZaa5Re6FMcnl1DAi9i3DMdlkDPzyTckwXjpTpKaiXrz0X3SAQ6PLfP0ZExHJpMnfUhPZp0YBeen9zVphwXy+OvAj4RxJtFQTBUxcXSG4hh+5cNTf8z8vhaZM/PbRdkqeBnF6x25Tgef+nZYsWZZWTk75OUyizMp0HnqxOZDR6KTpHNRxmzLw+Zhr2gnNNf26NPxe2bYqwTaFVP4t+MPn3Y5pqd/yiqvIRO0ySiU0g= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:32:22.5910 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f8272731-e684-4b97-977d-08dd6001e5fe 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F68.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7538 Refactor dmic-codec platform driver creation using helper function. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-pci.c | 49 +++++++++++++++++++++++++------------ sound/soc/amd/acp/amd.h | 1 + 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index b5eabd0280bc..549e95415ab2 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -26,7 +26,6 @@ #define ACP3x_REG_START 0x1240000 #define ACP3x_REG_END 0x125C000 -static struct platform_device *dmic_dev; static struct platform_device *pdev; static const struct resource acp_res[] = { @@ -44,6 +43,26 @@ static const struct resource acp_res[] = { }, }; +static int create_acp_platform_devs(struct pci_dev *pci, struct acp_chip_info *chip) +{ + int ret; + + if (chip->is_pdm_dev && chip->is_pdm_config) { + chip->dmic_codec_dev = platform_device_register_data(&pci->dev, + "dmic-codec", + PLATFORM_DEVID_NONE, + NULL, 0); + if (IS_ERR(chip->dmic_codec_dev)) { + dev_err(&pci->dev, "failed to create DMIC device\n"); + ret = PTR_ERR(chip->dmic_codec_dev); + goto err; + } + } + return 0; +err: + return ret; +} + static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { struct platform_device_info pdevinfo; @@ -102,33 +121,33 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id goto release_regions; } chip->flag = flag; - dmic_dev = platform_device_register_data(dev, "dmic-codec", PLATFORM_DEVID_NONE, NULL, 0); - if (IS_ERR(dmic_dev)) { - dev_err(dev, "failed to create DMIC device\n"); - ret = PTR_ERR(dmic_dev); - goto release_regions; - } addr = pci_resource_start(pci, 0); chip->base = devm_ioremap(&pci->dev, addr, pci_resource_len(pci, 0)); if (!chip->base) { ret = -ENOMEM; - goto unregister_dmic_dev; + goto release_regions; } chip->acp_hw_ops_init(chip); ret = acp_hw_init(chip); if (ret) - goto unregister_dmic_dev; + goto release_regions; check_acp_config(pci, chip); if (!chip->is_pdm_dev && !chip->is_i2s_config) goto skip_pdev_creation; + ret = create_acp_platform_devs(pci, chip); + if (ret < 0) { + dev_err(&pci->dev, "ACP platform devices creation failed\n"); + goto de_init; + } + res = devm_kcalloc(&pci->dev, num_res, sizeof(struct resource), GFP_KERNEL); if (!res) { ret = -ENOMEM; - goto unregister_dmic_dev; + goto de_init; } for (i = 0; i < num_res; i++, res_acp++) { @@ -156,7 +175,7 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id if (IS_ERR(pdev)) { dev_err(&pci->dev, "cannot register %s device\n", pdevinfo.name); ret = PTR_ERR(pdev); - goto unregister_dmic_dev; + goto de_init; } skip_pdev_creation: @@ -168,8 +187,8 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id pm_runtime_allow(&pci->dev); return ret; -unregister_dmic_dev: - platform_device_unregister(dmic_dev); +de_init: + acp_hw_deinit(chip); release_regions: pci_release_regions(pci); disable_pci: @@ -223,8 +242,8 @@ static void acp_pci_remove(struct pci_dev *pci) chip = pci_get_drvdata(pci); pm_runtime_forbid(&pci->dev); pm_runtime_get_noresume(&pci->dev); - if (dmic_dev) - platform_device_unregister(dmic_dev); + if (chip->dmic_codec_dev) + platform_device_unregister(chip->dmic_codec_dev); if (pdev) platform_device_unregister(pdev); ret = acp_hw_deinit(chip); diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index 3c06567e112c..9511995da591 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -145,6 +145,7 @@ struct acp_chip_info { struct snd_acp_hw_ops *acp_hw_ops; int (*acp_hw_ops_init)(struct acp_chip_info *chip); struct platform_device *chip_pdev; + struct platform_device *dmic_codec_dev; unsigned int flag; /* Distinguish b/w Legacy or Only PDM */ bool is_pdm_dev; /* flag set to true when ACP PDM controller exists */ bool is_pdm_config; /* flag set to true when PDM configuration is selected from BIOS */ From patchwork Mon Mar 10 18:31:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010488 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2087.outbound.protection.outlook.com [40.107.96.87]) (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 9F9D822FAF8; Mon, 10 Mar 2025 18:32:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.96.87 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631555; cv=fail; b=fyJLiWuLKWlZwKQXk+UDWEx8m/ok8BRBi2l25PzHkbPt9GqKAdpAiGYWI7GLa8tW4tv9pB53SP2T+F1xVWgYRWekwaHKzGRPSA9UoMwrVpJGs82NJ2vcjlUHoMWZe3uflDcrp3hobZ1qFpI4cOM9F/eC1wvKo0Jm3XZVTHiaDx0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631555; c=relaxed/simple; bh=juMuTeyP+hnMq6gUtkv7WKjIJQMmeChABADlHmT/LlI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MmKODi/MJaJwc+Paq37TkFUucCWdE+Ajear5N5RVP4+DOEH92BnXbONBy6ZJskbI9NCv94UJlknVhwfBKKDmBNJsFYhG0g0wsqgNVeq+v3I29Oj3STFcGc+XXRyfCXA+iK8cLHhvZi+2xNvvLy6gzpV5RjIweljMre9UgbhDyHA= 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=pyxqQYoU; arc=fail smtp.client-ip=40.107.96.87 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="pyxqQYoU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=m2yq5PRWBydIXZaq2dQ1MCWHIlUnvAo7ccbyryoPjiVfpmnYPJDdnKNqJIUvSGICJvbdg8JUzojAQgaDLBiXp894AgRikoe7XRnZapkYUGTELmXteF9waVI4QV1klSoOLWwBkpQW9iK0xaJjCsHXsjBxZNX6U/b6imzz82bVKZWJOKZ6mw6j2aOE7JuQpQqmCDY/qSv8XaGh3MsqLUQdWYKssi+MXD7XK4yt2iVLZ1jXfshaP+7WaxXzTvVag7RLBdQxhX2lj9wEggkGKJPi/QAxam2m6LM9SwQpbOi1mS4NEREgHOKLMYcLGtK84OPaDgig3WC899Uo629+mNhG9Q== 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=MLkGmyTthe7acqzGPoN6+L6k2PMNXc3IrEnNVUa1EYc=; b=GPQis40JI1+GTVypL/+trGas1r2HUNAF2Z5KRDiZHN3i0pHs6i3WVqyWKlM5L7nlBFGfhGclUMmNMEhqqZkBVCIe8HUTZhkCdomr8MIzxX2dESpuftvdTdfkW/YH8mzgJ7Gl5on0VBVLsYuB3/hqG5sQS79YzGHHdDrN1L3KRvh9vtC1xRZJmyWZvdbs2670OdXdvkNOOroj/XHyRB6ZSVntFXnjXn/iVRnmokMGpi2EUvUhjSww5t9EIv56BgV3XEoUbz9fvYRgUlPWvCvhPt7dEaA2xkMb5a4PMT8p0B8QzS10x34bfHyb60ApvfShvKMStWTjDT0W6i8MH7xW3w== 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=MLkGmyTthe7acqzGPoN6+L6k2PMNXc3IrEnNVUa1EYc=; b=pyxqQYoUJtnCdWYDDop/MI+W19STmC9Gt/QAitTw4wnv+fcQiP9nEOd42jBCICNHf8jVH32L1MKwwH6z5NBtLQINluOBKe70mFDNSKKyxpS3uwBtvCt9f2IkrzCGlY375QX3lL8MRkQ7Bdd2OQ9w3XDs7CVy07lUmx7/dmrL66M= Received: from BN9PR03CA0204.namprd03.prod.outlook.com (2603:10b6:408:f9::29) by MN2PR12MB4208.namprd12.prod.outlook.com (2603:10b6:208:1d0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:32:29 +0000 Received: from BL02EPF00021F6F.namprd02.prod.outlook.com (2603:10b6:408:f9:cafe::af) by BN9PR03CA0204.outlook.office365.com (2603:10b6:408:f9::29) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 18:32:28 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F6F.mail.protection.outlook.com (10.167.249.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:32:28 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:32:27 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:32:24 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Greg KH , "Peter Zijlstra" , Jeff Johnson , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 04/14] ASoC: amd: acp: Refactor acp platform device creation Date: Tue, 11 Mar 2025 00:01:51 +0530 Message-ID: <20250310183201.11979-5-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F6F:EE_|MN2PR12MB4208:EE_ X-MS-Office365-Filtering-Correlation-Id: 6ac424d6-63bd-45c6-817a-08dd6001e976 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|7416014|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: dvcjkL5916BBN0AqX70xo1N5sBehkjYJRXaq9ycMfZJo53Mo/fiqA5h1AghvOoo1rFTBlqZbCF4dUpsxiIkZlbLtkAoPcTd+XlTI1PKWNrCU2w0tOq1HLHrdkA9RcZPQ1h4xyEPMOFAp64Pk2Foudcgpa1pj8lZE5XNqUEWOWZ3g2XIaNWq86NeyddaK0u2aRTLfYvNe56kFYVaheW3dn92bhkdNBCHU0mw8YdsxHu8uJOAyCEq9vWoKmtnbTLCErwkrmCmo7t5pdNoBakIzdw5LIXI6VPfMymEuHAjUEZg64qCwtq05eaYu9eZZJgfSD+4i/3aXrGmlTGaMB1HvsQfEV/krmgutqrGeBdEeGhN3mHXeGrhKmC09akuhLRIBx4zBCp3eepYjoUK2Ov1mHOT1AFz4Hp45KVQ82uUxiRTdnQ70TWTe6LMTV4d4tbJkGrgy60z3w70rTv5i5LST4LSJ69bW6B81hcFFOQbEu61HH2hNsdRd8ZX27oFFu6hfkiPsEdyfN02RTxMJgFyAljTzDMPaOIinAsqgKEK0EqD+/Vou4qOUPHtrz5/zIvV2Jx5NZdNdg9CxB43iylTREuhXQBNbcDFl3ZwryyHDIPjqnFe53fXdIRfjQZb0sVdOnQSz6sK3N2ubVGoc2C6GqztsWiDlKpSyOwy7nNqJfO3qPl+x/zBnw+9VKw7UjRDguIwkg9acVpW/Kv4vyC/ufjQwhUBpXmt/zdQQSm0AjCrA/uBQ491Hp1MU+4UChJUBMKv/KIT4ZwuoV32GmmOxhcMa6TVgKkpHyTuU8Au+FsFK1erJaq51hz21ppYAgTpGa31oObWJHjANOAgrDGZrJQbcZ5ToawvVqP2H486xNJBxeOB1pq0c8BUIvfK9es95LfkjIaFrHH650eySdwbPKfGQzAxnLYH3L7b/q7MjietAc0tnyRgUu5NF+b84+Cti4xLNqq6AmHrrjEeubvyl5trZ2UmpDGMFfPacH+bm/mfQ+DAUQtXFfOqoGzNGMjkule4UmfEDqrpaleg6mSP5F/j0lVJSbW9gS1NjwK0+qPCP6r8lrQMAYc+8Rh+31IF20LOe7ZPL5q3SKDG1XIF4k5BVLx1sGbojCKsHcl+8CBlQ7GDlx6DHCZrS0F4jPFBMA8ghLV/ACVVj9rnRJNKK4D3KN9hPlbg+SfU9nKo62GPu5PGX6YNveShrb5OrHsHyb7YiEg6vWqXs0oSXU1DSoor6+tY7wx5XxPziFxaqGXcQTtCNoxUDg7funE+7NZjC2LCN3wiLahkZtzDEACtfY9x+nkff2kJAPpm1NxphAjA7JRE+bHYwEdPDykcejaSeCkGCTmK9KgBaBxUPopawCnd12HxwgcLq2Ml7FGGgWXgvk57+JL/q+dng77wsgCzngZl1s8sP3/WDXXJBVFEs5mfoLOJeZygVs48IskqPsZ1jHYPLhVfqU8kxVj5O8gHq7geoKeZ3YbxPHLvmCDEJtDnWhrruP/tR2hwcFMoWqYY= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:32:28.4257 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6ac424d6-63bd-45c6-817a-08dd6001e976 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F6F.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4208 Refactor acp platform device creation logic and remove unused acp resource (acp_res) structure. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-pci.c | 119 ++++++++++++++++++------------------ sound/soc/amd/acp/amd.h | 4 ++ 2 files changed, 62 insertions(+), 61 deletions(-) diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index 549e95415ab2..0ffef70ab979 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -26,27 +26,56 @@ #define ACP3x_REG_START 0x1240000 #define ACP3x_REG_END 0x125C000 -static struct platform_device *pdev; - -static const struct resource acp_res[] = { - { - .start = 0, - .end = ACP3x_REG_END - ACP3x_REG_START, - .name = "acp_mem", - .flags = IORESOURCE_MEM, - }, - { - .start = 0, - .end = 0, - .name = "acp_dai_irq", - .flags = IORESOURCE_IRQ, - }, -}; +static void acp_fill_platform_dev_info(struct platform_device_info *pdevinfo, + struct device *parent, + struct fwnode_handle *fw_node, + char *name, unsigned int id, + const struct resource *res, + unsigned int num_res, + const void *data, + size_t size_data) +{ + pdevinfo->name = name; + pdevinfo->id = id; + pdevinfo->parent = parent; + pdevinfo->num_res = num_res; + pdevinfo->res = res; + pdevinfo->data = data; + pdevinfo->size_data = size_data; + pdevinfo->fwnode = fw_node; +} -static int create_acp_platform_devs(struct pci_dev *pci, struct acp_chip_info *chip) +static int create_acp_platform_devs(struct pci_dev *pci, struct acp_chip_info *chip, u32 addr) { + struct platform_device_info pdevinfo; + struct device *parent; int ret; + parent = &pci->dev; + + if (chip->is_i2s_config || chip->is_pdm_dev) { + chip->res = devm_kzalloc(&pci->dev, sizeof(struct resource), GFP_KERNEL); + if (!chip->res) { + ret = -ENOMEM; + goto err; + } + chip->res->flags = IORESOURCE_MEM; + chip->res->start = addr; + chip->res->end = addr + (ACP3x_REG_END - ACP3x_REG_START); + memset(&pdevinfo, 0, sizeof(pdevinfo)); + } + + memset(&pdevinfo, 0, sizeof(pdevinfo)); + acp_fill_platform_dev_info(&pdevinfo, parent, NULL, chip->name, + 0, chip->res, 1, chip, sizeof(*chip)); + + chip->acp_plat_dev = platform_device_register_full(&pdevinfo); + if (IS_ERR(chip->acp_plat_dev)) { + dev_err(&pci->dev, + "cannot register %s device\n", pdevinfo.name); + ret = PTR_ERR(chip->acp_plat_dev); + goto err; + } if (chip->is_pdm_dev && chip->is_pdm_config) { chip->dmic_codec_dev = platform_device_register_data(&pci->dev, "dmic-codec", @@ -55,22 +84,21 @@ static int create_acp_platform_devs(struct pci_dev *pci, struct acp_chip_info *c if (IS_ERR(chip->dmic_codec_dev)) { dev_err(&pci->dev, "failed to create DMIC device\n"); ret = PTR_ERR(chip->dmic_codec_dev); - goto err; + goto unregister_acp_plat_dev; } } return 0; +unregister_acp_plat_dev: + platform_device_unregister(chip->acp_plat_dev); err: return ret; } static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { - struct platform_device_info pdevinfo; struct device *dev = &pci->dev; - const struct resource *res_acp; struct acp_chip_info *chip; - struct resource *res; - unsigned int flag, addr, num_res, i; + unsigned int flag, addr; int ret; flag = snd_amd_acp_find_config(pci); @@ -94,8 +122,6 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id pci_set_master(pci); - res_acp = acp_res; - num_res = ARRAY_SIZE(acp_res); chip->acp_rev = pci->revision; switch (pci->revision) { case 0x01: @@ -129,6 +155,8 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id goto release_regions; } + chip->addr = addr; + chip->acp_hw_ops_init(chip); ret = acp_hw_init(chip); if (ret) @@ -138,48 +166,16 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id if (!chip->is_pdm_dev && !chip->is_i2s_config) goto skip_pdev_creation; - ret = create_acp_platform_devs(pci, chip); + ret = create_acp_platform_devs(pci, chip, addr); if (ret < 0) { dev_err(&pci->dev, "ACP platform devices creation failed\n"); goto de_init; } - res = devm_kcalloc(&pci->dev, num_res, sizeof(struct resource), GFP_KERNEL); - if (!res) { - ret = -ENOMEM; - goto de_init; - } - - for (i = 0; i < num_res; i++, res_acp++) { - res[i].name = res_acp->name; - res[i].flags = res_acp->flags; - res[i].start = addr + res_acp->start; - res[i].end = addr + res_acp->end; - if (res_acp->flags == IORESOURCE_IRQ) { - res[i].start = pci->irq; - res[i].end = res[i].start; - } - } - - memset(&pdevinfo, 0, sizeof(pdevinfo)); - - pdevinfo.name = chip->name; - pdevinfo.id = 0; - pdevinfo.parent = &pci->dev; - pdevinfo.num_res = num_res; - pdevinfo.res = &res[0]; - pdevinfo.data = chip; - pdevinfo.size_data = sizeof(*chip); - - pdev = platform_device_register_full(&pdevinfo); - if (IS_ERR(pdev)) { - dev_err(&pci->dev, "cannot register %s device\n", pdevinfo.name); - ret = PTR_ERR(pdev); - goto de_init; - } + chip->chip_pdev = chip->acp_plat_dev; + chip->dev = &chip->acp_plat_dev->dev; skip_pdev_creation: - chip->chip_pdev = pdev; dev_set_drvdata(&pci->dev, chip); pm_runtime_set_autosuspend_delay(&pci->dev, 2000); pm_runtime_use_autosuspend(&pci->dev); @@ -244,8 +240,9 @@ static void acp_pci_remove(struct pci_dev *pci) pm_runtime_get_noresume(&pci->dev); if (chip->dmic_codec_dev) platform_device_unregister(chip->dmic_codec_dev); - if (pdev) - platform_device_unregister(pdev); + if (chip->acp_plat_dev) + platform_device_unregister(chip->acp_plat_dev); + ret = acp_hw_deinit(chip); if (ret) dev_err(&pci->dev, "ACP de-init failed\n"); diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index 9511995da591..be1aa405a14a 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -140,12 +140,16 @@ struct acp_chip_info { char *name; /* Platform name */ + struct resource *res; + struct device *dev; unsigned int acp_rev; /* ACP Revision id */ void __iomem *base; /* ACP memory PCI base */ struct snd_acp_hw_ops *acp_hw_ops; int (*acp_hw_ops_init)(struct acp_chip_info *chip); struct platform_device *chip_pdev; struct platform_device *dmic_codec_dev; + struct platform_device *acp_plat_dev; + u32 addr; unsigned int flag; /* Distinguish b/w Legacy or Only PDM */ bool is_pdm_dev; /* flag set to true when ACP PDM controller exists */ bool is_pdm_config; /* flag set to true when PDM configuration is selected from BIOS */ From patchwork Mon Mar 10 18:31:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010489 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2071.outbound.protection.outlook.com [40.107.212.71]) (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 DA665235371; Mon, 10 Mar 2025 18:32:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.212.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631565; cv=fail; b=Ls9Hpap48nOnghF3Y7Pk+XYRbYvpf0hNXcF9ferfDr1zF+3lLOrCzfqHcBdRYI4srGQojiJGoOpUsx7Yf5z3/Sf5bmau/D/CjA0WOFCG0ou3wq5AO/X7A0nMeQQaALQq3b5oAHS3Pi5j2wydYi6vSG9nAIkNp73A0K4NK2aAeG8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631565; c=relaxed/simple; bh=XxCjuslXCc2ql5URWPDPs8p1GxntprR7ltKe2NTRYO0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gxkrooqthJNqxS2ayFBbU4dIsDoH7ND7lSdAMk1j0iRlgDjEmoJk2jDxrAyDDDwCBnF0NqRx/mo0FWhgAiu+svQeTDNCzcBS6+wd/24iPwJP8EmUKlQZAI7yr+KVi+a9qZPYAUuDSdA/DxTgx48ModIxJQ7xEx6kcEadh99esvQ= 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=BfZjungu; arc=fail smtp.client-ip=40.107.212.71 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="BfZjungu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EYBM3JlBu/TPuj44VKUdq91WMmHhFawnHLWLKZwW7natvvVh95Ap93vBmieazv8X4Ica1rwAZ5eAY8R0pJg5p7J5IpzRyy6fgYCqkX5rAF9YRpbM1fMA/wnYQt8WBz5+V65rotlqyTYCRtqneLbm3eOjwTwCVZ3x6havFSJn+MhMOGTbL2VStAfRgQCX6hsupBwIbRFY7FcNlsfCrA9UDSqfMVlSPMFZFXdpV/2k0Hl3VAalD1nIS61KSDTK1KubjEU89rUdzMn4vv3BN/cRf7DrI8fseIda+Pa2ZacKklbekdDq8Ta2++W1TUFsXbz8nT3n2kxPrIUxTbEexRMbHQ== 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=zfPRNCdFcMMSkANBdPgi+1qdzN1XA4svbD3D/V0GteM=; b=XdChk8pm5UbV6f0JaUFjYIHo4eSJUq2lxdTp2ZiCPl4ON9ovbJRS0beseayhs9FMugum6Cz2YsMVKTaqSeCrX5C5cE1voGyjAjVa6Sq8tBTdlv1NQ4IyOcWo0dNmchTiTIoeQR+tGbjm0xDuGJjDMdSfWNkTe39AX70QZ5dQ97zZ6R1DGxZLNV9+t+o+lX8OIeCCAAvD3xQZqt/Ap+lRodM3+ludJALWiOyI5yShXjWyEeo7KCqd6ZbqipCW6ZWyQMVNp7O8M9+lL+kl3uKrzeo7ub0zgbOMgmVoBOsHd0e9IzzLsxr89fcrgc42yaG8AyRbtMvtCiXzie8s8UGDmg== 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=zfPRNCdFcMMSkANBdPgi+1qdzN1XA4svbD3D/V0GteM=; b=BfZjunguFIVOUfd5ycwp6oePoUcpPznF4paz9WUpraGnPsbQfqpQGLyGv8wm/bRNQqYhTTx7TIQyuZqM7xZCuBaJzx763UZEl7xUuZVEZal4YMy1jCQkvNZCcH8O6WESNdlfXrkCNM+21tBFSkxpwuEvDY/UnWKDF51PVN4ByAc= Received: from MN0P220CA0023.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:52e::27) by PH7PR12MB5594.namprd12.prod.outlook.com (2603:10b6:510:134::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 18:32:39 +0000 Received: from BL02EPF00021F6B.namprd02.prod.outlook.com (2603:10b6:208:52e:cafe::2a) by MN0P220CA0023.outlook.office365.com (2603:10b6:208:52e::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 18:32:39 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F6B.mail.protection.outlook.com (10.167.249.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:32:39 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:32:39 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:32:38 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:32:34 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Greg KH , "Jeff Johnson" , Peter Zijlstra , Murad Masimov , Muhammad Usama Anjum , =?utf-8?q?Uwe_Kleine-K?= =?utf-8?q?=C3=B6nig?= , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 05/14] ASoC: amd: acp: Refactor acp machine select Date: Tue, 11 Mar 2025 00:01:52 +0530 Message-ID: <20250310183201.11979-6-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F6B:EE_|PH7PR12MB5594:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ad3a66e-f4ec-41ab-f5f4-08dd6001f01a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: sQXNvODXneXonXRAZdVIO7yjItc1pRMytgvE2JNR4lztgLtLZHfUrhh4trw4NjJKfqawshY8hBtiSaC27ryu5d7ldHCTkCnXiq23BjzdBfn3HsCcyRqwAS/seHegH8yPQcxultaBX8Qv2CytUo9KNHzenk7bLxgWsk/u7cg1KsvNcGvAf03KX3ihR3PHMThAjnLPPbdFV6Nh+C33J9ofU9fIaqcHzN/zwVSTkX6Cz+h6nEjYo4sGA7mdn0iyrRbVRiJ4ypQ5fhjr0GkdaLBlZT64B1Q4zz2zzNemHNnDpdyV5XTLrfBxE9JfK0tLJQaTfy+J42uxf/P5k0hFcBT1LGQDgSX4YzfLbNfwsHZv3k57eVGaUACXIrul0Ql3TvsifYUKrymFT15xWJqupL59rxAy/30bhHtszkSnVxCxJyAGonaZVvEtuy25/vgGITD9/Jffrvpfve18noyOkrUpiJxypCWyfQ62gA9KwcHcasQ0lXbQzeKGBdSlc/KDJlR7s40+Xp1QaKNqBdIIGD4ptHEbeiu8DQgzvTO8GuCs57MdD0dHJh9/ayjvQL/8xwserTh/AWzIf6tlKbjOS8aoXssOgOwxxlcy1qm2++tXQ9mIEa3eOnZjVCaZOz/o9QhS8BYMkcnNpFNtiPsiJxNvlD3K5XktVwmsJml6QwUD7pkIrhElpUNc5TgtTkCL6DYhCVboBN36ZFm8m7qeE7MbJNrXKueooTHRTiT+QSruTFDRerx1suPlFTVUTQJe2ps/QOjWPzySuossgVYf1/395Dsf3TcyOTpcO7bV3DbmyMCKRALwrxBOrqKqmnW/DrmSSTqPSGaYOvMMLzG68JGBZQGm0+KF212GE5BFqRLwyqj6Fr/saA/+stCg/zdWEwL2xabOLWkKe7jP3R0BcK8r6iB9Kajwe5jbxUN3sZsOO9NLh5EEw6PLY2mryBSsbtUvSRmZEyUB9QjPQrtFYAi5EgiNpqW93zAOo+z/iRKGzg02V6Z5P36EOhJdH2OpRksPTi4H/WW6CxHyguBOrO0Eg9iQ/4Qe9WeMFjlxiTxryYW1rjd5D5TSj942GZ1D7S+MC4DIMTNSN/4gPvAAaiRvyuvNHL7jqvN0CRdIUczj+CpsMZVQcBPACIs+fIhyY5sYTjGo8g29maSrIEqZbUmZerjroOwG2mDG5Ty6EJNKMuCmkz8wiV7/WqIubwknM4YWZV9+EktLzRKACBsd/OuiwqMrSf4AmpfkRd8iBVpAudeZJ6zYhXa8WupC/QfyRsUaa81D2nZjwVcYUseagTeuluwQhDrDF7/dJScD/9dzbLU98vjKY8HyXnXKEOAx4ePnH6OZI3NKY48lQDsqE/z6HLBvYMLDPEdfIxqBkNb759OrRdleGlKVV8L0wjiwVPAqHGTMnrKh3s9iOAUfNT8WWQ6LMyI3956UlGOxHEqMJn5cGIwqarR7uoHJ3aS9kB3O9lPlfgVHtMMSIER3upsCKASf3hQ2ZIO4fdC3G1O8IyE= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:32:39.5542 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ad3a66e-f4ec-41ab-f5f4-08dd6001f01a 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F6B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB5594 Refactor and move acp machine select function from acp platform driver to acp pci driver and assign platform specific acpi machines to chip->machines. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-legacy-common.c | 28 +++++++++ sound/soc/amd/acp/acp-pci.c | 7 +++ sound/soc/amd/acp/acp-platform.c | 28 --------- sound/soc/amd/acp/acp-rembrandt.c | 32 ----------- sound/soc/amd/acp/acp-renoir.c | 42 -------------- sound/soc/amd/acp/acp63.c | 10 ---- sound/soc/amd/acp/acp70.c | 10 ---- sound/soc/amd/acp/amd.h | 81 ++++++++++++++++++++++++++- 8 files changed, 114 insertions(+), 124 deletions(-) diff --git a/sound/soc/amd/acp/acp-legacy-common.c b/sound/soc/amd/acp/acp-legacy-common.c index f87a2da8c641..886615798b93 100644 --- a/sound/soc/amd/acp/acp-legacy-common.c +++ b/sound/soc/amd/acp/acp-legacy-common.c @@ -16,6 +16,8 @@ #include #include +#include "../mach-config.h" + #define ACP_RENOIR_PDM_ADDR 0x02 #define ACP_REMBRANDT_PDM_ADDR 0x03 #define ACP63_PDM_ADDR 0x02 @@ -350,6 +352,32 @@ int acp_deinit(struct acp_chip_info *chip) return 0; } EXPORT_SYMBOL_NS_GPL(acp_deinit, "SND_SOC_ACP_COMMON"); +int acp_machine_select(struct acp_chip_info *chip) +{ + struct snd_soc_acpi_mach *mach; + int size, platform; + + if (chip->flag == FLAG_AMD_LEGACY_ONLY_DMIC) { + platform = chip->acp_rev; + chip->mach_dev = platform_device_register_data(chip->dev, "acp-pdm-mach", + PLATFORM_DEVID_NONE, &platform, + sizeof(platform)); + } else { + size = sizeof(*chip->machines); + mach = snd_soc_acpi_find_machine(chip->machines); + if (!mach) { + dev_err(chip->dev, "warning: No matching ASoC machine driver found\n"); + return -EINVAL; + } + mach->mach_params.subsystem_rev = chip->acp_rev; + chip->mach_dev = platform_device_register_data(chip->dev, mach->drv_name, + PLATFORM_DEVID_NONE, mach, size); + } + if (IS_ERR(chip->mach_dev)) + dev_warn(chip->dev, "Unable to register Machine device\n"); + return 0; +} +EXPORT_SYMBOL_NS_GPL(acp_machine_select, "SND_SOC_ACP_COMMON"); static void check_acp3x_config(struct acp_chip_info *chip) { diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index 0ffef70ab979..99297a388ed7 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -127,19 +127,23 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id case 0x01: chip->name = "acp_asoc_renoir"; chip->acp_hw_ops_init = acp31_hw_ops_init; + chip->machines = snd_soc_acpi_amd_acp_machines; break; case 0x6f: chip->name = "acp_asoc_rembrandt"; chip->acp_hw_ops_init = acp6x_hw_ops_init; + chip->machines = snd_soc_acpi_amd_rmb_acp_machines; break; case 0x63: chip->name = "acp_asoc_acp63"; chip->acp_hw_ops_init = acp63_hw_ops_init; + chip->machines = snd_soc_acpi_amd_acp63_acp_machines; break; case 0x70: case 0x71: chip->name = "acp_asoc_acp70"; chip->acp_hw_ops_init = acp70_hw_ops_init; + chip->machines = snd_soc_acpi_amd_acp70_acp_machines; break; default: dev_err(dev, "Unsupported device revision:0x%x\n", pci->revision); @@ -175,6 +179,7 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id chip->chip_pdev = chip->acp_plat_dev; chip->dev = &chip->acp_plat_dev->dev; + acp_machine_select(chip); skip_pdev_creation: dev_set_drvdata(&pci->dev, chip); pm_runtime_set_autosuspend_delay(&pci->dev, 2000); @@ -242,6 +247,8 @@ static void acp_pci_remove(struct pci_dev *pci) platform_device_unregister(chip->dmic_codec_dev); if (chip->acp_plat_dev) platform_device_unregister(chip->acp_plat_dev); + if (chip->mach_dev) + platform_device_unregister(chip->mach_dev); ret = acp_hw_deinit(chip); if (ret) diff --git a/sound/soc/amd/acp/acp-platform.c b/sound/soc/amd/acp/acp-platform.c index aa330aeeb301..7d6abff28b23 100644 --- a/sound/soc/amd/acp/acp-platform.c +++ b/sound/soc/amd/acp/acp-platform.c @@ -21,7 +21,6 @@ #include #include "amd.h" -#include "../mach-config.h" #include "acp-mach.h" #define DRV_NAME "acp_i2s_dma" @@ -108,33 +107,6 @@ static const struct snd_pcm_hardware acp6x_pcm_hardware_capture = { .periods_max = CAPTURE_MAX_NUM_PERIODS, }; -int acp_machine_select(struct acp_dev_data *adata) -{ - struct snd_soc_acpi_mach *mach; - int size, platform; - - if (adata->flag == FLAG_AMD_LEGACY_ONLY_DMIC) { - platform = adata->acp_rev; - adata->mach_dev = platform_device_register_data(adata->dev, "acp-pdm-mach", - PLATFORM_DEVID_NONE, &platform, - sizeof(platform)); - } else { - size = sizeof(*adata->machines); - mach = snd_soc_acpi_find_machine(adata->machines); - if (!mach) { - dev_err(adata->dev, "warning: No matching ASoC machine driver found\n"); - return -EINVAL; - } - mach->mach_params.subsystem_rev = adata->acp_rev; - adata->mach_dev = platform_device_register_data(adata->dev, mach->drv_name, - PLATFORM_DEVID_NONE, mach, size); - } - if (IS_ERR(adata->mach_dev)) - dev_warn(adata->dev, "Unable to register Machine device\n"); - return 0; -} -EXPORT_SYMBOL_NS_GPL(acp_machine_select, "SND_SOC_ACP_COMMON"); - static irqreturn_t i2s_irq_handler(int irq, void *data) { struct acp_dev_data *adata = data; diff --git a/sound/soc/amd/acp/acp-rembrandt.c b/sound/soc/amd/acp/acp-rembrandt.c index e727754a8231..eb09878c0d5c 100644 --- a/sound/soc/amd/acp/acp-rembrandt.c +++ b/sound/soc/amd/acp/acp-rembrandt.c @@ -44,36 +44,6 @@ static struct acp_resource rsrc = { .sram_pte_offset = 0x03802800, }; -static struct snd_soc_acpi_codecs amp_rt1019 = { - .num_codecs = 1, - .codecs = {"10EC1019"} -}; - -static struct snd_soc_acpi_codecs amp_max = { - .num_codecs = 1, - .codecs = {"MX98360A"} -}; - -static struct snd_soc_acpi_mach snd_soc_acpi_amd_rmb_acp_machines[] = { - { - .id = "10508825", - .drv_name = "rmb-nau8825-max", - .machine_quirk = snd_soc_acpi_codec_list, - .quirk_data = &_max, - }, - { - .id = "AMDI0007", - .drv_name = "rembrandt-acp", - }, - { - .id = "RTL5682", - .drv_name = "rmb-rt5682s-rt1019", - .machine_quirk = snd_soc_acpi_codec_list, - .quirk_data = &_rt1019, - }, - {}, -}; - static struct snd_soc_dai_driver acp_rmb_dai[] = { { .name = "acp-i2s-sp", @@ -230,8 +200,6 @@ static int rembrandt_audio_probe(struct platform_device *pdev) adata->acp_rev = chip->acp_rev; adata->flag = chip->flag; adata->is_i2s_config = chip->is_i2s_config; - adata->machines = snd_soc_acpi_amd_rmb_acp_machines; - acp_machine_select(adata); dev_set_drvdata(dev, adata); diff --git a/sound/soc/amd/acp/acp-renoir.c b/sound/soc/amd/acp/acp-renoir.c index ca2b74283d8f..2b47c6bfc9e7 100644 --- a/sound/soc/amd/acp/acp-renoir.c +++ b/sound/soc/amd/acp/acp-renoir.c @@ -36,45 +36,6 @@ static struct acp_resource rsrc = { .sram_pte_offset = 0x02052800, }; -static struct snd_soc_acpi_codecs amp_rt1019 = { - .num_codecs = 1, - .codecs = {"10EC1019"} -}; - -static struct snd_soc_acpi_codecs amp_max = { - .num_codecs = 1, - .codecs = {"MX98360A"} -}; - -static struct snd_soc_acpi_mach snd_soc_acpi_amd_acp_machines[] = { - { - .id = "10EC5682", - .drv_name = "acp3xalc56821019", - .machine_quirk = snd_soc_acpi_codec_list, - .quirk_data = &_rt1019, - }, - { - .id = "RTL5682", - .drv_name = "acp3xalc5682sm98360", - .machine_quirk = snd_soc_acpi_codec_list, - .quirk_data = &_max, - }, - { - .id = "RTL5682", - .drv_name = "acp3xalc5682s1019", - .machine_quirk = snd_soc_acpi_codec_list, - .quirk_data = &_rt1019, - }, - { - .id = "AMDI1019", - .drv_name = "renoir-acp", - }, - { - .id = "ESSX8336", - .drv_name = "acp3x-es83xx", - }, - {}, -}; static struct snd_soc_dai_driver acp_renoir_dai[] = { { @@ -188,9 +149,6 @@ static int renoir_audio_probe(struct platform_device *pdev) adata->acp_rev = chip->acp_rev; adata->flag = chip->flag; - adata->machines = snd_soc_acpi_amd_acp_machines; - acp_machine_select(adata); - dev_set_drvdata(dev, adata); acp_enable_interrupts(adata); acp_platform_register(dev); diff --git a/sound/soc/amd/acp/acp63.c b/sound/soc/amd/acp/acp63.c index 4187a8968de7..76a26b82e3ad 100644 --- a/sound/soc/amd/acp/acp63.c +++ b/sound/soc/amd/acp/acp63.c @@ -62,14 +62,6 @@ static struct acp_resource rsrc = { .sram_pte_offset = 0x03802800, }; -static struct snd_soc_acpi_mach snd_soc_acpi_amd_acp63_acp_machines[] = { - { - .id = "AMDI0052", - .drv_name = "acp63-acp", - }, - {}, -}; - static struct snd_soc_dai_driver acp63_dai[] = { { .name = "acp-i2s-sp", @@ -259,8 +251,6 @@ static int acp63_audio_probe(struct platform_device *pdev) adata->acp_rev = chip->acp_rev; adata->flag = chip->flag; adata->is_i2s_config = chip->is_i2s_config; - adata->machines = snd_soc_acpi_amd_acp63_acp_machines; - acp_machine_select(adata); dev_set_drvdata(dev, adata); if (chip->is_i2s_config && rsrc.soc_mclk) { diff --git a/sound/soc/amd/acp/acp70.c b/sound/soc/amd/acp/acp70.c index 7f4ec3bfaeab..3e603c5f736a 100644 --- a/sound/soc/amd/acp/acp70.c +++ b/sound/soc/amd/acp/acp70.c @@ -40,14 +40,6 @@ static struct acp_resource rsrc = { .sram_pte_offset = 0x03800000, }; -static struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_acp_machines[] = { - { - .id = "AMDI0029", - .drv_name = "acp70-acp", - }, - {}, -}; - static struct snd_soc_dai_driver acp70_dai[] = { { .name = "acp-i2s-sp", @@ -187,10 +179,8 @@ static int acp_acp70_audio_probe(struct platform_device *pdev) adata->dai_driver = acp70_dai; adata->num_dai = ARRAY_SIZE(acp70_dai); adata->rsrc = &rsrc; - adata->machines = snd_soc_acpi_amd_acp70_acp_machines; adata->acp_rev = chip->acp_rev; adata->flag = chip->flag; - acp_machine_select(adata); dev_set_drvdata(dev, adata); diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index be1aa405a14a..b7a1b4aa8fef 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -149,6 +149,8 @@ struct acp_chip_info { struct platform_device *chip_pdev; struct platform_device *dmic_codec_dev; struct platform_device *acp_plat_dev; + struct platform_device *mach_dev; + struct snd_soc_acpi_mach *machines; u32 addr; unsigned int flag; /* Distinguish b/w Legacy or Only PDM */ bool is_pdm_dev; /* flag set to true when ACP PDM controller exists */ @@ -195,7 +197,6 @@ struct acp_dev_data { struct list_head stream_list; spinlock_t acp_lock; - struct snd_soc_acpi_mach *machines; struct platform_device *mach_dev; u32 bclk_div; @@ -245,13 +246,89 @@ enum acp_config { ACP_CONFIG_20, }; +struct snd_soc_acpi_codecs amp_rt1019 = { + .num_codecs = 1, + .codecs = {"10EC1019"} +}; + +struct snd_soc_acpi_codecs amp_max = { + .num_codecs = 1, + .codecs = {"MX98360A"} +}; + +struct snd_soc_acpi_mach snd_soc_acpi_amd_acp_machines[] = { + { + .id = "10EC5682", + .drv_name = "acp3xalc56821019", + .machine_quirk = snd_soc_acpi_codec_list, + .quirk_data = &_rt1019, + }, + { + .id = "RTL5682", + .drv_name = "acp3xalc5682sm98360", + .machine_quirk = snd_soc_acpi_codec_list, + .quirk_data = &_max, + }, + { + .id = "RTL5682", + .drv_name = "acp3xalc5682s1019", + .machine_quirk = snd_soc_acpi_codec_list, + .quirk_data = &_rt1019, + }, + { + .id = "AMDI1019", + .drv_name = "renoir-acp", + }, + { + .id = "ESSX8336", + .drv_name = "acp3x-es83xx", + }, + {}, +}; + +struct snd_soc_acpi_mach snd_soc_acpi_amd_rmb_acp_machines[] = { + { + .id = "10508825", + .drv_name = "rmb-nau8825-max", + .machine_quirk = snd_soc_acpi_codec_list, + .quirk_data = &_max, + }, + { + .id = "AMDI0007", + .drv_name = "rembrandt-acp", + }, + { + .id = "RTL5682", + .drv_name = "rmb-rt5682s-rt1019", + .machine_quirk = snd_soc_acpi_codec_list, + .quirk_data = &_rt1019, + }, + {}, +}; + +struct snd_soc_acpi_mach snd_soc_acpi_amd_acp63_acp_machines[] = { + { + .id = "AMDI0052", + .drv_name = "acp63-acp", + }, + {}, +}; + +struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_acp_machines[] = { + { + .id = "AMDI0029", + .drv_name = "acp70-acp", + }, + {}, +}; + extern const struct snd_soc_dai_ops asoc_acp_cpu_dai_ops; extern const struct snd_soc_dai_ops acp_dmic_dai_ops; int acp_platform_register(struct device *dev); int acp_platform_unregister(struct device *dev); -int acp_machine_select(struct acp_dev_data *adata); +int acp_machine_select(struct acp_chip_info *chip); int acp_init(struct acp_chip_info *chip); int acp_deinit(struct acp_chip_info *chip); From patchwork Mon Mar 10 18:31:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010490 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2088.outbound.protection.outlook.com [40.107.223.88]) (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 84D2E233158; Mon, 10 Mar 2025 18:33:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.88 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631583; cv=fail; b=Hvfin0Zcf0ae2Nu8EXoZfJkdVbJz8jl78xHC7KmECsdpGMkQ5d7WgvarF+CzhC7eDUjPmqjY7E2GeRI1qBsFEJQITQ8fSQqTWKyZG6MYX9KYCphtJYGTCWPPUUJEGfU/98vtOqggM0L1FP6NoZKt3iVu4JxRozCmrAf/ZJoG+1M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631583; c=relaxed/simple; bh=liZl/Y6fGih/3cvFbHkLxARRBQwGW4tdwR9Q1qrp01Y=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ouTloGul+aIO/61qdF+1gK+y+5KJ3VuWlFxE9sBPwyXv6JMv3VzGcxSNHTVNn8el7nZ2FuGdEikfyT8YZxFI9qJySyvVGgj4sUjed0s8ny1VQafjnXHKw4BocPLugTbZGtkQn2HmImxR92GbX39LlI61UGmEN1r+uuicYZ2WsPg= 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=NBg75fFB; arc=fail smtp.client-ip=40.107.223.88 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="NBg75fFB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MqceNRaS9D0rK2QKZLmN4OjuGUZ32rK6hqG5avaJE08GU/DWKzFrxW3AD4pCETwBDuOpOQLbHa9Eb+eC95qRgZ8agAJZX6aqR1vbsnRc0G1h6Qhkw9GMZ1fkwKm679rFVVv7AtugfX3PI7IK5jPdLuj/zyrvPMvpDXAurKFtb16j5dnu0AhCk4ZHwldpY9REwyQAlpZxac2ihLX+VVYByN0vRIi8mC2Gjq8gvhptFHmh9JjFBWd5S1l1vgf+jwPD90rMCn1Ez964ZmigVuhgpnE4zwKX4/NWSJY0NM4qGOy8gJld7kRMs8f7DFBzc8X56xYQdX7U8hX2/znmYh0SkQ== 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=uY7rv5gohp7osrs+Bv15b+sQwGFQGw3FQ55QEGZCClg=; b=U7haaYvsjI0i60azydL9h7IEoicj93dQ8YFkPYbFs7SEzwCB5A+6qJ3KIlB4dXPbZ5dN9dondNPR17ye6trkbAU08DK4fi5dWnVmK0vK0CfbwVlkRmmga36xBngG7haxZCsV5ofW+yIL6FsCHjNmicKsgYNfNtdxmdsWOABUtwF7QWx+UWp6N4Nh2UwfVhn7CF3mQXF4FV9NzZ0eUYhPBm67JnPCIT7Wv+1Rpush7cdf7OXvrHYZP8q6Uka/VrAv8w4ocEp1mV5+cfuzyzdixv20DauyX3rPp5vtZ7hyZrKQtt0k6tZnC/4JY8xOda39FcqSmZ64ZnHDIctF4QvnYg== 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=uY7rv5gohp7osrs+Bv15b+sQwGFQGw3FQ55QEGZCClg=; b=NBg75fFBE/wEUUWR1bu48MBgqvwwPAgF9EcNew7bINxTskPGfhhfh65Zf0T4tv9f2YgRVvtQFeHVfBJaZ89K2fhFZLC7yTnlxSGnqjz6U/0nmDI2ZVl3whd2fDZL/Cr1CtFlVltNr1m9DDK6EoD0okQ808HbCvX27WI1pCXgSHY= Received: from BN8PR12CA0013.namprd12.prod.outlook.com (2603:10b6:408:60::26) by CH3PR12MB9169.namprd12.prod.outlook.com (2603:10b6:610:1a0::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:32:53 +0000 Received: from BL02EPF00021F6D.namprd02.prod.outlook.com (2603:10b6:408:60:cafe::97) by BN8PR12CA0013.outlook.office365.com (2603:10b6:408:60::26) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.24 via Frontend Transport; Mon, 10 Mar 2025 18:32:53 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F6D.mail.protection.outlook.com (10.167.249.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:32:53 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:32:52 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:32:52 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:32:47 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Peter Zijlstra , Greg KH , Daniel Baluta , "Jeff Johnson" , Murad Masimov , Muhammad Usama Anjum , =?utf-8?q?Uwe_Kleine-K?= =?utf-8?q?=C3=B6nig?= , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 06/14] ASoC: amd: acp: Add new interrupt handle callbacks in acp_common_hw_ops Date: Tue, 11 Mar 2025 00:01:53 +0530 Message-ID: <20250310183201.11979-7-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F6D:EE_|CH3PR12MB9169:EE_ X-MS-Office365-Filtering-Correlation-Id: 229346e7-16eb-4124-fa71-08dd6001f833 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: 3j3hc/ETFrYucuIGkUHWFAqOtzUQ0N/iA1rDy9VslbvbqXBE4Mz9D7F1WKphxGpJvKrxXglEJWMdG4rDgTN1VUJqDTDq8/y7UJDozqha4xuvm20sfcw5lTTT3OToczkO2Bnr3RCd46Hr0InVCJeQYAklWVQImpyQdXdO2wU3Q5tEOTS2rgVDSVINTlu7Ft7YXr63Arf2egyOe99YF3Aw2qrkVzxqSO9CiT/f7+yrPuK1rHbv/Ifr2nB4pBWa+LpPPoxKKRBvyUhd7JCIsyEqt6JB/6Jos+XB74e5zxZpGdhmtjOKzzfAdOM/BXdvjIv7ZvCyHzy0UBXz7YnCwkFHyJP01VlmdruiLk3hdN8vuxL3BsCQ+sfRE8hK7yMflytvfyMv7nAuXQXGotjSq4a8wGwj8MWgDag1KIpctHgq690h3z8nFmegeOZTgisVJhMS6oN4jsx200BVlOZSSOVYhW+QGhvWrs0ROhanXQCCSQ6RzbyhBWdc8SDYGXjMhrYsoSwrQ5+e0vyqRjQl9TF+mypHTDr0V4Eyq3Jt+I3FDU4i2nwc62BH/mV+rLSLy4/ON8L/OIhNHItN6ckDd/uWsfv9apmZL7cFK5bUjaoPRwwzHZmrffeQsvZAWu87L+KtwEPKUR7rHQDCVcF1R6K8huvPJ2vh8ZGHlFsUk5wud7+9n0m32JRO1pYm+awcFH821Ff3P0lHUMAPk5AE9qVYnp9oP5xDHUL4GShDixbU055XdsRh6D6WohH4n25lYX39lV8pdw/ntxgiRjVn7VtF6tCL2Zwb54zhXurxiknR2QtwluReqZvGKM8IxszLg6UGs7TpYY/IJRjejDwEHyHW1cPgAqN3kt8Vb5nLhVb3joP1YvXOfdKcSZa+rrkyn9LLw8vlOKpvun0qZh/f4amg8krx+ocRRznwJOg74PtMbO2VLOu/nyexBe3MD9WiI5FYKco05JeUPTCPWe3K/JLLCll/zFaHXJRD9B4D7VEczJoXo6fdiZ+rV0H+KoUljnpv86ekH/xmy6tCZykPt/jOrlb7vckTqGQ+y7yPSN5s1KwNIm9JE939kzv2g/eoVFq53y8gjpC9QYXSY0lDO3jJYvePaPAZ96f0wNBdSw861OeOW+hvbq3VD0zBONfW677oZQtOqnAD42L3mWrX5Y+KhRKjrQbIqoo5e6NhmC08GyN7BdYNTEOQr52V7HdLkLgtvJV9xXg/FgtwGknCb2CioLHJp4+mZrEMzmeCR7/UWHwGyWIKPMM+nY77BeUdixNdklCFJRMT8vKLsznwPF5codb0/3tzPyHFyx7s9vesxotOW2ACUFjIt6QamRApuWon7ArslQ19pqyadumGNsKKGUC+QdMJgvUmhf+DYyZGesy35vAJ1kQxw43c0OfqD6gfeAMRACBZZaJFDbJtMiqjGGFEoa1YpEIVgPljyHwsGvUoVxqDhL18J/xw9qv23cmH3/VmsqRUa0JBT0MiHZrD/A== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:32:53.1399 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 229346e7-16eb-4124-fa71-08dd6001f833 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F6D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9169 Add new interrupt handle callbacks in acp_common_hw_ops. Refactor and move interrupt handler registration form platform driver to pci driver. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-i2s.c | 4 +- sound/soc/amd/acp/acp-legacy-common.c | 79 +++++++++++++++++++++++---- sound/soc/amd/acp/acp-pci.c | 29 +++++++--- sound/soc/amd/acp/acp-pdm.c | 12 ++-- sound/soc/amd/acp/acp-platform.c | 50 +++-------------- sound/soc/amd/acp/acp-rembrandt.c | 15 ++++- sound/soc/amd/acp/acp-renoir.c | 15 ++++- sound/soc/amd/acp/acp63.c | 15 ++++- sound/soc/amd/acp/acp70.c | 15 ++++- sound/soc/amd/acp/amd.h | 29 +++++++++- sound/soc/amd/acp/chip_offset_byte.h | 12 ++-- 11 files changed, 184 insertions(+), 91 deletions(-) diff --git a/sound/soc/amd/acp/acp-i2s.c b/sound/soc/amd/acp/acp-i2s.c index 89e99ed4275a..2f458c76f9fc 100644 --- a/sound/soc/amd/acp/acp-i2s.c +++ b/sound/soc/amd/acp/acp-i2s.c @@ -617,7 +617,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d writel(acp_fifo_addr, adata->acp_base + reg_fifo_addr); writel(FIFO_SIZE, adata->acp_base + reg_fifo_size); - ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(adata, rsrc->irqp_used)); + ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(chip, rsrc->irqp_used)); ext_int_ctrl |= BIT(I2S_RX_THRESHOLD(rsrc->offset)) | BIT(BT_RX_THRESHOLD(rsrc->offset)) | BIT(I2S_TX_THRESHOLD(rsrc->offset)) | @@ -625,7 +625,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d BIT(HS_RX_THRESHOLD(rsrc->offset)) | BIT(HS_TX_THRESHOLD(rsrc->offset)); - writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(adata, rsrc->irqp_used)); + writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(chip, rsrc->irqp_used)); return 0; } diff --git a/sound/soc/amd/acp/acp-legacy-common.c b/sound/soc/amd/acp/acp-legacy-common.c index 886615798b93..13fddce8df56 100644 --- a/sound/soc/amd/acp/acp-legacy-common.c +++ b/sound/soc/amd/acp/acp-legacy-common.c @@ -27,26 +27,76 @@ const struct snd_acp_hw_ops acp_common_hw_ops = { /* ACP hardware initilizations */ .acp_init = acp_init, .acp_deinit = acp_deinit, + + /* ACP Interrupts*/ + .irq = acp_irq_handler, + .en_interrupts = acp_enable_interrupts, + .dis_interrupts = acp_disable_interrupts, }; EXPORT_SYMBOL_NS_GPL(acp_common_hw_ops, "SND_SOC_ACP_COMMON"); -void acp_enable_interrupts(struct acp_dev_data *adata) + +irqreturn_t acp_irq_handler(int irq, void *data) { + struct acp_chip_info *chip = data; + struct acp_dev_data *adata = chip->adata; struct acp_resource *rsrc = adata->rsrc; + struct acp_stream *stream; + u16 i2s_flag = 0; + u32 ext_intr_stat, ext_intr_stat1; + + if (adata->rsrc->no_of_ctrls == 2) + ext_intr_stat1 = readl(ACP_EXTERNAL_INTR_STAT(chip, (rsrc->irqp_used - 1))); + + ext_intr_stat = readl(ACP_EXTERNAL_INTR_STAT(chip, rsrc->irqp_used)); + + spin_lock(&adata->acp_lock); + list_for_each_entry(stream, &adata->stream_list, list) { + if (ext_intr_stat & stream->irq_bit) { + writel(stream->irq_bit, + ACP_EXTERNAL_INTR_STAT(chip, rsrc->irqp_used)); + snd_pcm_period_elapsed(stream->substream); + i2s_flag = 1; + } + if (adata->rsrc->no_of_ctrls == 2) { + if (ext_intr_stat1 & stream->irq_bit) { + writel(stream->irq_bit, ACP_EXTERNAL_INTR_STAT(chip, + (rsrc->irqp_used - 1))); + snd_pcm_period_elapsed(stream->substream); + i2s_flag = 1; + } + } + } + spin_unlock(&adata->acp_lock); + if (i2s_flag) + return IRQ_HANDLED; + + return IRQ_NONE; +} + +int acp_enable_interrupts(struct acp_chip_info *chip) +{ + struct acp_resource *rsrc; u32 ext_intr_ctrl; - writel(0x01, ACP_EXTERNAL_INTR_ENB(adata)); - ext_intr_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(adata, rsrc->irqp_used)); + rsrc = chip->rsrc; + writel(0x01, ACP_EXTERNAL_INTR_ENB(chip)); + ext_intr_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(chip, rsrc->irqp_used)); ext_intr_ctrl |= ACP_ERROR_MASK; - writel(ext_intr_ctrl, ACP_EXTERNAL_INTR_CNTL(adata, rsrc->irqp_used)); + writel(ext_intr_ctrl, ACP_EXTERNAL_INTR_CNTL(chip, rsrc->irqp_used)); + + return 0; } EXPORT_SYMBOL_NS_GPL(acp_enable_interrupts, "SND_SOC_ACP_COMMON"); -void acp_disable_interrupts(struct acp_dev_data *adata) +int acp_disable_interrupts(struct acp_chip_info *chip) { - struct acp_resource *rsrc = adata->rsrc; + struct acp_resource *rsrc; + + rsrc = chip->rsrc; + writel(ACP_EXT_INTR_STAT_CLEAR_MASK, ACP_EXTERNAL_INTR_STAT(chip, rsrc->irqp_used)); + writel(0x00, ACP_EXTERNAL_INTR_ENB(chip)); - writel(ACP_EXT_INTR_STAT_CLEAR_MASK, ACP_EXTERNAL_INTR_STAT(adata, rsrc->irqp_used)); - writel(0x00, ACP_EXTERNAL_INTR_ENB(adata)); + return 0; } EXPORT_SYMBOL_NS_GPL(acp_disable_interrupts, "SND_SOC_ACP_COMMON"); @@ -90,19 +140,23 @@ void restore_acp_pdm_params(struct snd_pcm_substream *substream, struct acp_dev_data *adata) { struct snd_soc_dai *dai; + struct device *dev; + struct acp_chip_info *chip; struct snd_soc_pcm_runtime *soc_runtime; u32 ext_int_ctrl; soc_runtime = snd_soc_substream_to_rtd(substream); dai = snd_soc_rtd_to_cpu(soc_runtime, 0); + dev = dai->component->dev; + chip = dev_get_platdata(dev); /* Programming channel mask and sampling rate */ writel(adata->ch_mask, adata->acp_base + ACP_WOV_PDM_NO_OF_CHANNELS); writel(PDM_DEC_64, adata->acp_base + ACP_WOV_PDM_DECIMATION_FACTOR); /* Enabling ACP Pdm interuppts */ - ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(adata, 0)); + ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(chip, 0)); ext_int_ctrl |= PDM_DMA_INTR_MASK; - writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(adata, 0)); + writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(chip, 0)); set_acp_pdm_clk(substream, dai); } EXPORT_SYMBOL_NS_GPL(restore_acp_pdm_params, "SND_SOC_ACP_COMMON"); @@ -113,6 +167,7 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream, struct device *dev = dai->component->dev; struct acp_dev_data *adata = dev_get_drvdata(dev); struct acp_resource *rsrc = adata->rsrc; + struct acp_chip_info *chip = dev_get_platdata(dev); struct acp_stream *stream = substream->runtime->private_data; u32 reg_dma_size, reg_fifo_size, reg_fifo_addr; u32 phy_addr, acp_fifo_addr, ext_int_ctrl; @@ -185,7 +240,7 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream, writel(acp_fifo_addr, adata->acp_base + reg_fifo_addr); writel(FIFO_SIZE, adata->acp_base + reg_fifo_size); - ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(adata, rsrc->irqp_used)); + ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(chip, rsrc->irqp_used)); ext_int_ctrl |= BIT(I2S_RX_THRESHOLD(rsrc->offset)) | BIT(BT_RX_THRESHOLD(rsrc->offset)) | BIT(I2S_TX_THRESHOLD(rsrc->offset)) | @@ -193,7 +248,7 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream, BIT(HS_RX_THRESHOLD(rsrc->offset)) | BIT(HS_TX_THRESHOLD(rsrc->offset)); - writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(adata, rsrc->irqp_used)); + writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(chip, rsrc->irqp_used)); return 0; } diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index 99297a388ed7..1ef9faba1d8a 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -26,6 +26,15 @@ #define ACP3x_REG_START 0x1240000 #define ACP3x_REG_END 0x125C000 +static irqreturn_t irq_handler(int irq, void *data) +{ + struct acp_chip_info *chip = data; + + if (chip && chip->acp_hw_ops && chip->acp_hw_ops->irq) + return chip->acp_hw_ops->irq(irq, chip); + + return IRQ_NONE; +} static void acp_fill_platform_dev_info(struct platform_device_info *pdevinfo, struct device *parent, struct fwnode_handle *fw_node, @@ -166,6 +175,13 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id if (ret) goto release_regions; + ret = devm_request_irq(dev, pci->irq, irq_handler, + IRQF_SHARED, "ACP_I2S_IRQ", chip); + if (ret) { + dev_err(&pci->dev, "ACP I2S IRQ request failed %d\n", ret); + return ret; + } + check_acp_config(pci, chip); if (!chip->is_pdm_dev && !chip->is_i2s_config) goto skip_pdev_creation; @@ -213,20 +229,17 @@ static int __maybe_unused snd_acp_suspend(struct device *dev) static int __maybe_unused snd_acp_resume(struct device *dev) { struct acp_chip_info *chip; - struct acp_dev_data *adata; - struct device child; int ret; chip = dev_get_drvdata(dev); ret = acp_hw_init(chip); if (ret) dev_err(dev, "ACP init failed\n"); - if (chip->chip_pdev) { - child = chip->chip_pdev->dev; - adata = dev_get_drvdata(&child); - if (adata) - acp_enable_interrupts(adata); - } + + ret = acp_hw_en_interrupts(chip); + if (ret) + dev_err(dev, "ACP en-interrupts failed\n"); + return ret; } diff --git a/sound/soc/amd/acp/acp-pdm.c b/sound/soc/amd/acp/acp-pdm.c index d4855da05b6a..9a820ef3bf46 100644 --- a/sound/soc/amd/acp/acp-pdm.c +++ b/sound/soc/amd/acp/acp-pdm.c @@ -145,7 +145,7 @@ static int acp_dmic_dai_startup(struct snd_pcm_substream *substream, { struct acp_stream *stream = substream->runtime->private_data; struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); u32 ext_int_ctrl; stream->dai_id = DMIC_INSTANCE; @@ -154,9 +154,9 @@ static int acp_dmic_dai_startup(struct snd_pcm_substream *substream, stream->reg_offset = ACP_REGION2_OFFSET; /* Enable DMIC Interrupts */ - ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(adata, 0)); + ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(chip, 0)); ext_int_ctrl |= PDM_DMA_INTR_MASK; - writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(adata, 0)); + writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(chip, 0)); return 0; } @@ -165,13 +165,13 @@ static void acp_dmic_dai_shutdown(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); u32 ext_int_ctrl; /* Disable DMIC interrupts */ - ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(adata, 0)); + ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(chip, 0)); ext_int_ctrl &= ~PDM_DMA_INTR_MASK; - writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(adata, 0)); + writel(ext_int_ctrl, ACP_EXTERNAL_INTR_CNTL(chip, 0)); } const struct snd_soc_dai_ops acp_dmic_dai_ops = { diff --git a/sound/soc/amd/acp/acp-platform.c b/sound/soc/amd/acp/acp-platform.c index 7d6abff28b23..9b181fb5861c 100644 --- a/sound/soc/amd/acp/acp-platform.c +++ b/sound/soc/amd/acp/acp-platform.c @@ -107,43 +107,6 @@ static const struct snd_pcm_hardware acp6x_pcm_hardware_capture = { .periods_max = CAPTURE_MAX_NUM_PERIODS, }; -static irqreturn_t i2s_irq_handler(int irq, void *data) -{ - struct acp_dev_data *adata = data; - struct acp_resource *rsrc = adata->rsrc; - struct acp_stream *stream; - u16 i2s_flag = 0; - u32 ext_intr_stat, ext_intr_stat1; - - if (adata->rsrc->no_of_ctrls == 2) - ext_intr_stat1 = readl(ACP_EXTERNAL_INTR_STAT(adata, (rsrc->irqp_used - 1))); - - ext_intr_stat = readl(ACP_EXTERNAL_INTR_STAT(adata, rsrc->irqp_used)); - - spin_lock(&adata->acp_lock); - list_for_each_entry(stream, &adata->stream_list, list) { - if (ext_intr_stat & stream->irq_bit) { - writel(stream->irq_bit, - ACP_EXTERNAL_INTR_STAT(adata, rsrc->irqp_used)); - snd_pcm_period_elapsed(stream->substream); - i2s_flag = 1; - } - if (adata->rsrc->no_of_ctrls == 2) { - if (ext_intr_stat1 & stream->irq_bit) { - writel(stream->irq_bit, ACP_EXTERNAL_INTR_STAT(adata, - (rsrc->irqp_used - 1))); - snd_pcm_period_elapsed(stream->substream); - i2s_flag = 1; - } - } - } - spin_unlock(&adata->acp_lock); - if (i2s_flag) - return IRQ_HANDLED; - - return IRQ_NONE; -} - void config_pte_for_stream(struct acp_dev_data *adata, struct acp_stream *stream) { struct acp_resource *rsrc = adata->rsrc; @@ -278,7 +241,7 @@ static int acp_dma_open(struct snd_soc_component *component, struct snd_pcm_subs } runtime->private_data = stream; - writel(1, ACP_EXTERNAL_INTR_ENB(adata)); + writel(1, ACP_EXTERNAL_INTR_ENB(chip)); spin_lock_irq(&adata->acp_lock); list_add_tail(&stream->list, &adata->stream_list); @@ -363,16 +326,17 @@ static const struct snd_soc_component_driver acp_pcm_component = { int acp_platform_register(struct device *dev) { struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip; struct snd_soc_dai_driver; unsigned int status; - status = devm_request_irq(dev, adata->i2s_irq, i2s_irq_handler, - IRQF_SHARED, "ACP_I2S_IRQ", adata); - if (status) { - dev_err(dev, "ACP I2S IRQ request failed\n"); - return status; + chip = dev_get_platdata(dev); + if (!chip || !chip->base) { + dev_err(dev, "ACP chip data is NULL\n"); + return -ENODEV; } + chip->adata = adata; status = devm_snd_soc_register_component(dev, &acp_pcm_component, adata->dai_driver, adata->num_dai); diff --git a/sound/soc/amd/acp/acp-rembrandt.c b/sound/soc/amd/acp/acp-rembrandt.c index eb09878c0d5c..13633b3f3730 100644 --- a/sound/soc/amd/acp/acp-rembrandt.c +++ b/sound/soc/amd/acp/acp-rembrandt.c @@ -192,6 +192,7 @@ static int rembrandt_audio_probe(struct platform_device *pdev) return -ENODEV; } + chip->rsrc = &rsrc; adata->i2s_irq = res->start; adata->dev = dev; adata->dai_driver = acp_rmb_dai; @@ -208,7 +209,11 @@ static int rembrandt_audio_probe(struct platform_device *pdev) if (ret) return ret; } - acp_enable_interrupts(adata); + ret = acp_hw_en_interrupts(chip); + if (ret) { + dev_err(dev, "ACP en-interrupts failed\n"); + return ret; + } acp_platform_register(dev); pm_runtime_set_autosuspend_delay(&pdev->dev, ACP_SUSPEND_DELAY_MS); pm_runtime_use_autosuspend(&pdev->dev); @@ -221,9 +226,13 @@ static int rembrandt_audio_probe(struct platform_device *pdev) static void rembrandt_audio_remove(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); + int ret; + + ret = acp_hw_dis_interrupts(chip); + if (ret) + dev_err(dev, "ACP dis-interrupts failed\n"); - acp_disable_interrupts(adata); acp_platform_unregister(dev); pm_runtime_disable(&pdev->dev); } diff --git a/sound/soc/amd/acp/acp-renoir.c b/sound/soc/amd/acp/acp-renoir.c index 2b47c6bfc9e7..94ecb17684b7 100644 --- a/sound/soc/amd/acp/acp-renoir.c +++ b/sound/soc/amd/acp/acp-renoir.c @@ -142,6 +142,7 @@ static int renoir_audio_probe(struct platform_device *pdev) return ret; adata->i2s_irq = ret; + chip->rsrc = &rsrc; adata->dev = dev; adata->dai_driver = acp_renoir_dai; adata->num_dai = ARRAY_SIZE(acp_renoir_dai); @@ -150,7 +151,11 @@ static int renoir_audio_probe(struct platform_device *pdev) adata->flag = chip->flag; dev_set_drvdata(dev, adata); - acp_enable_interrupts(adata); + ret = acp_hw_en_interrupts(chip); + if (ret) { + dev_err(dev, "ACP en-interrupts failed\n"); + return ret; + } acp_platform_register(dev); pm_runtime_set_autosuspend_delay(&pdev->dev, ACP_SUSPEND_DELAY_MS); @@ -164,9 +169,13 @@ static int renoir_audio_probe(struct platform_device *pdev) static void renoir_audio_remove(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); + int ret; + + ret = acp_hw_dis_interrupts(chip); + if (ret) + dev_err(dev, "ACP dis-interrupts failed\n"); - acp_disable_interrupts(adata); acp_platform_unregister(dev); } diff --git a/sound/soc/amd/acp/acp63.c b/sound/soc/amd/acp/acp63.c index 76a26b82e3ad..e38ad9f7fb48 100644 --- a/sound/soc/amd/acp/acp63.c +++ b/sound/soc/amd/acp/acp63.c @@ -243,6 +243,7 @@ static int acp63_audio_probe(struct platform_device *pdev) return -ENODEV; } + chip->rsrc = &rsrc; adata->i2s_irq = res->start; adata->dev = dev; adata->dai_driver = acp63_dai; @@ -258,7 +259,11 @@ static int acp63_audio_probe(struct platform_device *pdev) if (ret) return ret; } - acp_enable_interrupts(adata); + ret = acp_hw_en_interrupts(chip); + if (ret) { + dev_err(dev, "ACP en-interrupts failed\n"); + return ret; + } acp_platform_register(dev); pm_runtime_set_autosuspend_delay(&pdev->dev, ACP_SUSPEND_DELAY_MS); pm_runtime_use_autosuspend(&pdev->dev); @@ -271,9 +276,13 @@ static int acp63_audio_probe(struct platform_device *pdev) static void acp63_audio_remove(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); + int ret; + + ret = acp_hw_dis_interrupts(chip); + if (ret) + dev_err(dev, "ACP dis-interrupts failed\n"); - acp_disable_interrupts(adata); acp_platform_unregister(dev); pm_runtime_disable(&pdev->dev); } diff --git a/sound/soc/amd/acp/acp70.c b/sound/soc/amd/acp/acp70.c index 3e603c5f736a..be4302a5a584 100644 --- a/sound/soc/amd/acp/acp70.c +++ b/sound/soc/amd/acp/acp70.c @@ -174,6 +174,7 @@ static int acp_acp70_audio_probe(struct platform_device *pdev) return -ENODEV; } + chip->rsrc = &rsrc; adata->i2s_irq = res->start; adata->dev = dev; adata->dai_driver = acp70_dai; @@ -190,7 +191,11 @@ static int acp_acp70_audio_probe(struct platform_device *pdev) dev_err(&pdev->dev, "Failed to set I2S master clock as 196.608MHz\n"); return ret; } - acp_enable_interrupts(adata); + ret = acp_hw_en_interrupts(chip); + if (ret) { + dev_err(dev, "ACP en-interrupts failed\n"); + return ret; + } acp_platform_register(dev); pm_runtime_set_autosuspend_delay(&pdev->dev, ACP_SUSPEND_DELAY_MS); pm_runtime_use_autosuspend(&pdev->dev); @@ -203,9 +208,13 @@ static int acp_acp70_audio_probe(struct platform_device *pdev) static void acp_acp70_audio_remove(struct platform_device *pdev) { struct device *dev = &pdev->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); + int ret; + + ret = acp_hw_dis_interrupts(chip); + if (ret) + dev_err(dev, "ACP dis-interrupts failed\n"); - acp_disable_interrupts(adata); acp_platform_unregister(dev); pm_runtime_disable(&pdev->dev); } diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index b7a1b4aa8fef..4beaa9cae352 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -147,10 +147,12 @@ struct acp_chip_info { struct snd_acp_hw_ops *acp_hw_ops; int (*acp_hw_ops_init)(struct acp_chip_info *chip); struct platform_device *chip_pdev; + struct acp_resource *rsrc; /* Platform specific resources*/ struct platform_device *dmic_codec_dev; struct platform_device *acp_plat_dev; struct platform_device *mach_dev; struct snd_soc_acpi_mach *machines; + struct acp_dev_data *adata; u32 addr; unsigned int flag; /* Distinguish b/w Legacy or Only PDM */ bool is_pdm_dev; /* flag set to true when ACP PDM controller exists */ @@ -215,11 +217,19 @@ struct acp_dev_data { * struct snd_acp_hw_ops - ACP PCI driver platform specific ops * @acp_init: ACP initialization * @acp_deinit: ACP de-initialization + * @irq: ACP irq handler + * @en_interrupts: ACP enable interrupts + * @dis_interrupts: ACP disable interrupts */ struct snd_acp_hw_ops { /* ACP hardware initilizations */ int (*acp_init)(struct acp_chip_info *chip); int (*acp_deinit)(struct acp_chip_info *chip); + + /* ACP Interrupts*/ + irqreturn_t (*irq)(int irq, void *data); + int (*en_interrupts)(struct acp_chip_info *chip); + int (*dis_interrupts)(struct acp_chip_info *chip); }; enum acp_config { @@ -332,8 +342,9 @@ int acp_machine_select(struct acp_chip_info *chip); int acp_init(struct acp_chip_info *chip); int acp_deinit(struct acp_chip_info *chip); -void acp_enable_interrupts(struct acp_dev_data *adata); -void acp_disable_interrupts(struct acp_dev_data *adata); +int acp_enable_interrupts(struct acp_chip_info *chip); +int acp_disable_interrupts(struct acp_chip_info *chip); +irqreturn_t acp_irq_handler(int irq, void *data); extern struct snd_acp_hw_ops acp31_common_hw_ops; extern struct snd_acp_hw_ops acp6x_common_hw_ops; @@ -370,6 +381,20 @@ static inline int acp_hw_deinit(struct acp_chip_info *chip) return -EOPNOTSUPP; } +static inline int acp_hw_en_interrupts(struct acp_chip_info *chip) +{ + if (chip && chip->acp_hw_ops && chip->acp_hw_ops->en_interrupts) + return chip->acp_hw_ops->en_interrupts(chip); + return -EOPNOTSUPP; +} + +static inline int acp_hw_dis_interrupts(struct acp_chip_info *chip) +{ + if (chip && chip->acp_hw_ops && chip->acp_hw_ops->dis_interrupts) + chip->acp_hw_ops->dis_interrupts(chip); + return -EOPNOTSUPP; +} + static inline u64 acp_get_byte_count(struct acp_dev_data *adata, int dai_id, int direction) { u64 byte_count = 0, low = 0, high = 0; diff --git a/sound/soc/amd/acp/chip_offset_byte.h b/sound/soc/amd/acp/chip_offset_byte.h index 117ea63e85c6..82275c9de53a 100644 --- a/sound/soc/amd/acp/chip_offset_byte.h +++ b/sound/soc/amd/acp/chip_offset_byte.h @@ -29,13 +29,13 @@ #define ACP_PIN_CONFIG 0x1440 #define ACP3X_PIN_CONFIG 0x1400 -#define ACP_EXTERNAL_INTR_REG_ADDR(adata, offset, ctrl) \ - (adata->acp_base + adata->rsrc->irq_reg_offset + offset + (ctrl * 0x04)) +#define ACP_EXTERNAL_INTR_REG_ADDR(chip, offset, ctrl) \ + (chip->base + chip->rsrc->irq_reg_offset + offset + (ctrl * 0x04)) -#define ACP_EXTERNAL_INTR_ENB(adata) ACP_EXTERNAL_INTR_REG_ADDR(adata, 0x0, 0x0) -#define ACP_EXTERNAL_INTR_CNTL(adata, ctrl) ACP_EXTERNAL_INTR_REG_ADDR(adata, 0x4, ctrl) -#define ACP_EXTERNAL_INTR_STAT(adata, ctrl) ACP_EXTERNAL_INTR_REG_ADDR(adata, \ - (0x4 + (adata->rsrc->no_of_ctrls * 0x04)), ctrl) +#define ACP_EXTERNAL_INTR_ENB(chip) ACP_EXTERNAL_INTR_REG_ADDR(chip, 0x0, 0x0) +#define ACP_EXTERNAL_INTR_CNTL(chip, ctrl) ACP_EXTERNAL_INTR_REG_ADDR(chip, 0x4, ctrl) +#define ACP_EXTERNAL_INTR_STAT(chip, ctrl) ACP_EXTERNAL_INTR_REG_ADDR(chip, \ + (0x4 + (chip->rsrc->no_of_ctrls * 0x04)), ctrl) /* Registers from ACP_AUDIO_BUFFERS block */ From patchwork Mon Mar 10 18:31:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010491 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2050.outbound.protection.outlook.com [40.107.243.50]) (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 90B52238144; Mon, 10 Mar 2025 18:33:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631596; cv=fail; b=F2Jat3uFrTxqtjvSdNrtWR3RoyMc5KYZlPHgbWCte4IaPSiHDym6YNPowk7kn54r7B72mbdJUmOHp+VMRSiyz4gxkvfVcDShAPkfGcE1PRAtYN14nERK7IfjferwlAbfRfvMvbVsrqi7PhGqW4ZB1rrQwveqN8loJfUDMGVRqg4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631596; c=relaxed/simple; bh=z5QuQ6gQVzbrh5qA1hEAnbs6+7uxG4P1vh76Qk8YUJI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZWuzDqBJW/6KSA5PW++HWTtulHaODswFykDg5UaoPMf5/OWqrWDZJBwf/TS7avx118qStytj8jB3BuymuTOh6F6QCvnXALE9DQstTVNOTtg4e1bR0TQhYjJz8WrhwaEJTbpyreTs/2rxdYNxpvnA9CGTp8EvDztc6LFJfsM1TUo= 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=Kjo+TXPQ; arc=fail smtp.client-ip=40.107.243.50 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="Kjo+TXPQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=udY/OsaRBm4Z7TQsvmUORYcpQPVcRtbQKzbzAjybdKRgv+XM320gbYl28fg6gLAAuZydmWGSrpBSaFcT5bWvSYtKU5AEzrrr4nenaXwJXsIkl1R53ttgV2UZTDaAZN84H51RVGLVS7CnkF8JY5dCHHFiE0gukYrKIeEg3voiIpuTx8DfhJa8aYsP8eQyDoSs/8rHDPqHIowEVjhzn6XItpCgBRcwM6ggW1c8mPAu43HflwihY5wNnnRk7ojUX/MywHU2lTkR59cs2RvI7ANK+FFbmikfmH0KJ9K0ImxRqisNT9Lq7jtKVsB2c7Q6Kr3UhbuvTTuR7usRN9SaEuYHJQ== 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=hiCA9M4JQX45ur/8CN7TfwjiPloLxC8ygG9TnQS8hfY=; b=Spm6zJ/vws73kuDjBzDqiUSZ82leSHurYJ32Jpk7GCBI10vm7ZO4NE+jNXNXXBEM5GfPP1okObMIsuGm4Xu3kPWLdUUVF5OWLveE2QkjRE5eMWYrBxi1KN+TUMLb3+ZS2QVYG4CbmqDJcHRb1ySyxNMbdUFEIvFV+OVbg8w4qHPVdFoGcqXJv7MM5fzVHA29bBEoD48eJYGTnVdOBzZw+71fVn2RnUGjr6LzDZsvdqGK8Y3+9g17w18OxpP+ZttS1L1pXOFns4g1xsbfaxPIgw/iMeZBSFwC7vNAY2EUR/h8/G8bV3uQxGtQst2rdvu5CoHD4ENsHeQXlqShuaJk2g== 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=hiCA9M4JQX45ur/8CN7TfwjiPloLxC8ygG9TnQS8hfY=; b=Kjo+TXPQehT2fKz25MHp5iSZatODe1A9P6NQuM4XyBNzGuxAxbbVfwIK01/Z/lS88yDQ08eDz/+jELAQgWcLO4Kdfk60jf3zg5aw+jbXO4ldI1USlKy/47AhY5iSZvrHrOvsLxavMXLRtEqR3MCZ5s5IsB+ZH0uqFhBqXzI7zUU= Received: from BN0PR04CA0138.namprd04.prod.outlook.com (2603:10b6:408:ed::23) by MN2PR12MB4439.namprd12.prod.outlook.com (2603:10b6:208:262::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:33:06 +0000 Received: from MN1PEPF0000F0E1.namprd04.prod.outlook.com (2603:10b6:408:ed:cafe::59) by BN0PR04CA0138.outlook.office365.com (2603:10b6:408:ed::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.27 via Frontend Transport; Mon, 10 Mar 2025 18:33:06 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MN1PEPF0000F0E1.mail.protection.outlook.com (10.167.242.39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:33:05 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:04 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:32:59 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Greg KH , "Ranjani Sridharan" , Daniel Baluta , Jeff Johnson , "Peter Zijlstra" , Murad Masimov , Muhammad Usama Anjum , =?utf-8?q?Uwe_Kleine-K?= =?utf-8?q?=C3=B6nig?= , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 07/14] ASoC: amd: acp: Remove redundant acp_dev_data structure Date: Tue, 11 Mar 2025 00:01:54 +0530 Message-ID: <20250310183201.11979-8-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB04.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E1:EE_|MN2PR12MB4439:EE_ X-MS-Office365-Filtering-Correlation-Id: 47cfefe5-763d-497d-65a5-08dd6001ff9e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: tBivVHTcusVgc8LA61365/JxU1+dMPOzkXGyh+DcsMiaGgDJtkLDMqp6RFOm6Vj2N4FjlGd3mQvQmsxwrO3N8JaJn73oBNayB0I3kcOSYGiLr342P/H64YSqgzi/5fERc5S0lNpcMwkU/HUNMLr8K+djqFkP5GzndxdF+VJh+6n4IiXX0HykJLfPTcMKmyIGNEG1mIpAne5PuhF6W8qVgS10jQP8QwIzB2swKUuQv4QByZlTcgzalVixfMEPViYYETi35H5zr3x5OsAFGewc5uQtbnbrAOhrNigqFRs18/c4G+yvGFYDw/0APgRyXF/0XHHZFiSw7H+3j5jJlx3wG5tN+V63Cv64wrKIm/9iBKNn0qQF+i3sofNua5PX7ROayc3+3C+GC6ya+CWJ3v6id/pjZV5wKQE6P+HPZmy6e1fcINcZKSUBMUPGfRPMaEXXw+5sOA0LvocEUsizkQ3QToBeK/zSrHhhsh1JCzZCEj1uLxZP3YLCakT8fPH+MP4BZOw6Njjzw7r04Yj1N1oqW79W6iHbNVMKOO+eCnyUN4ikCA1Sl2fDA7c6UH69BIjBtr2GVQnXzeJ8D1VRPdsNSb1xq63LxpAgQxb4Z8gQIBTHeLqcWtjFKiJcM670wxSaSsQeC+ap1p1kAm+8LFQ+WAsAI8NBo5ik/6gABByCna/wWAKrBuuOGpbyNFCFcl+aeHzxI/zY0QcLhGxOFQNHZM+nSuT6FeOdvucq6+pWPmQLhi7gmMfxDERPJ405i7k5VFIWN4ES5SDeedgN7d8Kx3gVouOp7xlu9SmxHosw3WcnT2V59MTaGEKljfqRh7f0HE6jJ1C/GceRVDVNwb7OdKIH4ONflbvMUWbqg7xV8TqApA3tSdt//x01igdQyerV9ltognaciAkqyS9IkXZpeZ6gE3mPck0F5CacCY3W+t2ZZZD0fjXU91SkCjerzjZQ7if6dpTmilk5tbxvOhiSJqil21rcIFCdv/rMHxsO5bsXqxLINcBtUSiUJjbqpLB0OSVIeczC3wE7ulwvLkxRJiD/ZF0s76BVBmTcjT4ehRIkteDd+SZuySv+cI0RUNMOBeM33pIzOouRoD518uGeqQnRrMoxkQYYQl+v2J+diLOjFoIzuL2GYRV04h9o/7Ad7xgbY0N8u5PX1Rb0l5jBwG03HkmCIoMpTNNDg9d7PjiM6T2WclXcEWWopUXIp6ZmuIi6miuuXxm73hWYbubSsqZ8bDuN0sNBHtF5E1/+o8oFXJCHZ4duyy+XYS5b34VCEvcHL3EwRwErKqz4Z/mku58Gi/ICUHIjJ+1zcwqgUy42FWCbSTBhNuclAzL+bgAb3FznrKDuFsB4GHIg/ci6PHq2EgkonMFT32O6/Qc02I399U9Jie/t8EwJCk521CjLfNmiTZV5CdHt/cdnm66o+YJtVR/PobwKpGU0MMO9IFJb2/2i6y01wTfbsYdlD3+1Scivfy/P+BZeAL8cqIFvzLaovcgBQ80HmzIfx+S7I3M= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:33:05.5501 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 47cfefe5-763d-497d-65a5-08dd6001ff9e 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E1.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4439 Move acp_dev_data structure members to acp_chip_info structure to avoid using common members in each structure and remove redundant acp_dev_data structure. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-i2s.c | 181 +++++++++++++------------- sound/soc/amd/acp/acp-legacy-common.c | 107 ++++++++------- sound/soc/amd/acp/acp-pdm.c | 41 +++--- sound/soc/amd/acp/acp-platform.c | 70 +++++----- sound/soc/amd/acp/acp-rembrandt.c | 53 ++------ sound/soc/amd/acp/acp-renoir.c | 50 ++----- sound/soc/amd/acp/acp63.c | 58 +++------ sound/soc/amd/acp/acp70.c | 50 ++----- sound/soc/amd/acp/amd.h | 86 +++++------- 9 files changed, 276 insertions(+), 420 deletions(-) diff --git a/sound/soc/amd/acp/acp-i2s.c b/sound/soc/amd/acp/acp-i2s.c index 2f458c76f9fc..a38409dd1d34 100644 --- a/sound/soc/amd/acp/acp-i2s.c +++ b/sound/soc/amd/acp/acp-i2s.c @@ -31,14 +31,10 @@ #define ACP63_LRCLK_DIV_FIELD GENMASK(12, 2) #define ACP63_BCLK_DIV_FIELD GENMASK(23, 13) -static inline void acp_set_i2s_clk(struct acp_dev_data *adata, int dai_id) +static inline void acp_set_i2s_clk(struct acp_chip_info *chip, int dai_id) { u32 i2s_clk_reg, val; - struct acp_chip_info *chip; - struct device *dev; - dev = adata->dev; - chip = dev_get_platdata(dev); switch (dai_id) { case I2S_SP_INSTANCE: i2s_clk_reg = ACP_I2STDM0_MSTRCLKGEN; @@ -55,36 +51,37 @@ static inline void acp_set_i2s_clk(struct acp_dev_data *adata, int dai_id) } val = I2S_MASTER_MODE_ENABLE; - if (adata->tdm_mode) + if (chip->tdm_mode) val |= BIT(1); switch (chip->acp_rev) { case ACP63_PCI_ID: case ACP70_PCI_ID: case ACP71_PCI_ID: - val |= FIELD_PREP(ACP63_LRCLK_DIV_FIELD, adata->lrclk_div); - val |= FIELD_PREP(ACP63_BCLK_DIV_FIELD, adata->bclk_div); + val |= FIELD_PREP(ACP63_LRCLK_DIV_FIELD, chip->lrclk_div); + val |= FIELD_PREP(ACP63_BCLK_DIV_FIELD, chip->bclk_div); break; default: - val |= FIELD_PREP(LRCLK_DIV_FIELD, adata->lrclk_div); - val |= FIELD_PREP(BCLK_DIV_FIELD, adata->bclk_div); + val |= FIELD_PREP(LRCLK_DIV_FIELD, chip->lrclk_div); + val |= FIELD_PREP(BCLK_DIV_FIELD, chip->bclk_div); } - writel(val, adata->acp_base + i2s_clk_reg); + writel(val, chip->base + i2s_clk_reg); } static int acp_i2s_set_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt) { - struct acp_dev_data *adata = snd_soc_dai_get_drvdata(cpu_dai); + struct device *dev = cpu_dai->component->dev; + struct acp_chip_info *chip = dev_get_platdata(dev); int mode; mode = fmt & SND_SOC_DAIFMT_FORMAT_MASK; switch (mode) { case SND_SOC_DAIFMT_I2S: - adata->tdm_mode = TDM_DISABLE; + chip->tdm_mode = TDM_DISABLE; break; case SND_SOC_DAIFMT_DSP_A: - adata->tdm_mode = TDM_ENABLE; + chip->tdm_mode = TDM_ENABLE; break; default: return -EINVAL; @@ -96,7 +93,6 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas int slots, int slot_width) { struct device *dev = dai->component->dev; - struct acp_dev_data *adata = snd_soc_dai_get_drvdata(dai); struct acp_chip_info *chip; struct acp_stream *stream; int slot_len, no_of_slots; @@ -157,35 +153,35 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas slots = no_of_slots; - spin_lock_irq(&adata->acp_lock); - list_for_each_entry(stream, &adata->stream_list, list) { + spin_lock_irq(&chip->acp_lock); + list_for_each_entry(stream, &chip->stream_list, list) { switch (chip->acp_rev) { case ACP_RN_PCI_ID: case ACP_RMB_PCI_ID: if (tx_mask && stream->dir == SNDRV_PCM_STREAM_PLAYBACK) - adata->tdm_tx_fmt[stream->dai_id - 1] = + chip->tdm_tx_fmt[stream->dai_id - 1] = FRM_LEN | (slots << 15) | (slot_len << 18); else if (rx_mask && stream->dir == SNDRV_PCM_STREAM_CAPTURE) - adata->tdm_rx_fmt[stream->dai_id - 1] = + chip->tdm_rx_fmt[stream->dai_id - 1] = FRM_LEN | (slots << 15) | (slot_len << 18); break; case ACP63_PCI_ID: case ACP70_PCI_ID: case ACP71_PCI_ID: if (tx_mask && stream->dir == SNDRV_PCM_STREAM_PLAYBACK) - adata->tdm_tx_fmt[stream->dai_id - 1] = + chip->tdm_tx_fmt[stream->dai_id - 1] = FRM_LEN | (slots << 13) | (slot_len << 18); else if (rx_mask && stream->dir == SNDRV_PCM_STREAM_CAPTURE) - adata->tdm_rx_fmt[stream->dai_id - 1] = + chip->tdm_rx_fmt[stream->dai_id - 1] = FRM_LEN | (slots << 13) | (slot_len << 18); break; default: dev_err(dev, "Unknown chip revision %d\n", chip->acp_rev); - spin_unlock_irq(&adata->acp_lock); + spin_unlock_irq(&chip->acp_lock); return -EINVAL; } } - spin_unlock_irq(&adata->acp_lock); + spin_unlock_irq(&chip->acp_lock); return 0; } @@ -193,15 +189,15 @@ static int acp_i2s_hwparams(struct snd_pcm_substream *substream, struct snd_pcm_ struct snd_soc_dai *dai) { struct device *dev = dai->component->dev; - struct acp_dev_data *adata; + struct acp_chip_info *chip; struct acp_resource *rsrc; u32 val; u32 xfer_resolution; u32 reg_val, fmt_reg, tdm_fmt; u32 lrclk_div_val, bclk_div_val; - adata = snd_soc_dai_get_drvdata(dai); - rsrc = adata->rsrc; + chip = dev_get_platdata(dev); + rsrc = chip->rsrc; /* These values are as per Hardware Spec */ switch (params_format(params)) { @@ -240,7 +236,7 @@ static int acp_i2s_hwparams(struct snd_pcm_substream *substream, struct snd_pcm_ dev_err(dev, "Invalid dai id %x\n", dai->driver->id); return -EINVAL; } - adata->xfer_tx_resolution[dai->driver->id - 1] = xfer_resolution; + chip->xfer_tx_resolution[dai->driver->id - 1] = xfer_resolution; } else { switch (dai->driver->id) { case I2S_BT_INSTANCE: @@ -259,22 +255,22 @@ static int acp_i2s_hwparams(struct snd_pcm_substream *substream, struct snd_pcm_ dev_err(dev, "Invalid dai id %x\n", dai->driver->id); return -EINVAL; } - adata->xfer_rx_resolution[dai->driver->id - 1] = xfer_resolution; + chip->xfer_rx_resolution[dai->driver->id - 1] = xfer_resolution; } - val = readl(adata->acp_base + reg_val); + val = readl(chip->base + reg_val); val &= ~ACP3x_ITER_IRER_SAMP_LEN_MASK; val = val | (xfer_resolution << 3); - writel(val, adata->acp_base + reg_val); + writel(val, chip->base + reg_val); - if (adata->tdm_mode) { - val = readl(adata->acp_base + reg_val); - writel(val | BIT(1), adata->acp_base + reg_val); + if (chip->tdm_mode) { + val = readl(chip->base + reg_val); + writel(val | BIT(1), chip->base + reg_val); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) - tdm_fmt = adata->tdm_tx_fmt[dai->driver->id - 1]; + tdm_fmt = chip->tdm_tx_fmt[dai->driver->id - 1]; else - tdm_fmt = adata->tdm_rx_fmt[dai->driver->id - 1]; - writel(tdm_fmt, adata->acp_base + fmt_reg); + tdm_fmt = chip->tdm_rx_fmt[dai->driver->id - 1]; + writel(tdm_fmt, chip->base + fmt_reg); } if (rsrc->soc_mclk) { @@ -377,8 +373,8 @@ static int acp_i2s_hwparams(struct snd_pcm_substream *substream, struct snd_pcm_ default: break; } - adata->lrclk_div = lrclk_div_val; - adata->bclk_div = bclk_div_val; + chip->lrclk_div = lrclk_div_val; + chip->bclk_div = bclk_div_val; } return 0; } @@ -387,8 +383,8 @@ static int acp_i2s_trigger(struct snd_pcm_substream *substream, int cmd, struct { struct acp_stream *stream = substream->runtime->private_data; struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); - struct acp_resource *rsrc = adata->rsrc; + struct acp_chip_info *chip = dev_get_platdata(dev); + struct acp_resource *rsrc = chip->rsrc; u32 val, period_bytes, reg_val, ier_val, water_val, buf_size, buf_reg; period_bytes = frames_to_bytes(substream->runtime, substream->runtime->period_size); @@ -398,20 +394,20 @@ static int acp_i2s_trigger(struct snd_pcm_substream *substream, int cmd, struct case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_RESUME: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: - stream->bytescount = acp_get_byte_count(adata, stream->dai_id, substream->stream); + stream->bytescount = acp_get_byte_count(chip, stream->dai_id, substream->stream); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { switch (dai->driver->id) { case I2S_BT_INSTANCE: - water_val = ACP_BT_TX_INTR_WATERMARK_SIZE(adata); + water_val = ACP_BT_TX_INTR_WATERMARK_SIZE(chip); reg_val = ACP_BTTDM_ITER; ier_val = ACP_BTTDM_IER; - buf_reg = ACP_BT_TX_RINGBUFSIZE(adata); + buf_reg = ACP_BT_TX_RINGBUFSIZE(chip); break; case I2S_SP_INSTANCE: - water_val = ACP_I2S_TX_INTR_WATERMARK_SIZE(adata); + water_val = ACP_I2S_TX_INTR_WATERMARK_SIZE(chip); reg_val = ACP_I2STDM_ITER; ier_val = ACP_I2STDM_IER; - buf_reg = ACP_I2S_TX_RINGBUFSIZE(adata); + buf_reg = ACP_I2S_TX_RINGBUFSIZE(chip); break; case I2S_HS_INSTANCE: water_val = ACP_HS_TX_INTR_WATERMARK_SIZE; @@ -426,16 +422,16 @@ static int acp_i2s_trigger(struct snd_pcm_substream *substream, int cmd, struct } else { switch (dai->driver->id) { case I2S_BT_INSTANCE: - water_val = ACP_BT_RX_INTR_WATERMARK_SIZE(adata); + water_val = ACP_BT_RX_INTR_WATERMARK_SIZE(chip); reg_val = ACP_BTTDM_IRER; ier_val = ACP_BTTDM_IER; - buf_reg = ACP_BT_RX_RINGBUFSIZE(adata); + buf_reg = ACP_BT_RX_RINGBUFSIZE(chip); break; case I2S_SP_INSTANCE: - water_val = ACP_I2S_RX_INTR_WATERMARK_SIZE(adata); + water_val = ACP_I2S_RX_INTR_WATERMARK_SIZE(chip); reg_val = ACP_I2STDM_IRER; ier_val = ACP_I2STDM_IER; - buf_reg = ACP_I2S_RX_RINGBUFSIZE(adata); + buf_reg = ACP_I2S_RX_RINGBUFSIZE(chip); break; case I2S_HS_INSTANCE: water_val = ACP_HS_RX_INTR_WATERMARK_SIZE; @@ -449,14 +445,14 @@ static int acp_i2s_trigger(struct snd_pcm_substream *substream, int cmd, struct } } - writel(period_bytes, adata->acp_base + water_val); - writel(buf_size, adata->acp_base + buf_reg); + writel(period_bytes, chip->base + water_val); + writel(buf_size, chip->base + buf_reg); if (rsrc->soc_mclk) - acp_set_i2s_clk(adata, dai->driver->id); - val = readl(adata->acp_base + reg_val); + acp_set_i2s_clk(chip, dai->driver->id); + val = readl(chip->base + reg_val); val = val | BIT(0); - writel(val, adata->acp_base + reg_val); - writel(1, adata->acp_base + ier_val); + writel(val, chip->base + reg_val); + writel(1, chip->base + ier_val); return 0; case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_SUSPEND: @@ -493,19 +489,19 @@ static int acp_i2s_trigger(struct snd_pcm_substream *substream, int cmd, struct return -EINVAL; } } - val = readl(adata->acp_base + reg_val); + val = readl(chip->base + reg_val); val = val & ~BIT(0); - writel(val, adata->acp_base + reg_val); - - if (!(readl(adata->acp_base + ACP_BTTDM_ITER) & BIT(0)) && - !(readl(adata->acp_base + ACP_BTTDM_IRER) & BIT(0))) - writel(0, adata->acp_base + ACP_BTTDM_IER); - if (!(readl(adata->acp_base + ACP_I2STDM_ITER) & BIT(0)) && - !(readl(adata->acp_base + ACP_I2STDM_IRER) & BIT(0))) - writel(0, adata->acp_base + ACP_I2STDM_IER); - if (!(readl(adata->acp_base + ACP_HSTDM_ITER) & BIT(0)) && - !(readl(adata->acp_base + ACP_HSTDM_IRER) & BIT(0))) - writel(0, adata->acp_base + ACP_HSTDM_IER); + writel(val, chip->base + reg_val); + + if (!(readl(chip->base + ACP_BTTDM_ITER) & BIT(0)) && + !(readl(chip->base + ACP_BTTDM_IRER) & BIT(0))) + writel(0, chip->base + ACP_BTTDM_IER); + if (!(readl(chip->base + ACP_I2STDM_ITER) & BIT(0)) && + !(readl(chip->base + ACP_I2STDM_IRER) & BIT(0))) + writel(0, chip->base + ACP_I2STDM_IER); + if (!(readl(chip->base + ACP_HSTDM_ITER) & BIT(0)) && + !(readl(chip->base + ACP_HSTDM_IRER) & BIT(0))) + writel(0, chip->base + ACP_HSTDM_IER); return 0; default: return -EINVAL; @@ -517,9 +513,8 @@ static int acp_i2s_trigger(struct snd_pcm_substream *substream, int cmd, struct static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); - struct acp_chip_info *chip; - struct acp_resource *rsrc = adata->rsrc; + struct acp_chip_info *chip = dev_get_platdata(dev); + struct acp_resource *rsrc = chip->rsrc; struct acp_stream *stream = substream->runtime->private_data; u32 reg_dma_size = 0, reg_fifo_size = 0, reg_fifo_addr = 0; u32 phy_addr = 0, acp_fifo_addr = 0, ext_int_ctrl; @@ -529,56 +524,56 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d switch (dai->driver->id) { case I2S_SP_INSTANCE: if (dir == SNDRV_PCM_STREAM_PLAYBACK) { - reg_dma_size = ACP_I2S_TX_DMA_SIZE(adata); + reg_dma_size = ACP_I2S_TX_DMA_SIZE(chip); acp_fifo_addr = rsrc->sram_pte_offset + SP_PB_FIFO_ADDR_OFFSET; - reg_fifo_addr = ACP_I2S_TX_FIFOADDR(adata); - reg_fifo_size = ACP_I2S_TX_FIFOSIZE(adata); + reg_fifo_addr = ACP_I2S_TX_FIFOADDR(chip); + reg_fifo_size = ACP_I2S_TX_FIFOSIZE(chip); if (chip->acp_rev >= ACP70_PCI_ID) phy_addr = ACP7x_I2S_SP_TX_MEM_WINDOW_START; else phy_addr = I2S_SP_TX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_I2S_TX_RINGBUFADDR(adata)); + writel(phy_addr, chip->base + ACP_I2S_TX_RINGBUFADDR(chip)); } else { - reg_dma_size = ACP_I2S_RX_DMA_SIZE(adata); + reg_dma_size = ACP_I2S_RX_DMA_SIZE(chip); acp_fifo_addr = rsrc->sram_pte_offset + SP_CAPT_FIFO_ADDR_OFFSET; - reg_fifo_addr = ACP_I2S_RX_FIFOADDR(adata); - reg_fifo_size = ACP_I2S_RX_FIFOSIZE(adata); + reg_fifo_addr = ACP_I2S_RX_FIFOADDR(chip); + reg_fifo_size = ACP_I2S_RX_FIFOSIZE(chip); if (chip->acp_rev >= ACP70_PCI_ID) phy_addr = ACP7x_I2S_SP_RX_MEM_WINDOW_START; else phy_addr = I2S_SP_RX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_I2S_RX_RINGBUFADDR(adata)); + writel(phy_addr, chip->base + ACP_I2S_RX_RINGBUFADDR(chip)); } break; case I2S_BT_INSTANCE: if (dir == SNDRV_PCM_STREAM_PLAYBACK) { - reg_dma_size = ACP_BT_TX_DMA_SIZE(adata); + reg_dma_size = ACP_BT_TX_DMA_SIZE(chip); acp_fifo_addr = rsrc->sram_pte_offset + BT_PB_FIFO_ADDR_OFFSET; - reg_fifo_addr = ACP_BT_TX_FIFOADDR(adata); - reg_fifo_size = ACP_BT_TX_FIFOSIZE(adata); + reg_fifo_addr = ACP_BT_TX_FIFOADDR(chip); + reg_fifo_size = ACP_BT_TX_FIFOSIZE(chip); if (chip->acp_rev >= ACP70_PCI_ID) phy_addr = ACP7x_I2S_BT_TX_MEM_WINDOW_START; else phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_BT_TX_RINGBUFADDR(adata)); + writel(phy_addr, chip->base + ACP_BT_TX_RINGBUFADDR(chip)); } else { - reg_dma_size = ACP_BT_RX_DMA_SIZE(adata); + reg_dma_size = ACP_BT_RX_DMA_SIZE(chip); acp_fifo_addr = rsrc->sram_pte_offset + BT_CAPT_FIFO_ADDR_OFFSET; - reg_fifo_addr = ACP_BT_RX_FIFOADDR(adata); - reg_fifo_size = ACP_BT_RX_FIFOSIZE(adata); + reg_fifo_addr = ACP_BT_RX_FIFOADDR(chip); + reg_fifo_size = ACP_BT_RX_FIFOSIZE(chip); if (chip->acp_rev >= ACP70_PCI_ID) phy_addr = ACP7x_I2S_BT_RX_MEM_WINDOW_START; else phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_BT_RX_RINGBUFADDR(adata)); + writel(phy_addr, chip->base + ACP_BT_RX_RINGBUFADDR(chip)); } break; case I2S_HS_INSTANCE: @@ -593,7 +588,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d phy_addr = ACP7x_I2S_HS_TX_MEM_WINDOW_START; else phy_addr = I2S_HS_TX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_HS_TX_RINGBUFADDR); + writel(phy_addr, chip->base + ACP_HS_TX_RINGBUFADDR); } else { reg_dma_size = ACP_HS_RX_DMA_SIZE; acp_fifo_addr = rsrc->sram_pte_offset + @@ -605,7 +600,7 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d phy_addr = ACP7x_I2S_HS_RX_MEM_WINDOW_START; else phy_addr = I2S_HS_RX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_HS_RX_RINGBUFADDR); + writel(phy_addr, chip->base + ACP_HS_RX_RINGBUFADDR); } break; default: @@ -613,9 +608,9 @@ static int acp_i2s_prepare(struct snd_pcm_substream *substream, struct snd_soc_d return -EINVAL; } - writel(DMA_SIZE, adata->acp_base + reg_dma_size); - writel(acp_fifo_addr, adata->acp_base + reg_fifo_addr); - writel(FIFO_SIZE, adata->acp_base + reg_fifo_size); + writel(DMA_SIZE, chip->base + reg_dma_size); + writel(acp_fifo_addr, chip->base + reg_fifo_addr); + writel(FIFO_SIZE, chip->base + reg_fifo_size); ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(chip, rsrc->irqp_used)); ext_int_ctrl |= BIT(I2S_RX_THRESHOLD(rsrc->offset)) | @@ -634,8 +629,8 @@ static int acp_i2s_startup(struct snd_pcm_substream *substream, struct snd_soc_d { struct acp_stream *stream = substream->runtime->private_data; struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); - struct acp_resource *rsrc = adata->rsrc; + struct acp_chip_info *chip = dev_get_platdata(dev); + struct acp_resource *rsrc = chip->rsrc; unsigned int dir = substream->stream; unsigned int irq_bit = 0; diff --git a/sound/soc/amd/acp/acp-legacy-common.c b/sound/soc/amd/acp/acp-legacy-common.c index 13fddce8df56..988b7a17b2f4 100644 --- a/sound/soc/amd/acp/acp-legacy-common.c +++ b/sound/soc/amd/acp/acp-legacy-common.c @@ -38,26 +38,25 @@ EXPORT_SYMBOL_NS_GPL(acp_common_hw_ops, "SND_SOC_ACP_COMMON"); irqreturn_t acp_irq_handler(int irq, void *data) { struct acp_chip_info *chip = data; - struct acp_dev_data *adata = chip->adata; - struct acp_resource *rsrc = adata->rsrc; + struct acp_resource *rsrc = chip->rsrc; struct acp_stream *stream; u16 i2s_flag = 0; u32 ext_intr_stat, ext_intr_stat1; - if (adata->rsrc->no_of_ctrls == 2) + if (rsrc->no_of_ctrls == 2) ext_intr_stat1 = readl(ACP_EXTERNAL_INTR_STAT(chip, (rsrc->irqp_used - 1))); ext_intr_stat = readl(ACP_EXTERNAL_INTR_STAT(chip, rsrc->irqp_used)); - spin_lock(&adata->acp_lock); - list_for_each_entry(stream, &adata->stream_list, list) { + spin_lock(&chip->acp_lock); + list_for_each_entry(stream, &chip->stream_list, list) { if (ext_intr_stat & stream->irq_bit) { writel(stream->irq_bit, ACP_EXTERNAL_INTR_STAT(chip, rsrc->irqp_used)); snd_pcm_period_elapsed(stream->substream); i2s_flag = 1; } - if (adata->rsrc->no_of_ctrls == 2) { + if (chip->rsrc->no_of_ctrls == 2) { if (ext_intr_stat1 & stream->irq_bit) { writel(stream->irq_bit, ACP_EXTERNAL_INTR_STAT(chip, (rsrc->irqp_used - 1))); @@ -66,7 +65,7 @@ irqreturn_t acp_irq_handler(int irq, void *data) } } } - spin_unlock(&adata->acp_lock); + spin_unlock(&chip->acp_lock); if (i2s_flag) return IRQ_HANDLED; @@ -106,7 +105,7 @@ static void set_acp_pdm_ring_buffer(struct snd_pcm_substream *substream, struct snd_pcm_runtime *runtime = substream->runtime; struct acp_stream *stream = runtime->private_data; struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); u32 physical_addr, pdm_size, period_bytes; @@ -115,43 +114,40 @@ static void set_acp_pdm_ring_buffer(struct snd_pcm_substream *substream, physical_addr = stream->reg_offset + MEM_WINDOW_START; /* Init ACP PDM Ring buffer */ - writel(physical_addr, adata->acp_base + ACP_WOV_RX_RINGBUFADDR); - writel(pdm_size, adata->acp_base + ACP_WOV_RX_RINGBUFSIZE); - writel(period_bytes, adata->acp_base + ACP_WOV_RX_INTR_WATERMARK_SIZE); - writel(0x01, adata->acp_base + ACPAXI2AXI_ATU_CTRL); + writel(physical_addr, chip->base + ACP_WOV_RX_RINGBUFADDR); + writel(pdm_size, chip->base + ACP_WOV_RX_RINGBUFSIZE); + writel(period_bytes, chip->base + ACP_WOV_RX_INTR_WATERMARK_SIZE); + writel(0x01, chip->base + ACPAXI2AXI_ATU_CTRL); } static void set_acp_pdm_clk(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); unsigned int pdm_ctrl; /* Enable default ACP PDM clk */ - writel(PDM_CLK_FREQ_MASK, adata->acp_base + ACP_WOV_CLK_CTRL); - pdm_ctrl = readl(adata->acp_base + ACP_WOV_MISC_CTRL); + writel(PDM_CLK_FREQ_MASK, chip->base + ACP_WOV_CLK_CTRL); + pdm_ctrl = readl(chip->base + ACP_WOV_MISC_CTRL); pdm_ctrl |= PDM_MISC_CTRL_MASK; - writel(pdm_ctrl, adata->acp_base + ACP_WOV_MISC_CTRL); + writel(pdm_ctrl, chip->base + ACP_WOV_MISC_CTRL); set_acp_pdm_ring_buffer(substream, dai); } void restore_acp_pdm_params(struct snd_pcm_substream *substream, - struct acp_dev_data *adata) + struct acp_chip_info *chip) { struct snd_soc_dai *dai; - struct device *dev; - struct acp_chip_info *chip; struct snd_soc_pcm_runtime *soc_runtime; u32 ext_int_ctrl; soc_runtime = snd_soc_substream_to_rtd(substream); dai = snd_soc_rtd_to_cpu(soc_runtime, 0); - dev = dai->component->dev; - chip = dev_get_platdata(dev); + /* Programming channel mask and sampling rate */ - writel(adata->ch_mask, adata->acp_base + ACP_WOV_PDM_NO_OF_CHANNELS); - writel(PDM_DEC_64, adata->acp_base + ACP_WOV_PDM_DECIMATION_FACTOR); + writel(chip->ch_mask, chip->base + ACP_WOV_PDM_NO_OF_CHANNELS); + writel(PDM_DEC_64, chip->base + ACP_WOV_PDM_DECIMATION_FACTOR); /* Enabling ACP Pdm interuppts */ ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(chip, 0)); @@ -165,9 +161,8 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); - struct acp_resource *rsrc = adata->rsrc; struct acp_chip_info *chip = dev_get_platdata(dev); + struct acp_resource *rsrc = chip->rsrc; struct acp_stream *stream = substream->runtime->private_data; u32 reg_dma_size, reg_fifo_size, reg_fifo_addr; u32 phy_addr, acp_fifo_addr, ext_int_ctrl; @@ -176,40 +171,40 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream, switch (dai->driver->id) { case I2S_SP_INSTANCE: if (dir == SNDRV_PCM_STREAM_PLAYBACK) { - reg_dma_size = ACP_I2S_TX_DMA_SIZE(adata); + reg_dma_size = ACP_I2S_TX_DMA_SIZE(chip); acp_fifo_addr = rsrc->sram_pte_offset + SP_PB_FIFO_ADDR_OFFSET; - reg_fifo_addr = ACP_I2S_TX_FIFOADDR(adata); - reg_fifo_size = ACP_I2S_TX_FIFOSIZE(adata); + reg_fifo_addr = ACP_I2S_TX_FIFOADDR(chip); + reg_fifo_size = ACP_I2S_TX_FIFOSIZE(chip); phy_addr = I2S_SP_TX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_I2S_TX_RINGBUFADDR(adata)); + writel(phy_addr, chip->base + ACP_I2S_TX_RINGBUFADDR(chip)); } else { - reg_dma_size = ACP_I2S_RX_DMA_SIZE(adata); + reg_dma_size = ACP_I2S_RX_DMA_SIZE(chip); acp_fifo_addr = rsrc->sram_pte_offset + SP_CAPT_FIFO_ADDR_OFFSET; - reg_fifo_addr = ACP_I2S_RX_FIFOADDR(adata); - reg_fifo_size = ACP_I2S_RX_FIFOSIZE(adata); + reg_fifo_addr = ACP_I2S_RX_FIFOADDR(chip); + reg_fifo_size = ACP_I2S_RX_FIFOSIZE(chip); phy_addr = I2S_SP_RX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_I2S_RX_RINGBUFADDR(adata)); + writel(phy_addr, chip->base + ACP_I2S_RX_RINGBUFADDR(chip)); } break; case I2S_BT_INSTANCE: if (dir == SNDRV_PCM_STREAM_PLAYBACK) { - reg_dma_size = ACP_BT_TX_DMA_SIZE(adata); + reg_dma_size = ACP_BT_TX_DMA_SIZE(chip); acp_fifo_addr = rsrc->sram_pte_offset + BT_PB_FIFO_ADDR_OFFSET; - reg_fifo_addr = ACP_BT_TX_FIFOADDR(adata); - reg_fifo_size = ACP_BT_TX_FIFOSIZE(adata); + reg_fifo_addr = ACP_BT_TX_FIFOADDR(chip); + reg_fifo_size = ACP_BT_TX_FIFOSIZE(chip); phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_BT_TX_RINGBUFADDR(adata)); + writel(phy_addr, chip->base + ACP_BT_TX_RINGBUFADDR(chip)); } else { - reg_dma_size = ACP_BT_RX_DMA_SIZE(adata); + reg_dma_size = ACP_BT_RX_DMA_SIZE(chip); acp_fifo_addr = rsrc->sram_pte_offset + BT_CAPT_FIFO_ADDR_OFFSET; - reg_fifo_addr = ACP_BT_RX_FIFOADDR(adata); - reg_fifo_size = ACP_BT_RX_FIFOSIZE(adata); + reg_fifo_addr = ACP_BT_RX_FIFOADDR(chip); + reg_fifo_size = ACP_BT_RX_FIFOSIZE(chip); phy_addr = I2S_BT_TX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_BT_RX_RINGBUFADDR(adata)); + writel(phy_addr, chip->base + ACP_BT_RX_RINGBUFADDR(chip)); } break; case I2S_HS_INSTANCE: @@ -220,7 +215,7 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream, reg_fifo_addr = ACP_HS_TX_FIFOADDR; reg_fifo_size = ACP_HS_TX_FIFOSIZE; phy_addr = I2S_HS_TX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_HS_TX_RINGBUFADDR); + writel(phy_addr, chip->base + ACP_HS_TX_RINGBUFADDR); } else { reg_dma_size = ACP_HS_RX_DMA_SIZE; acp_fifo_addr = rsrc->sram_pte_offset + @@ -228,7 +223,7 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream, reg_fifo_addr = ACP_HS_RX_FIFOADDR; reg_fifo_size = ACP_HS_RX_FIFOSIZE; phy_addr = I2S_HS_RX_MEM_WINDOW_START + stream->reg_offset; - writel(phy_addr, adata->acp_base + ACP_HS_RX_RINGBUFADDR); + writel(phy_addr, chip->base + ACP_HS_RX_RINGBUFADDR); } break; default: @@ -236,9 +231,9 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream, return -EINVAL; } - writel(DMA_SIZE, adata->acp_base + reg_dma_size); - writel(acp_fifo_addr, adata->acp_base + reg_fifo_addr); - writel(FIFO_SIZE, adata->acp_base + reg_fifo_size); + writel(DMA_SIZE, chip->base + reg_dma_size); + writel(acp_fifo_addr, chip->base + reg_fifo_addr); + writel(FIFO_SIZE, chip->base + reg_fifo_size); ext_int_ctrl = readl(ACP_EXTERNAL_INTR_CNTL(chip, rsrc->irqp_used)); ext_int_ctrl |= BIT(I2S_RX_THRESHOLD(rsrc->offset)) | @@ -253,7 +248,7 @@ static int set_acp_i2s_dma_fifo(struct snd_pcm_substream *substream, } int restore_acp_i2s_params(struct snd_pcm_substream *substream, - struct acp_dev_data *adata, + struct acp_chip_info *chip, struct acp_stream *stream) { struct snd_soc_dai *dai; @@ -263,7 +258,7 @@ int restore_acp_i2s_params(struct snd_pcm_substream *substream, soc_runtime = snd_soc_substream_to_rtd(substream); dai = snd_soc_rtd_to_cpu(soc_runtime, 0); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { - tdm_fmt = adata->tdm_tx_fmt[stream->dai_id - 1]; + tdm_fmt = chip->tdm_tx_fmt[stream->dai_id - 1]; switch (stream->dai_id) { case I2S_BT_INSTANCE: reg_val = ACP_BTTDM_ITER; @@ -281,9 +276,9 @@ int restore_acp_i2s_params(struct snd_pcm_substream *substream, pr_err("Invalid dai id %x\n", stream->dai_id); return -EINVAL; } - val = adata->xfer_tx_resolution[stream->dai_id - 1] << 3; + val = chip->xfer_tx_resolution[stream->dai_id - 1] << 3; } else { - tdm_fmt = adata->tdm_rx_fmt[stream->dai_id - 1]; + tdm_fmt = chip->tdm_rx_fmt[stream->dai_id - 1]; switch (stream->dai_id) { case I2S_BT_INSTANCE: reg_val = ACP_BTTDM_IRER; @@ -301,13 +296,13 @@ int restore_acp_i2s_params(struct snd_pcm_substream *substream, pr_err("Invalid dai id %x\n", stream->dai_id); return -EINVAL; } - val = adata->xfer_rx_resolution[stream->dai_id - 1] << 3; + val = chip->xfer_rx_resolution[stream->dai_id - 1] << 3; } - writel(val, adata->acp_base + reg_val); - if (adata->tdm_mode == TDM_ENABLE) { - writel(tdm_fmt, adata->acp_base + fmt_reg); - val = readl(adata->acp_base + reg_val); - writel(val | 0x2, adata->acp_base + reg_val); + writel(val, chip->base + reg_val); + if (chip->tdm_mode == TDM_ENABLE) { + writel(tdm_fmt, chip->base + fmt_reg); + val = readl(chip->base + reg_val); + writel(val | 0x2, chip->base + reg_val); } return set_acp_i2s_dma_fifo(substream, dai); } diff --git a/sound/soc/amd/acp/acp-pdm.c b/sound/soc/amd/acp/acp-pdm.c index 9a820ef3bf46..1bfc34c2aa53 100644 --- a/sound/soc/amd/acp/acp-pdm.c +++ b/sound/soc/amd/acp/acp-pdm.c @@ -30,17 +30,16 @@ static int acp_dmic_prepare(struct snd_pcm_substream *substream, { struct acp_stream *stream = substream->runtime->private_data; struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); struct acp_chip_info *chip; u32 physical_addr, size_dmic, period_bytes; unsigned int dmic_ctrl; chip = dev_get_platdata(dev); /* Enable default DMIC clk */ - writel(PDM_CLK_FREQ_MASK, adata->acp_base + ACP_WOV_CLK_CTRL); - dmic_ctrl = readl(adata->acp_base + ACP_WOV_MISC_CTRL); + writel(PDM_CLK_FREQ_MASK, chip->base + ACP_WOV_CLK_CTRL); + dmic_ctrl = readl(chip->base + ACP_WOV_MISC_CTRL); dmic_ctrl |= PDM_MISC_CTRL_MASK; - writel(dmic_ctrl, adata->acp_base + ACP_WOV_MISC_CTRL); + writel(dmic_ctrl, chip->base + ACP_WOV_MISC_CTRL); period_bytes = frames_to_bytes(substream->runtime, substream->runtime->period_size); @@ -53,10 +52,10 @@ static int acp_dmic_prepare(struct snd_pcm_substream *substream, physical_addr = stream->reg_offset + MEM_WINDOW_START; /* Init DMIC Ring buffer */ - writel(physical_addr, adata->acp_base + ACP_WOV_RX_RINGBUFADDR); - writel(size_dmic, adata->acp_base + ACP_WOV_RX_RINGBUFSIZE); - writel(period_bytes, adata->acp_base + ACP_WOV_RX_INTR_WATERMARK_SIZE); - writel(0x01, adata->acp_base + ACPAXI2AXI_ATU_CTRL); + writel(physical_addr, chip->base + ACP_WOV_RX_RINGBUFADDR); + writel(size_dmic, chip->base + ACP_WOV_RX_RINGBUFSIZE); + writel(period_bytes, chip->base + ACP_WOV_RX_INTR_WATERMARK_SIZE); + writel(0x01, chip->base + ACPAXI2AXI_ATU_CTRL); return 0; } @@ -65,7 +64,7 @@ static int acp_dmic_dai_trigger(struct snd_pcm_substream *substream, int cmd, struct snd_soc_dai *dai) { struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); unsigned int dma_enable; int ret = 0; @@ -73,27 +72,27 @@ static int acp_dmic_dai_trigger(struct snd_pcm_substream *substream, case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_RESUME: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: - dma_enable = readl(adata->acp_base + ACP_WOV_PDM_DMA_ENABLE); + dma_enable = readl(chip->base + ACP_WOV_PDM_DMA_ENABLE); if (!(dma_enable & DMA_EN_MASK)) { - writel(PDM_ENABLE, adata->acp_base + ACP_WOV_PDM_ENABLE); - writel(PDM_ENABLE, adata->acp_base + ACP_WOV_PDM_DMA_ENABLE); + writel(PDM_ENABLE, chip->base + ACP_WOV_PDM_ENABLE); + writel(PDM_ENABLE, chip->base + ACP_WOV_PDM_DMA_ENABLE); } - ret = readl_poll_timeout_atomic(adata->acp_base + ACP_WOV_PDM_DMA_ENABLE, + ret = readl_poll_timeout_atomic(chip->base + ACP_WOV_PDM_DMA_ENABLE, dma_enable, (dma_enable & DMA_EN_MASK), DELAY_US, PDM_TIMEOUT); break; case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: - dma_enable = readl(adata->acp_base + ACP_WOV_PDM_DMA_ENABLE); + dma_enable = readl(chip->base + ACP_WOV_PDM_DMA_ENABLE); if ((dma_enable & DMA_EN_MASK)) { - writel(PDM_DISABLE, adata->acp_base + ACP_WOV_PDM_ENABLE); - writel(PDM_DISABLE, adata->acp_base + ACP_WOV_PDM_DMA_ENABLE); + writel(PDM_DISABLE, chip->base + ACP_WOV_PDM_ENABLE); + writel(PDM_DISABLE, chip->base + ACP_WOV_PDM_DMA_ENABLE); } - ret = readl_poll_timeout_atomic(adata->acp_base + ACP_WOV_PDM_DMA_ENABLE, + ret = readl_poll_timeout_atomic(chip->base + ACP_WOV_PDM_DMA_ENABLE, dma_enable, !(dma_enable & DMA_EN_MASK), DELAY_US, PDM_TIMEOUT); break; @@ -109,7 +108,7 @@ static int acp_dmic_hwparams(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *hwparams, struct snd_soc_dai *dai) { struct device *dev = dai->component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); unsigned int channels, ch_mask; channels = params_channels(hwparams); @@ -128,14 +127,14 @@ static int acp_dmic_hwparams(struct snd_pcm_substream *substream, return -EINVAL; } - adata->ch_mask = ch_mask; + chip->ch_mask = ch_mask; if (params_format(hwparams) != SNDRV_PCM_FORMAT_S32_LE) { dev_err(dai->dev, "Invalid format:%d\n", params_format(hwparams)); return -EINVAL; } - writel(ch_mask, adata->acp_base + ACP_WOV_PDM_NO_OF_CHANNELS); - writel(PDM_DEC_64, adata->acp_base + ACP_WOV_PDM_DECIMATION_FACTOR); + writel(ch_mask, chip->base + ACP_WOV_PDM_NO_OF_CHANNELS); + writel(PDM_DEC_64, chip->base + ACP_WOV_PDM_DECIMATION_FACTOR); return 0; } diff --git a/sound/soc/amd/acp/acp-platform.c b/sound/soc/amd/acp/acp-platform.c index 9b181fb5861c..8d61e1991e4f 100644 --- a/sound/soc/amd/acp/acp-platform.c +++ b/sound/soc/amd/acp/acp-platform.c @@ -107,37 +107,37 @@ static const struct snd_pcm_hardware acp6x_pcm_hardware_capture = { .periods_max = CAPTURE_MAX_NUM_PERIODS, }; -void config_pte_for_stream(struct acp_dev_data *adata, struct acp_stream *stream) +void config_pte_for_stream(struct acp_chip_info *chip, struct acp_stream *stream) { - struct acp_resource *rsrc = adata->rsrc; + struct acp_resource *rsrc = chip->rsrc; u32 reg_val; reg_val = rsrc->sram_pte_offset; stream->reg_offset = 0x02000000; - writel((reg_val + GRP1_OFFSET) | BIT(31), adata->acp_base + ACPAXI2AXI_ATU_BASE_ADDR_GRP_1); - writel(PAGE_SIZE_4K_ENABLE, adata->acp_base + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_1); + writel((reg_val + GRP1_OFFSET) | BIT(31), chip->base + ACPAXI2AXI_ATU_BASE_ADDR_GRP_1); + writel(PAGE_SIZE_4K_ENABLE, chip->base + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_1); - writel((reg_val + GRP2_OFFSET) | BIT(31), adata->acp_base + ACPAXI2AXI_ATU_BASE_ADDR_GRP_2); - writel(PAGE_SIZE_4K_ENABLE, adata->acp_base + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_2); + writel((reg_val + GRP2_OFFSET) | BIT(31), chip->base + ACPAXI2AXI_ATU_BASE_ADDR_GRP_2); + writel(PAGE_SIZE_4K_ENABLE, chip->base + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_2); - writel(reg_val | BIT(31), adata->acp_base + ACPAXI2AXI_ATU_BASE_ADDR_GRP_5); - writel(PAGE_SIZE_4K_ENABLE, adata->acp_base + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_5); + writel(reg_val | BIT(31), chip->base + ACPAXI2AXI_ATU_BASE_ADDR_GRP_5); + writel(PAGE_SIZE_4K_ENABLE, chip->base + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_5); - writel(0x01, adata->acp_base + ACPAXI2AXI_ATU_CTRL); + writel(0x01, chip->base + ACPAXI2AXI_ATU_CTRL); } EXPORT_SYMBOL_NS_GPL(config_pte_for_stream, "SND_SOC_ACP_COMMON"); -void config_acp_dma(struct acp_dev_data *adata, struct acp_stream *stream, int size) +void config_acp_dma(struct acp_chip_info *chip, struct acp_stream *stream, int size) { struct snd_pcm_substream *substream = stream->substream; - struct acp_resource *rsrc = adata->rsrc; + struct acp_resource *rsrc = chip->rsrc; dma_addr_t addr = substream->dma_buffer.addr; int num_pages = (PAGE_ALIGN(size) >> PAGE_SHIFT); u32 low, high, val; u16 page_idx; - switch (adata->acp_rev) { + switch (chip->acp_rev) { case ACP70_PCI_ID: case ACP71_PCI_ID: switch (stream->dai_id) { @@ -163,7 +163,7 @@ void config_acp_dma(struct acp_dev_data *adata, struct acp_stream *stream, int s val = 0x6000; break; default: - dev_err(adata->dev, "Invalid dai id %x\n", stream->dai_id); + dev_err(chip->dev, "Invalid dai id %x\n", stream->dai_id); return; } break; @@ -176,9 +176,9 @@ void config_acp_dma(struct acp_dev_data *adata, struct acp_stream *stream, int s /* Load the low address of page int ACP SRAM through SRBM */ low = lower_32_bits(addr); high = upper_32_bits(addr); - writel(low, adata->acp_base + rsrc->scratch_reg_offset + val); + writel(low, chip->base + rsrc->scratch_reg_offset + val); high |= BIT(31); - writel(high, adata->acp_base + rsrc->scratch_reg_offset + val + 4); + writel(high, chip->base + rsrc->scratch_reg_offset + val + 4); /* Move to next physically contiguous page */ val += 8; @@ -191,7 +191,6 @@ static int acp_dma_open(struct snd_soc_component *component, struct snd_pcm_subs { struct snd_pcm_runtime *runtime = substream->runtime; struct device *dev = component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); struct acp_chip_info *chip; struct acp_stream *stream; int ret; @@ -201,7 +200,7 @@ static int acp_dma_open(struct snd_soc_component *component, struct snd_pcm_subs return -ENOMEM; stream->substream = substream; - chip = dev_get_platdata(dev); + chip = dev_get_drvdata(dev->parent); switch (chip->acp_rev) { case ACP63_PCI_ID: case ACP70_PCI_ID: @@ -243,9 +242,9 @@ static int acp_dma_open(struct snd_soc_component *component, struct snd_pcm_subs writel(1, ACP_EXTERNAL_INTR_ENB(chip)); - spin_lock_irq(&adata->acp_lock); - list_add_tail(&stream->list, &adata->stream_list); - spin_unlock_irq(&adata->acp_lock); + spin_lock_irq(&chip->acp_lock); + list_add_tail(&stream->list, &chip->stream_list); + spin_unlock_irq(&chip->acp_lock); return ret; } @@ -254,13 +253,14 @@ static int acp_dma_hw_params(struct snd_soc_component *component, struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params) { - struct acp_dev_data *adata = snd_soc_component_get_drvdata(component); + struct device *dev = component->dev; + struct acp_chip_info *chip = dev_get_drvdata(dev->parent); struct acp_stream *stream = substream->runtime->private_data; u64 size = params_buffer_bytes(params); /* Configure ACP DMA block with params */ - config_pte_for_stream(adata, stream); - config_acp_dma(adata, stream, size); + config_pte_for_stream(chip, stream); + config_acp_dma(chip, stream, size); return 0; } @@ -269,7 +269,7 @@ static snd_pcm_uframes_t acp_dma_pointer(struct snd_soc_component *component, struct snd_pcm_substream *substream) { struct device *dev = component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_drvdata(dev->parent); struct acp_stream *stream = substream->runtime->private_data; u32 pos, buffersize; u64 bytescount; @@ -277,7 +277,7 @@ static snd_pcm_uframes_t acp_dma_pointer(struct snd_soc_component *component, buffersize = frames_to_bytes(substream->runtime, substream->runtime->buffer_size); - bytescount = acp_get_byte_count(adata, stream->dai_id, substream->stream); + bytescount = acp_get_byte_count(chip, stream->dai_id, substream->stream); if (bytescount > stream->bytescount) bytescount -= stream->bytescount; @@ -301,13 +301,13 @@ static int acp_dma_close(struct snd_soc_component *component, struct snd_pcm_substream *substream) { struct device *dev = component->dev; - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_drvdata(dev->parent); struct acp_stream *stream = substream->runtime->private_data; /* Remove entry from list */ - spin_lock_irq(&adata->acp_lock); + spin_lock_irq(&chip->acp_lock); list_del(&stream->list); - spin_unlock_irq(&adata->acp_lock); + spin_unlock_irq(&chip->acp_lock); kfree(stream); return 0; @@ -325,7 +325,6 @@ static const struct snd_soc_component_driver acp_pcm_component = { int acp_platform_register(struct device *dev) { - struct acp_dev_data *adata = dev_get_drvdata(dev); struct acp_chip_info *chip; struct snd_soc_dai_driver; unsigned int status; @@ -336,17 +335,16 @@ int acp_platform_register(struct device *dev) return -ENODEV; } - chip->adata = adata; status = devm_snd_soc_register_component(dev, &acp_pcm_component, - adata->dai_driver, - adata->num_dai); + chip->dai_driver, + chip->num_dai); if (status) { dev_err(dev, "Fail to register acp i2s component\n"); return status; } - INIT_LIST_HEAD(&adata->stream_list); - spin_lock_init(&adata->acp_lock); + INIT_LIST_HEAD(&chip->stream_list); + spin_lock_init(&chip->acp_lock); return 0; } @@ -354,10 +352,6 @@ EXPORT_SYMBOL_NS_GPL(acp_platform_register, "SND_SOC_ACP_COMMON"); int acp_platform_unregister(struct device *dev) { - struct acp_dev_data *adata = dev_get_drvdata(dev); - - if (adata->mach_dev) - platform_device_unregister(adata->mach_dev); return 0; } EXPORT_SYMBOL_NS_GPL(acp_platform_unregister, "SND_SOC_ACP_COMMON"); diff --git a/sound/soc/amd/acp/acp-rembrandt.c b/sound/soc/amd/acp/acp-rembrandt.c index 13633b3f3730..dfb18d5cdc7a 100644 --- a/sound/soc/amd/acp/acp-rembrandt.c +++ b/sound/soc/amd/acp/acp-rembrandt.c @@ -157,8 +157,6 @@ static int rembrandt_audio_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct acp_chip_info *chip; - struct acp_dev_data *adata; - struct resource *res; u32 ret; chip = dev_get_platdata(&pdev->dev); @@ -172,37 +170,10 @@ static int rembrandt_audio_probe(struct platform_device *pdev) return -ENODEV; } - adata = devm_kzalloc(dev, sizeof(struct acp_dev_data), GFP_KERNEL); - if (!adata) - return -ENOMEM; - - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "acp_mem"); - if (!res) { - dev_err(&pdev->dev, "IORESOURCE_MEM FAILED\n"); - return -ENODEV; - } - - adata->acp_base = devm_ioremap(&pdev->dev, res->start, resource_size(res)); - if (!adata->acp_base) - return -ENOMEM; - - res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "acp_dai_irq"); - if (!res) { - dev_err(&pdev->dev, "IORESOURCE_IRQ FAILED\n"); - return -ENODEV; - } - + chip->dev = dev; chip->rsrc = &rsrc; - adata->i2s_irq = res->start; - adata->dev = dev; - adata->dai_driver = acp_rmb_dai; - adata->num_dai = ARRAY_SIZE(acp_rmb_dai); - adata->rsrc = &rsrc; - adata->acp_rev = chip->acp_rev; - adata->flag = chip->flag; - adata->is_i2s_config = chip->is_i2s_config; - - dev_set_drvdata(dev, adata); + chip->dai_driver = acp_rmb_dai; + chip->num_dai = ARRAY_SIZE(acp_rmb_dai); if (chip->is_i2s_config && rsrc.soc_mclk) { ret = acp6x_master_clock_generate(dev); @@ -239,30 +210,30 @@ static void rembrandt_audio_remove(struct platform_device *pdev) static int __maybe_unused rmb_pcm_resume(struct device *dev) { - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); struct acp_stream *stream; struct snd_pcm_substream *substream; snd_pcm_uframes_t buf_in_frames; u64 buf_size; - if (adata->is_i2s_config && adata->rsrc->soc_mclk) + if (chip->is_i2s_config && chip->rsrc->soc_mclk) acp6x_master_clock_generate(dev); - spin_lock(&adata->acp_lock); - list_for_each_entry(stream, &adata->stream_list, list) { + spin_lock(&chip->acp_lock); + list_for_each_entry(stream, &chip->stream_list, list) { substream = stream->substream; if (substream && substream->runtime) { buf_in_frames = (substream->runtime->buffer_size); buf_size = frames_to_bytes(substream->runtime, buf_in_frames); - config_pte_for_stream(adata, stream); - config_acp_dma(adata, stream, buf_size); + config_pte_for_stream(chip, stream); + config_acp_dma(chip, stream, buf_size); if (stream->dai_id) - restore_acp_i2s_params(substream, adata, stream); + restore_acp_i2s_params(substream, chip, stream); else - restore_acp_pdm_params(substream, adata); + restore_acp_pdm_params(substream, chip); } } - spin_unlock(&adata->acp_lock); + spin_unlock(&chip->acp_lock); return 0; } diff --git a/sound/soc/amd/acp/acp-renoir.c b/sound/soc/amd/acp/acp-renoir.c index 94ecb17684b7..2037af67509a 100644 --- a/sound/soc/amd/acp/acp-renoir.c +++ b/sound/soc/amd/acp/acp-renoir.c @@ -108,8 +108,6 @@ static int renoir_audio_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct acp_chip_info *chip; - struct acp_dev_data *adata; - struct resource *res; int ret; chip = dev_get_platdata(&pdev->dev); @@ -123,39 +121,17 @@ static int renoir_audio_probe(struct platform_device *pdev) return -ENODEV; } - adata = devm_kzalloc(dev, sizeof(struct acp_dev_data), GFP_KERNEL); - if (!adata) - return -ENOMEM; - - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "acp_mem"); - if (!res) { - dev_err(&pdev->dev, "IORESOURCE_MEM FAILED\n"); - return -ENODEV; - } - - adata->acp_base = devm_ioremap(&pdev->dev, res->start, resource_size(res)); - if (!adata->acp_base) - return -ENOMEM; - - ret = platform_get_irq_byname(pdev, "acp_dai_irq"); - if (ret < 0) - return ret; - adata->i2s_irq = ret; - + chip->dev = dev; chip->rsrc = &rsrc; - adata->dev = dev; - adata->dai_driver = acp_renoir_dai; - adata->num_dai = ARRAY_SIZE(acp_renoir_dai); - adata->rsrc = &rsrc; - adata->acp_rev = chip->acp_rev; - adata->flag = chip->flag; - - dev_set_drvdata(dev, adata); + chip->dai_driver = acp_renoir_dai; + chip->num_dai = ARRAY_SIZE(acp_renoir_dai); + ret = acp_hw_en_interrupts(chip); if (ret) { dev_err(dev, "ACP en-interrupts failed\n"); return ret; } + acp_platform_register(dev); pm_runtime_set_autosuspend_delay(&pdev->dev, ACP_SUSPEND_DELAY_MS); @@ -181,27 +157,27 @@ static void renoir_audio_remove(struct platform_device *pdev) static int __maybe_unused rn_pcm_resume(struct device *dev) { - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); struct acp_stream *stream; struct snd_pcm_substream *substream; snd_pcm_uframes_t buf_in_frames; u64 buf_size; - spin_lock(&adata->acp_lock); - list_for_each_entry(stream, &adata->stream_list, list) { + spin_lock(&chip->acp_lock); + list_for_each_entry(stream, &chip->stream_list, list) { substream = stream->substream; if (substream && substream->runtime) { buf_in_frames = (substream->runtime->buffer_size); buf_size = frames_to_bytes(substream->runtime, buf_in_frames); - config_pte_for_stream(adata, stream); - config_acp_dma(adata, stream, buf_size); + config_pte_for_stream(chip, stream); + config_acp_dma(chip, stream, buf_size); if (stream->dai_id) - restore_acp_i2s_params(substream, adata, stream); + restore_acp_i2s_params(substream, chip, stream); else - restore_acp_pdm_params(substream, adata); + restore_acp_pdm_params(substream, chip); } } - spin_unlock(&adata->acp_lock); + spin_unlock(&chip->acp_lock); return 0; } diff --git a/sound/soc/amd/acp/acp63.c b/sound/soc/amd/acp/acp63.c index e38ad9f7fb48..49786e1a214f 100644 --- a/sound/soc/amd/acp/acp63.c +++ b/sound/soc/amd/acp/acp63.c @@ -153,7 +153,7 @@ static struct snd_soc_dai_driver acp63_dai[] = { }, }; -static int acp63_i2s_master_clock_generate(struct acp_dev_data *adata) +static int acp63_i2s_master_clock_generate(struct acp_chip_info *chip) { int rc; u32 data; @@ -208,8 +208,6 @@ static int acp63_audio_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct acp_chip_info *chip; - struct acp_dev_data *adata; - struct resource *res; int ret; chip = dev_get_platdata(&pdev->dev); @@ -223,39 +221,13 @@ static int acp63_audio_probe(struct platform_device *pdev) return -ENODEV; } - adata = devm_kzalloc(dev, sizeof(struct acp_dev_data), GFP_KERNEL); - if (!adata) - return -ENOMEM; - - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "acp_mem"); - if (!res) { - dev_err(&pdev->dev, "IORESOURCE_MEM FAILED\n"); - return -ENODEV; - } - - adata->acp_base = devm_ioremap(&pdev->dev, res->start, resource_size(res)); - if (!adata->acp_base) - return -ENOMEM; - - res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "acp_dai_irq"); - if (!res) { - dev_err(&pdev->dev, "IORESOURCE_IRQ FAILED\n"); - return -ENODEV; - } - + chip->dev = dev; chip->rsrc = &rsrc; - adata->i2s_irq = res->start; - adata->dev = dev; - adata->dai_driver = acp63_dai; - adata->num_dai = ARRAY_SIZE(acp63_dai); - adata->rsrc = &rsrc; - adata->acp_rev = chip->acp_rev; - adata->flag = chip->flag; - adata->is_i2s_config = chip->is_i2s_config; - dev_set_drvdata(dev, adata); + chip->dai_driver = acp63_dai; + chip->num_dai = ARRAY_SIZE(acp63_dai); if (chip->is_i2s_config && rsrc.soc_mclk) { - ret = acp63_i2s_master_clock_generate(adata); + ret = acp63_i2s_master_clock_generate(chip); if (ret) return ret; } @@ -289,30 +261,30 @@ static void acp63_audio_remove(struct platform_device *pdev) static int __maybe_unused acp63_pcm_resume(struct device *dev) { - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); struct acp_stream *stream; struct snd_pcm_substream *substream; snd_pcm_uframes_t buf_in_frames; u64 buf_size; - if (adata->is_i2s_config && adata->rsrc->soc_mclk) - acp63_i2s_master_clock_generate(adata); + if (chip->is_i2s_config && chip->rsrc->soc_mclk) + acp63_i2s_master_clock_generate(chip); - spin_lock(&adata->acp_lock); - list_for_each_entry(stream, &adata->stream_list, list) { + spin_lock(&chip->acp_lock); + list_for_each_entry(stream, &chip->stream_list, list) { substream = stream->substream; if (substream && substream->runtime) { buf_in_frames = (substream->runtime->buffer_size); buf_size = frames_to_bytes(substream->runtime, buf_in_frames); - config_pte_for_stream(adata, stream); - config_acp_dma(adata, stream, buf_size); + config_pte_for_stream(chip, stream); + config_acp_dma(chip, stream, buf_size); if (stream->dai_id) - restore_acp_i2s_params(substream, adata, stream); + restore_acp_i2s_params(substream, chip, stream); else - restore_acp_pdm_params(substream, adata); + restore_acp_pdm_params(substream, chip); } } - spin_unlock(&adata->acp_lock); + spin_unlock(&chip->acp_lock); return 0; } diff --git a/sound/soc/amd/acp/acp70.c b/sound/soc/amd/acp/acp70.c index be4302a5a584..c1b546df5e67 100644 --- a/sound/soc/amd/acp/acp70.c +++ b/sound/soc/amd/acp/acp70.c @@ -135,8 +135,6 @@ static int acp_acp70_audio_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct acp_chip_info *chip; - struct acp_dev_data *adata; - struct resource *res; int ret; chip = dev_get_platdata(&pdev->dev); @@ -154,36 +152,10 @@ static int acp_acp70_audio_probe(struct platform_device *pdev) return -ENODEV; } - adata = devm_kzalloc(dev, sizeof(struct acp_dev_data), GFP_KERNEL); - if (!adata) - return -ENOMEM; - - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "acp_mem"); - if (!res) { - dev_err(&pdev->dev, "IORESOURCE_MEM FAILED\n"); - return -ENODEV; - } - - adata->acp_base = devm_ioremap(&pdev->dev, res->start, resource_size(res)); - if (!adata->acp_base) - return -ENOMEM; - - res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, "acp_dai_irq"); - if (!res) { - dev_err(&pdev->dev, "IORESOURCE_IRQ FAILED\n"); - return -ENODEV; - } - + chip->dev = dev; chip->rsrc = &rsrc; - adata->i2s_irq = res->start; - adata->dev = dev; - adata->dai_driver = acp70_dai; - adata->num_dai = ARRAY_SIZE(acp70_dai); - adata->rsrc = &rsrc; - adata->acp_rev = chip->acp_rev; - adata->flag = chip->flag; - - dev_set_drvdata(dev, adata); + chip->dai_driver = acp70_dai; + chip->num_dai = ARRAY_SIZE(acp70_dai); /* Set clk7 DFS clock divider register value to get mclk as 196.608MHz*/ ret = amd_smn_write(0, CLK7_CLK0_DFS_CNTL_N1, CLK0_DIVIDER); @@ -221,27 +193,27 @@ static void acp_acp70_audio_remove(struct platform_device *pdev) static int __maybe_unused acp70_pcm_resume(struct device *dev) { - struct acp_dev_data *adata = dev_get_drvdata(dev); + struct acp_chip_info *chip = dev_get_platdata(dev); struct acp_stream *stream; struct snd_pcm_substream *substream; snd_pcm_uframes_t buf_in_frames; u64 buf_size; - spin_lock(&adata->acp_lock); - list_for_each_entry(stream, &adata->stream_list, list) { + spin_lock(&chip->acp_lock); + list_for_each_entry(stream, &chip->stream_list, list) { substream = stream->substream; if (substream && substream->runtime) { buf_in_frames = (substream->runtime->buffer_size); buf_size = frames_to_bytes(substream->runtime, buf_in_frames); - config_pte_for_stream(adata, stream); - config_acp_dma(adata, stream, buf_size); + config_pte_for_stream(chip, stream); + config_acp_dma(chip, stream, buf_size); if (stream->dai_id) - restore_acp_i2s_params(substream, adata, stream); + restore_acp_i2s_params(substream, chip, stream); else - restore_acp_pdm_params(substream, adata); + restore_acp_pdm_params(substream, chip); } } - spin_unlock(&adata->acp_lock); + spin_unlock(&chip->acp_lock); return 0; } diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index 4beaa9cae352..084d9db1b65c 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -142,22 +142,34 @@ struct acp_chip_info { char *name; /* Platform name */ struct resource *res; struct device *dev; + struct snd_soc_dai_driver *dai_driver; + unsigned int acp_rev; /* ACP Revision id */ void __iomem *base; /* ACP memory PCI base */ struct snd_acp_hw_ops *acp_hw_ops; int (*acp_hw_ops_init)(struct acp_chip_info *chip); struct platform_device *chip_pdev; struct acp_resource *rsrc; /* Platform specific resources*/ + struct list_head stream_list; + spinlock_t acp_lock; /* Used to protect stream_list */ struct platform_device *dmic_codec_dev; struct platform_device *acp_plat_dev; struct platform_device *mach_dev; struct snd_soc_acpi_mach *machines; - struct acp_dev_data *adata; + int num_dai; u32 addr; + u32 bclk_div; + u32 lrclk_div; + u32 ch_mask; + u32 tdm_tx_fmt[3]; + u32 tdm_rx_fmt[3]; + u32 xfer_tx_resolution[3]; + u32 xfer_rx_resolution[3]; unsigned int flag; /* Distinguish b/w Legacy or Only PDM */ bool is_pdm_dev; /* flag set to true when ACP PDM controller exists */ bool is_pdm_config; /* flag set to true when PDM configuration is selected from BIOS */ bool is_i2s_config; /* flag set to true when I2S configuration is selected from BIOS */ + bool tdm_mode; }; struct acp_stream { @@ -183,36 +195,6 @@ struct acp_resource { u64 sram_pte_offset; }; -struct acp_dev_data { - char *name; - struct device *dev; - void __iomem *acp_base; - unsigned int i2s_irq; - unsigned int acp_rev; /* ACP Revision id */ - - bool tdm_mode; - bool is_i2s_config; - /* SOC specific dais */ - struct snd_soc_dai_driver *dai_driver; - int num_dai; - - struct list_head stream_list; - spinlock_t acp_lock; - - struct platform_device *mach_dev; - - u32 bclk_div; - u32 lrclk_div; - - struct acp_resource *rsrc; - u32 ch_mask; - u32 tdm_tx_fmt[3]; - u32 tdm_rx_fmt[3]; - u32 xfer_tx_resolution[3]; - u32 xfer_rx_resolution[3]; - unsigned int flag; -}; - /** * struct snd_acp_hw_ops - ACP PCI driver platform specific ops * @acp_init: ACP initialization @@ -357,13 +339,13 @@ extern int acp70_hw_ops_init(struct acp_chip_info *chip); /* Machine configuration */ int snd_amd_acp_find_config(struct pci_dev *pci); -void config_pte_for_stream(struct acp_dev_data *adata, struct acp_stream *stream); -void config_acp_dma(struct acp_dev_data *adata, struct acp_stream *stream, int size); +void config_pte_for_stream(struct acp_chip_info *chip, struct acp_stream *stream); +void config_acp_dma(struct acp_chip_info *chip, struct acp_stream *stream, int size); void restore_acp_pdm_params(struct snd_pcm_substream *substream, - struct acp_dev_data *adata); + struct acp_chip_info *chip); int restore_acp_i2s_params(struct snd_pcm_substream *substream, - struct acp_dev_data *adata, struct acp_stream *stream); + struct acp_chip_info *chip, struct acp_stream *stream); void check_acp_config(struct pci_dev *pci, struct acp_chip_info *chip); @@ -395,48 +377,48 @@ static inline int acp_hw_dis_interrupts(struct acp_chip_info *chip) return -EOPNOTSUPP; } -static inline u64 acp_get_byte_count(struct acp_dev_data *adata, int dai_id, int direction) +static inline u64 acp_get_byte_count(struct acp_chip_info *chip, int dai_id, int direction) { u64 byte_count = 0, low = 0, high = 0; if (direction == SNDRV_PCM_STREAM_PLAYBACK) { switch (dai_id) { case I2S_BT_INSTANCE: - high = readl(adata->acp_base + ACP_BT_TX_LINEARPOSITIONCNTR_HIGH(adata)); - low = readl(adata->acp_base + ACP_BT_TX_LINEARPOSITIONCNTR_LOW(adata)); + high = readl(chip->base + ACP_BT_TX_LINEARPOSITIONCNTR_HIGH(chip)); + low = readl(chip->base + ACP_BT_TX_LINEARPOSITIONCNTR_LOW(chip)); break; case I2S_SP_INSTANCE: - high = readl(adata->acp_base + ACP_I2S_TX_LINEARPOSITIONCNTR_HIGH(adata)); - low = readl(adata->acp_base + ACP_I2S_TX_LINEARPOSITIONCNTR_LOW(adata)); + high = readl(chip->base + ACP_I2S_TX_LINEARPOSITIONCNTR_HIGH(chip)); + low = readl(chip->base + ACP_I2S_TX_LINEARPOSITIONCNTR_LOW(chip)); break; case I2S_HS_INSTANCE: - high = readl(adata->acp_base + ACP_HS_TX_LINEARPOSITIONCNTR_HIGH); - low = readl(adata->acp_base + ACP_HS_TX_LINEARPOSITIONCNTR_LOW); + high = readl(chip->base + ACP_HS_TX_LINEARPOSITIONCNTR_HIGH); + low = readl(chip->base + ACP_HS_TX_LINEARPOSITIONCNTR_LOW); break; default: - dev_err(adata->dev, "Invalid dai id %x\n", dai_id); + dev_err(chip->dev, "Invalid dai id %x\n", dai_id); goto POINTER_RETURN_BYTES; } } else { switch (dai_id) { case I2S_BT_INSTANCE: - high = readl(adata->acp_base + ACP_BT_RX_LINEARPOSITIONCNTR_HIGH(adata)); - low = readl(adata->acp_base + ACP_BT_RX_LINEARPOSITIONCNTR_LOW(adata)); + high = readl(chip->base + ACP_BT_RX_LINEARPOSITIONCNTR_HIGH(chip)); + low = readl(chip->base + ACP_BT_RX_LINEARPOSITIONCNTR_LOW(chip)); break; case I2S_SP_INSTANCE: - high = readl(adata->acp_base + ACP_I2S_RX_LINEARPOSITIONCNTR_HIGH(adata)); - low = readl(adata->acp_base + ACP_I2S_RX_LINEARPOSITIONCNTR_LOW(adata)); + high = readl(chip->base + ACP_I2S_RX_LINEARPOSITIONCNTR_HIGH(chip)); + low = readl(chip->base + ACP_I2S_RX_LINEARPOSITIONCNTR_LOW(chip)); break; case I2S_HS_INSTANCE: - high = readl(adata->acp_base + ACP_HS_RX_LINEARPOSITIONCNTR_HIGH); - low = readl(adata->acp_base + ACP_HS_RX_LINEARPOSITIONCNTR_LOW); + high = readl(chip->base + ACP_HS_RX_LINEARPOSITIONCNTR_HIGH); + low = readl(chip->base + ACP_HS_RX_LINEARPOSITIONCNTR_LOW); break; case DMIC_INSTANCE: - high = readl(adata->acp_base + ACP_WOV_RX_LINEARPOSITIONCNTR_HIGH); - low = readl(adata->acp_base + ACP_WOV_RX_LINEARPOSITIONCNTR_LOW); + high = readl(chip->base + ACP_WOV_RX_LINEARPOSITIONCNTR_HIGH); + low = readl(chip->base + ACP_WOV_RX_LINEARPOSITIONCNTR_LOW); break; default: - dev_err(adata->dev, "Invalid dai id %x\n", dai_id); + dev_err(chip->dev, "Invalid dai id %x\n", dai_id); goto POINTER_RETURN_BYTES; } } From patchwork Mon Mar 10 18:31:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010492 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2068.outbound.protection.outlook.com [40.107.223.68]) (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 85CB8233158; Mon, 10 Mar 2025 18:33:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.68 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631599; cv=fail; b=sgd1r+jhlqUYS6pHhxlAjZpl2fp96pn3ZQ1n1RMSL+BDRWxo5OSQz0lU2OxXz3/guQGZaJRILSfgezbsHrsmJsGV2hcssWeSUIrC5nVZkst+CsEbJL0VkanOEVKeBPktyrV6+aYNBk+ItBpttH2B87kgYuhQSwLYYdl15hGWAdQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631599; c=relaxed/simple; bh=jt6F0PYXtasgjoQLXuoNkr0b1s/oxUJBN1Y4ZJEiL74=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XMY1BblBYwiF6Z7REECnqpcSNenPXKaJ/gXuRfxCfGwRLkIiFl8GY02kLjUWP5yb9pGCbbV0H63345Rh6191WtDLigb9R1vhlMtl9t5B2IFY4O3YUYt/kctgCBwPkXNDPUxHBK7OmV9jq7iMBw9gAbrGY4zy+t4wa5hQr/WRIF0= 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=I+iylskH; arc=fail smtp.client-ip=40.107.223.68 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="I+iylskH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lQGnQq4fBrWVEYmyyz4fwpjtXOz6dq50VwN+8rraODdBysV8wWV3MbxTrOmwpzxuJU+9GxfPPXeQxZ4K7HcYZpGpAh0Cbi4m/6vg1j1t6Zb4r4uryDmDPU8V6olV/hXgYQfMbB9E79BFyGvT1H+FALWnSNsLCvZSGJVefRY0NYyV2Lfljn0bHviSOZvRDhJMqpelsrFHeiNI0HeTu4H/mbA1HFP/4RVTR0MPRTd6xzFvoieP1St4cAwB2t/u9mR2ghxq6ncO6KHl68mYplYVX1xfuBtYTAsTbpRfO7w3EGA05aLSChp0kc/7q1ncaIGlIWN2V/hjCdHF2PmJ4BZrxA== 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=z7sLt8sBe9/EPSYp8bjdvUdhm0piEtEqPpLgLdgbD34=; b=JZ35LjnPJDXNhZxQwxDduBQmQyi+GqArbbLaHeHqC7fCvM8R3Fhn54wvslk/k5RO8gvEqDTG8kzH0zRfjimWSOq7nooX5a851qDZzCvhaWxZfnshNM4uy0Je53XOZTetC7+hFldNQi4E/HGVJ12JbA4qs0b/q7Ws+YUX9S/JwNtoDi0zc2DrsYb8nQxOR5UAaNesry5WJqVZ4t4iYQD3YhJVltPrPIKNESBe8Z2UyofZknbjXMzvmR3I17PsvW0hEN7mWMNHJF3FsEYNrpO58wT71PrCk3sq6iPZ98TMCJmVLedPBl/84D/vldM66Ig5+BG9/Dh8MD0UAmkArOw+xA== 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=z7sLt8sBe9/EPSYp8bjdvUdhm0piEtEqPpLgLdgbD34=; b=I+iylskHbC58zvnBsv3L8xIw67hQ0zHxwCA1MFxsL+QUEN7klpzr2FgNYlk0h3c4JAWwMF4ELocMCnqqEnCsM8In8K5yJ/eLyTUj72FyW8JqR6mlE7ngx/yQtlpQArvfKfeqVrHA8vaUvgnEdHoJuva1SWi8ksP5wVwX3A8y4vs= Received: from MN0PR02CA0027.namprd02.prod.outlook.com (2603:10b6:208:530::30) by PH7PR12MB9125.namprd12.prod.outlook.com (2603:10b6:510:2f4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:33:12 +0000 Received: from BL02EPF00021F6E.namprd02.prod.outlook.com (2603:10b6:208:530:cafe::dd) by MN0PR02CA0027.outlook.office365.com (2603:10b6:208:530::30) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 18:33: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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F6E.mail.protection.outlook.com (10.167.249.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:33:11 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:11 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:10 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:33:06 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Greg KH , "Jeff Johnson" , Peter Zijlstra , Muhammad Usama Anjum , Murad Masimov , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 08/14] ASoC: amd: acp: Move spin_lock and list initialization to acp-pci driver Date: Tue, 11 Mar 2025 00:01:55 +0530 Message-ID: <20250310183201.11979-9-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F6E:EE_|PH7PR12MB9125:EE_ X-MS-Office365-Filtering-Correlation-Id: f4ca4e41-427c-4d7c-3910-08dd6002033c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: XzXRcnFI7ThIxDCkhw3rs5eOgVXGL7Jmo6rWqVSw5jbH6eNyh2WOprHdiV2YMo5Qw9t9gU13ctsL1/gisd+6jB5/rlgF6Bw7vLwgxtm92pXb0cWBYPWtGbvdyREPyRCKEdJSsfTAAss33krAP4wZn2kOhQCLelNIctEq0Fr6ZmBT6bXoHl3rvxieOUpF9fKRAVdREmqHtSKnIVLPXjTqTlqILTIPvFGfjtLBcNiSfCZnXYmUPM1jTJBLG1XU1ZcMyOwHnyGS/hfuAW8I1//T9iKLItWzGRa4nbq9sqGhspc2ok2CXLzQGVTu+53WXVpwan4j+0uaedKAKNi0NJj+WVswTTgy4DCyn4dea8anMk2mn776cGCrjLkSo0i7p+upMyHTNzOE9IfiqG/6e9FjAnT2n3Ba3Ip0GH9MWTzDnlTR4VVo2nzaunatLVsz27zFpdhRH1NmM4Gs1/h9eAsxd8a1A1OzYhP3hbnwO+dv12z0AjL5sbZP57tHOwBbS1i3hStcj09odAEIyMO3qu2RCvOXc+LOfLP9j/fewBA1zshX3A9k3QQQA9Dsus9iuv20mdk6/329Tr9e0GOy0U4wV8BLk4FHo0E+1wYKDPUZoSq/zk7lr81h87vyyYV2UzAOEgjEEKD7i40prkGw5JqE3jnfNejL66bGA1aCYpVlbUAuM1+A76DrOGglPoZzZ63umvfN+QbiCCFDfvVzSz/OTY8gSqnO0mcnBKpk7iHzip6m/jLI3MQkK62qUwSPG5Fd/X6sGZXMmspFRB8XHYWFczWXnyNBEOG1dy7kIYZNyJ0i8Gw2ElSfwoZ2ZjcLvcvVsq7HPUqLOpTmBz4EKSibryFWmoDeDnzObvSD0dsGnO8F55TbxPZIrHUxCCYHtRpBxl816Li/P0FYp+D9L84z9AjBxxMHj1Vld64B00p3m2u4yJXcjGHvTQ65QAdkd2wgMVgZtOJfeUZHU5XeDLbVMwfY/tZppqFZ2irJuy/qcfOTHulR8Et+ds/qoXqLbTkq0TDCQ+WgdvP4RNjiAGIVENqzyYPACj7ReNBbozFfFw2taPxQQoU4fHdLR9I/lYzilg41HmqHWObEx0fe814fplU6ZHPBTC/TmPQpe2yl1e+i33QVUaP0UwbBRBVjuxpVNoyFO//diwtNq+6ndsggtBLQXL7yJTbzulAl9zcEgSTbQhfpPYiPNHqx9SU5zVClixjz28L3Qv5kmFeVKV0WyniUWrOi4xei3J9/X5STp/T5J2Wq5mtoqWftNrLbtqGwV3+cvdEsdmbMYPsqyNJ/cr6kzFDAsMd92c/6bZtNY2xDogx77F6mGyCao2AoxGRetvE4NJQ+pzbTl/tBipFMTBATtKiWjlsxth02n1VElnNhdm2TsKdneYft4H4JfFwHSLRG31yVDV7raeHAtOurL1p5qcF1gDZd4lW+4ivoFZOZWIyWG83e6pJeXo1ml08jchH6EXwWAeHwVH5t+DvB7fUAJxP/+R/UceOaRA/pWKQ= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:33:11.6489 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f4ca4e41-427c-4d7c-3910-08dd6002033c 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F6E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9125 Move spin_lock and linked list initialization from platform driver to acp-pci driver. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-pci.c | 3 +++ sound/soc/amd/acp/acp-platform.c | 3 --- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index 1ef9faba1d8a..8bb93ca18053 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -196,6 +196,9 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id chip->dev = &chip->acp_plat_dev->dev; acp_machine_select(chip); + + INIT_LIST_HEAD(&chip->stream_list); + spin_lock_init(&chip->acp_lock); skip_pdev_creation: dev_set_drvdata(&pci->dev, chip); pm_runtime_set_autosuspend_delay(&pci->dev, 2000); diff --git a/sound/soc/amd/acp/acp-platform.c b/sound/soc/amd/acp/acp-platform.c index 8d61e1991e4f..b3eddf76aaa4 100644 --- a/sound/soc/amd/acp/acp-platform.c +++ b/sound/soc/amd/acp/acp-platform.c @@ -343,9 +343,6 @@ int acp_platform_register(struct device *dev) return status; } - INIT_LIST_HEAD(&chip->stream_list); - spin_lock_init(&chip->acp_lock); - return 0; } EXPORT_SYMBOL_NS_GPL(acp_platform_register, "SND_SOC_ACP_COMMON"); From patchwork Mon Mar 10 18:31:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010493 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2057.outbound.protection.outlook.com [40.107.94.57]) (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 7D52E22E418; Mon, 10 Mar 2025 18:33:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631603; cv=fail; b=fMoOh6oyd8Po7JaxHhc//D1HQH0J4JLdLi2/qVQK/TyyGwYNqwU75qv7KB9YZ0lrH85W8P4FM24fr+vUp9ImEPLE7fyollpIt7ycSNwEhNfhbfUp4BsH3LFM+cWztPrCVVkK267gLC+esdVySbif1nEUbUVB3Gzn7Z8MbBpIUNk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631603; c=relaxed/simple; bh=in96+jdfE9SvEmCM3E3XNbeeIxmOfqymBnKCPwm+47A=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=igg2N1etOQ/of2BhWeuw8CanLkLIkg/vw3BebvGUaJiVYMRfjbtouO7gWLUT/bCtvpB9vqFUP67xOuLCtWmXCdsO8mZ93n4pMM78Qjkwv0SGj+8quZQs8FaZhoR8hGGmbt4PPm7cPJ0mx8LFttvPyGAj9jF9YGNAVkQ/Igp/kZY= 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=ce2mioS4; arc=fail smtp.client-ip=40.107.94.57 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="ce2mioS4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SOq0FvyMpDGRlyJsw+twusHoL9XQLVf9060Mldv4arEiFnkdO3XrefTYU5RNzmjGCk1Fj/QkotEPSGoWuJ1juHtcNjZUaFS1rS5GqPWVGt94xQOYLrixhLGWLYKycmKcNtpZMtkXM9o6r7xdmg3y86L+QqtvAn9mkEtGBZ/kx08fO5BaurifMzVk2vOV/gxJ/mGVuwvoP40gDypDuw2nrD4NPa4Ld3MAphu48bAvYGIhRRN//A4sKuqCmhMwObvdLBF43SJx3xgt55EB+6ymvSRPmB9k9dpcR4qaVBk6jllYG3oi+Q+hdG3fTvjsaZ/PLyrFEmCG2bgqLNE9Y2uXBg== 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=qW7gUOHJw2LfE5N//FTdZ0etwlP1Vo/tPBSentUpyEM=; b=cotmePmW98ZHk8169TZUK4EB4Lnxrd0dai5OAiPr0F2/pBskNuThscvCVAFA1QGNiDdNAI6TQZaBQS5EU6AEgx/xIrbuL7VMJ0KEosT5NY9U2AlOLpFipTedr454Fc0wZZsM5NsenccIvRBZ0VEqgZyAz18e7iiBFWhvmyRg17+DOEGb+2V0SL172cqLcIlZ6YoewWRTRwzm9n52n6Qr5ITFK6/N+mYSsUckAjBFp7UvGNf4+wmpDagWdPQ9AfE90m6L2LSm/BXPuoE1p8C3huiE8hUcQ1gsvgKNVAIcsCwmbAhotjdw8mTzA1uyPXhSylr2+nYdz8wDEu+60YM6dg== 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=qW7gUOHJw2LfE5N//FTdZ0etwlP1Vo/tPBSentUpyEM=; b=ce2mioS47zl1NZmM9O1KlqTDkpZYAI0NfcnSMWOBVBPzKbp4k9JI1zAXJ8YBRGPyH+b6ItakBkoJ0wy70L9jgAiSuUEaakbqNmkMcemUUwf9t6EAwxKQNHBFH7SoaQC0Q3btitH9TyItL79zgbrNTqA+Ui6Dr13V5czmmN0KaGE= Received: from MN2PR14CA0013.namprd14.prod.outlook.com (2603:10b6:208:23e::18) by DS2PR12MB9640.namprd12.prod.outlook.com (2603:10b6:8:27d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:33:16 +0000 Received: from MN1PEPF0000F0DE.namprd04.prod.outlook.com (2603:10b6:208:23e:cafe::5c) by MN2PR14CA0013.outlook.office365.com (2603:10b6:208:23e::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.27 via Frontend Transport; Mon, 10 Mar 2025 18:33:16 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MN1PEPF0000F0DE.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:33:16 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:15 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:33:12 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Greg KH , "Peter Zijlstra" , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 09/14] ASoC: amd: acp: Remove white line Date: Tue, 11 Mar 2025 00:01:56 +0530 Message-ID: <20250310183201.11979-10-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB04.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0DE:EE_|DS2PR12MB9640:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f216947-abf0-4322-5726-08dd6002060d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: 10tSINYRS6WsUZYp6+Zq8xVEfYH4GpGv2FtQKgOHANWHJ4bA/a1F41QV24kqLFB18FQMfrAw6Wx+ejdIbhGJf3gmny6UBWY0jfU8i+Sz86ajajIYmhqG2xsN90bXaZ7JRbfnpbse1av+T8y06H6l9xwpo6Pr9B5TOadW7yRv9ggeM3nB0l56cHuvc8bDchYFHLqUtr9ekEo214bTys4hhATTboOCqu1duDnvtd0sJAB3Bf1r4SBopsU0p9idAUV6t5idPArDSqAQ7v2fL9FMryIBSi0PYkp7b8cWdcJOeTO9W0X+Upeh+VOJIqibO85gU8jSyf9sFHRWTOb3I2VdtY6poq4XUSOWGmZ5E08e6uJybEJVaueZXUkEB/4x1ZkeIidjrjjDsgL6yYjGhOext7Rmw4d9NjhjMn0Wrf8jHnN4y8pwVDNbXsMq4MIDvvyU9gU1+9WyLFb5K3h4JSip6wIy/jhUJpuvFf0CLB/3lC9A85bMTXNbV96yHLr43BEYAkvf9HMaBbCr7VCtihK1WWN2ufnVAvF3n6L1nvwEzCg6vO/mE3D5RhvwqCxKHKp7GEXJgWvE0vpJbEhIp7ypv25l9PbX8tHK8PjTc8KDY4bGREJNhFFhWbSWNv3RfSQ5bRqIHXJQweP3C7FMxJQRccBhXvFmDwtP0HsgLAp93UeLM/St9BjmuK7M3gahydm7KU2w+Elfyken4lZ8l0JMI7MiLaIQyWUYJqoWLZGrgpD7CQ7OXZ4+GNGqoJ/ytQisGJtVPhdM5lt9bzLCX0RbNERphbOMUiz+818n9ojyhdJJJWhSq0B7MHO28wNgOd6QXsIGUdEkII7F+fdjdAjh5IzKLJ+XCQXkFrs1anYHWomNf/EOi4QkWi4n3UMLqFG4nH5NcsqBw2L07yre0j6miJ8bn++njlvGHVu3iybmlU2HN6ydt9iwlL4v+eHxP+XVeEObMVfloOogH/g0ZbxHlUI5IzrFF4Enx/OoFPM39msgslSnDDOkdqc6DaUhCiW1Rc+dGgX5BYjN4uWKNw1qWcHkzm/uaexxkRV4ie2+bSwBw3Kl9pxlueFIulAfocqbW5XyYREso5LnlgKD6d9UFL9sMSyx4/hiT5y94euJeUeQnypTK4HRX7apbmekkVrWqQhaVLG8ywz2hxIx839pNXTM+JXM4AhAdPjkjbJJNE00BM+9MwDQ7hg0NePTgZ/mvCssakQc4JzOEAruUPFf8mwhPdJjSvdhQcZSJQQdirhZ/SpHprOJCUkRAFhf638YRLA3J42kR1tMn7VZi7KWV7LVs3UdiMPLWs3ylL/ws4FN5wC2VzQLl9EZUCPPt/aUTwoRDNJOrz1ZLAUjeCJglAbKLhMd4anGEzaYnFjMYt2k2T6nzve3NfCfCfw3yQPEjGbh4IRilNsZX8AcIzOrnTUvs5JEIeMMS+D/IRzflF6khXjNkzOvEjirm3CYFMjgEXnRXGqVWufYsbx53A1Ut+g2Our1JSLBzl132R4TuIk= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:33:16.3748 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7f216947-abf0-4322-5726-08dd6002060d 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0DE.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS2PR12MB9640 Remove white line in renoir platform driver. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-renoir.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sound/soc/amd/acp/acp-renoir.c b/sound/soc/amd/acp/acp-renoir.c index 2037af67509a..970ca613a439 100644 --- a/sound/soc/amd/acp/acp-renoir.c +++ b/sound/soc/amd/acp/acp-renoir.c @@ -36,7 +36,6 @@ static struct acp_resource rsrc = { .sram_pte_offset = 0x02052800, }; - static struct snd_soc_dai_driver acp_renoir_dai[] = { { .name = "acp-i2s-sp", From patchwork Mon Mar 10 18:31:57 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010494 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2073.outbound.protection.outlook.com [40.107.243.73]) (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 80FDA238162; Mon, 10 Mar 2025 18:33:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631608; cv=fail; b=B/C61MSmK+MFfpUSGjkTCphqCkiXrRIY57jChdAHMn3JMFDCNA2/tww1Xpl4l8AXeekby6IVVgqKEyjR4X/KnWJLicqyYbV99z+P0bQc1YIeLcT2jdpqLvXuPdu8SrMRspWa75sjPheLffpsG9S3uFvcSAtZ93qeYmyH9M7FscM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631608; c=relaxed/simple; bh=z4fOU4L0BMY1vCUnlAaFVwvZCUV1hCBN6Fwti30y2ok=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=bkAW+91HOzzRKlxtisz86SGTrcFdOzEDHXk1IyRq/AsSN//ixYJjY7gEq1peBcmpY52r0J73GEF7K9LFboik92K+vu5lb6rgh9R1FuzO0z1W2usah6n5DVIbQQnaDXMyDQc6AiIgT32XNIPQ91Ld+vR5MJ47XQwT8L8INZXBDs4= 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=X4C6Xiek; arc=fail smtp.client-ip=40.107.243.73 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="X4C6Xiek" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SDjnJcFjwye+RQRqZzjP/zwl3+c0zUD+/MQgdWSPlKQF4y1D633TavtCpRbOKk67SkrB/IBwMobWAuZ92eX8O7zAYd8pog2KidEGxNGmM+iQZPyUbRXzh2wCbouCDGaZSyQ9RuTfirk/LL3gjpmzipzcbUt3js/4tZ7lTueV4RZ1O6Nk849MXYNGiF6YXJZkPK301ra23ZjOR4RaAJkkYLvyxtesO5xizxPJR1ZIY8iWP0jwx1HQWr0KjJ+Ti48edL3cDlUA1e9eVX3rY3vFRjXz2qWmnoDsWJikbi7a5EL+/ED/RjbXRWuwDPnr4EpvKfZ4tfIR2LSO4qu0DLTnHg== 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=AJEjU5e1lVSzJeZ9adGpYCA5xs4oJmTjbO62QbpmBGo=; b=tiGPQW+k+g76Rz/lOlzPj+6AQiG4DKlKOVTOizIXXpRjZL67cHihx/D9UV8HnaUyWV4+f7dW8eBWbpzFrlJlhoRyhRTTC5xVu/VHsEB2yiZ/as6vcEchUPKWu/zYyK8ffJIdl8+oHusxqpnhLg9aZAcEvmjorZV7yIV82R1FqB1fA2iJs4W3Tv/XgApCJzmLpUjbwgI517etNokHxk7/WdvtVohRlJ3YaCyyQxFjARgOPBM6PR50WMzQyd/1uhGqDuwypAk9rq1CEdWyAi7KmdB1+Trq5bqQza3rlFZEHJFEibI0J4jCxLqG4p7a5Zznj9/MF76HbOvs99qoyK877Q== 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=AJEjU5e1lVSzJeZ9adGpYCA5xs4oJmTjbO62QbpmBGo=; b=X4C6XiekmAodydFRxNNoZRNLhCjcRSLfM9jVMJj5qT6x9DAhupeEKGvjoGFZXdOHerDkUnBpd4OSP4h/ffeQVpfXninRgEStbALBJEwxgKG6CJ4vxtrbD22WzEquvK5DNzqlQn+J8uXkuWc2H5BFjcI8971YEq8ecOq90Qo7bSA= Received: from BN0PR03CA0004.namprd03.prod.outlook.com (2603:10b6:408:e6::9) by CYYPR12MB8962.namprd12.prod.outlook.com (2603:10b6:930:c4::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:33:23 +0000 Received: from MN1PEPF0000F0E0.namprd04.prod.outlook.com (2603:10b6:408:e6:cafe::f5) by BN0PR03CA0004.outlook.office365.com (2603:10b6:408:e6::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 18:33:23 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by MN1PEPF0000F0E0.mail.protection.outlook.com (10.167.242.38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:33:23 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:22 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:22 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:33:18 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Jeff Johnson , Greg KH , Peter Zijlstra , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 10/14] ASoC: amd: acp: Refactor acp70 platform resource structure Date: Tue, 11 Mar 2025 00:01:57 +0530 Message-ID: <20250310183201.11979-11-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E0:EE_|CYYPR12MB8962:EE_ X-MS-Office365-Filtering-Correlation-Id: 30cc4fce-d159-4388-c896-08dd60020a21 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: luZXunrDxlO/Z6CKiSQvGKad5qAKhIggyS/NPIeUp/j2r3n5Jioy7GcNqBrymPFDBYuRUOItBcnn6Tg7pLaDno6K1zYPujpxakoWlAXRyRRNtIydhJ3APwq2AVtR51wv0SFrboa3SgEPY4zHQVstmdPa2UFqHrcTMcetVQIJgrYglh6oW1oq+4INyec5IZe1ZUL8e4sG0LuWBy0oPaRi1sS4wFgXe822NUipNsrxMzIfssgPocVP4/dXILir2IADEeBqUEe0uXdpdeSsIpO6HsfkG4/b7/l0FlS7HLw/pDZ4JtTAfH2xHj/cw9Rct26M6vF/a6q/S+wqACbZDH2cFAy4O8ZaL3sJIVqO0qTGGSvLVQWs9LBSO0XSQCFy3+3L4dYPQ1Cbr/xmQgX5K48iOVVCXdbOnrpysiCrrWfo83+E2apcJL1xvrWKuz8A7Ol8UdW3S9P8legi5cmJDCWrYjNl0nznQSRAGtlbt3rZOvxoZGzz+glFr2/8LCB0QWhHrd1aYbm5tGyPL7aVv8mM5KmUmt/xuV0kWMiKwVehq6l0pdO48MU9C+u5RCkL+9fMjNTaOQzsjbAeL1N5X4xu+Vy9xcEugv2ZlgOaOoajquRSicvTF8H9no5xw2mH75ARVG5AikfozNY/Lntck3y1LJaGyP7no/o3BJY6J/oQizO1bR8bo0NE/LfF8+u4nu3rJ308eAr+JknpigBzUpK7/60Jtw0AfTWeiJLnb8h0ZStRsw793UWoh3D0unNzRx1qi8fC5uUqWiZ0vLG+TdGSrwPOZEMVxNbLsHzJwIm+TnFCUupzgDeAevrlFzb+hIa7+MV1FaJf9npEhzqSwDE33hd0LbG74diAzMxXEZP9Qm84klKAVQvd0Og1EPafPtGnEnBKt4b1VAZByCUGR+IzbFT8/rgwI3a2t7dGmzQ4J/NIv8P2UHSbpMgab+o9jqbjr5fePVyyiiOjGw6A5F7tnJAxoyODymgKO1BWHPOb84R25KpboyKqvOH0wD1QEaCbfo1MyOMTyeyiVVZYhWZFSmkLaEcnO2jJrycZN3346mCQijygzwVZvDyZqoDtg2wrMqi8T3uxRINPyaAFLqQuYBa3TgYVevXf9owqjzHpMK2M0x227cCG4Ghl4poEJ/s+xIV3BMAPyDjGxEo50CsE7xgK5Y0wFl+bpJIGnmRPj+kM8I4erERaG0oYfqkJefdM47gEQ0WSldw73GuT2Zl6nhoFBcft9TUKKR+RLDxeJPBChnodiv8jW06LiVsWAYYblszFgBTa8j8dl+rwzGZTnuPcksnPeJ270Ko/sDkSH3/0jsAnv67+gs6fd+p4B8oy3QKN92zP2aOJzcjf1FTyl+E+AG5OzasQ3K0xelneYyYSGr2TzrzKUa//O6J7oBG0KCrIjQoAApWXRWgvb+FdxRq8s3i2mn/leeEvr7rcoL2MIHSPgvwhw6tgieYfke7h8i1VgZGzc6t2NYymlwFqRdFckagoV1cHs0BLBiMQMZU= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:33:23.2196 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 30cc4fce-d159-4388-c896-08dd60020a21 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CYYPR12MB8962 Refactor acp70 platform resource private structure to amd.h header file. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-pci.c | 1 + sound/soc/amd/acp/acp70.c | 11 ----------- sound/soc/amd/acp/amd.h | 10 ++++++++++ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index 8bb93ca18053..6728eee29993 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -151,6 +151,7 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id case 0x70: case 0x71: chip->name = "acp_asoc_acp70"; + chip->rsrc = &acp70_rsrc; chip->acp_hw_ops_init = acp70_hw_ops_init; chip->machines = snd_soc_acpi_amd_acp70_acp_machines; break; diff --git a/sound/soc/amd/acp/acp70.c b/sound/soc/amd/acp/acp70.c index c1b546df5e67..1a89f8a3724f 100644 --- a/sound/soc/amd/acp/acp70.c +++ b/sound/soc/amd/acp/acp70.c @@ -30,16 +30,6 @@ #define CLK7_CLK0_DFS_CNTL_N1 0X0006C1A4 #define CLK0_DIVIDER 0X19 -static struct acp_resource rsrc = { - .offset = 0, - .no_of_ctrls = 2, - .irqp_used = 1, - .soc_mclk = true, - .irq_reg_offset = 0x1a00, - .scratch_reg_offset = 0x10000, - .sram_pte_offset = 0x03800000, -}; - static struct snd_soc_dai_driver acp70_dai[] = { { .name = "acp-i2s-sp", @@ -153,7 +143,6 @@ static int acp_acp70_audio_probe(struct platform_device *pdev) } chip->dev = dev; - chip->rsrc = &rsrc; chip->dai_driver = acp70_dai; chip->num_dai = ARRAY_SIZE(acp70_dai); diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index 084d9db1b65c..979d8b8801a3 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -238,6 +238,16 @@ enum acp_config { ACP_CONFIG_20, }; +struct acp_resource acp70_rsrc = { + .offset = 0, + .no_of_ctrls = 2, + .irqp_used = 1, + .soc_mclk = true, + .irq_reg_offset = 0x1a00, + .scratch_reg_offset = 0x10000, + .sram_pte_offset = 0x03800000, +}; + struct snd_soc_acpi_codecs amp_rt1019 = { .num_codecs = 1, .codecs = {"10EC1019"} From patchwork Mon Mar 10 18:31:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010495 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2041.outbound.protection.outlook.com [40.107.92.41]) (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 4916E23717F; Mon, 10 Mar 2025 18:33:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631615; cv=fail; b=ZuwZwsLUSAk250bd7hkORosameKwxQk/mICt8gpKWdIZ0/EmS5woG6qKp01KIyksktfAO8iSPcgZullt+VGPjgIKf3Ef97m9gTGigGSb8So46O05tm4yr4wfLFAiUve3hnF8Pg1yOdDF6CPplTxi9FkpJNbaO2ieeVPLzfFExUo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631615; c=relaxed/simple; bh=dwAiFiWv8cfQ41QcrHxh8mrfGj7bWxIwzPQjt0RyNrs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=MbmeDkr8e8Xufbwh87CZ9ZD0o0DzHTWDjPHNJsI4C5bHjtKphf/fvoRA1oBnNKgAWwIETTdSloMlBSgG65weEHC/kbyJuobpWfa4nBUvAGJBkc5lFhvUO3kpXFQPL/WL6+dcArq7oIVMrINrQ8VoXDw+XlYgo4b+vR1Q5RHr9dU= 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=34IDZveo; arc=fail smtp.client-ip=40.107.92.41 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="34IDZveo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=laPUFyGITrxFpZJT2j3FRAZ4aSbkuOad1hNpi+q4FzFGXlNKAOlQkoGbUWA415g8nMvEAAfpydJITgG1+CTWsScseGOINeJtpFjh2izI873x8UYsxeTwJugxev+jhg7fkYMGPIHfvYD5gHNmrS93KkZ0oUeMMz4alNuccaw2C6CWxKou1yz0hyphz3rELuiEdPAco1usZek2C7GY9nlEfU1W9YSvAyvs+VtwGz0PdAJymiGh653hwsuYul/NfjjJ27kuQ0pUjzXPs27gC0mTd859KxDJ5jBbyiAEjkED9Ulec1PowDcf1BrPjyq9stDVyV5B9Kk3B518wVH3Hqs2Kw== 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=nR/K8dR6D3D/MbEO1pHo7C+hX/q2kbFX9W1xP5LlaRY=; b=Ce3KCo1ak2o9WFtR6xMKQuTDHRJSiYsdHX6NI7ZVH8gUWB78haD2rskGKPOkLZ2NudnndqSz397yFtJxkFNftCChHsWIKYAh/snFB7zxrbwpITdFazQd6WPy6x7bvWx0LaBciint025uNGEBwSAUGjcbV2TniTpIkwJdAH+ja2tsHupmc4EE9aZ7ULyp3UrHvNKToPWGsSOpLgyD8BJ7fy/A4B1+Wg2qxQT2P/b+nsu3pEzPyOL0M2UgwrFgizfqx6IDHH0FyTf8cnVG/OB0doF/8acqj1XJb8HmBVjRFN78GcRqE4JAvHWbm0dCkhzpcuRp13/IIMy+svwxdVUYoA== 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=nR/K8dR6D3D/MbEO1pHo7C+hX/q2kbFX9W1xP5LlaRY=; b=34IDZveoTHaQclfqccE8Lcq4UMVZ2x+Xrh+txL8tXT62lP34h74FC6h64UUUYenBan6oBWs3lOKvhYxqqgRa2USUZdQVEr2gI8NXSbyyzPcrKWodfcKuCp4Wgq68rNF+92G+Vn6ysIfTKNqoQN9reHaA2tp8wg6aCSNlJfML/mQ= Received: from BN9PR03CA0705.namprd03.prod.outlook.com (2603:10b6:408:ef::20) by DM6PR12MB4450.namprd12.prod.outlook.com (2603:10b6:5:28e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 18:33:30 +0000 Received: from BL02EPF00021F6A.namprd02.prod.outlook.com (2603:10b6:408:ef:cafe::d8) by BN9PR03CA0705.outlook.office365.com (2603:10b6:408:ef::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 18:33:30 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F6A.mail.protection.outlook.com (10.167.249.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:33:30 +0000 Received: from SATLEXMB06.amd.com (10.181.40.147) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:29 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB06.amd.com (10.181.40.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:28 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:33:25 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Greg KH , "Jeff Johnson" , Peter Zijlstra , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 11/14] ASoC: amd: acp: Refactor acp63 platform resource structure Date: Tue, 11 Mar 2025 00:01:58 +0530 Message-ID: <20250310183201.11979-12-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F6A:EE_|DM6PR12MB4450:EE_ X-MS-Office365-Filtering-Correlation-Id: 33731cf3-f87c-4f92-228f-08dd60020e36 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|7416014|376014; X-Microsoft-Antispam-Message-Info: QW7997/7N+VAg+eGJcQpSXV+S03saTfgePdWjm+hOPmAwlGiUUx9aFZQIsrWS80LuMTzuuZkV6531fMvKiOnPTr87+qcd0IASIMSqStqINPosAXTCXNhu3m6EhNfMSUcEXFtuVb7ue7Ys35QuKd6fUr+a2dOSbzPQ6Uxq33ZXhOjVwDgDbdk1pGFQxKcEyESwEUVGa0fJbM8M/3C0kvWmab3JkEmY4eMT4oflDx4H+axFgakmx5LRc+4qHCs+ppasmdzhl8qW5FFQtIT4+goKz+o/MV0pLrbAa74yG54WI+VJ5Q8SdBAQDcyHKblcG7JKSTxlRxqrEJME1zG5tVLawm43uHyHKYPjtO8s0QpOWGu/obpS7XzqSGQ66uSBIJbXoAuT/hcFa9InKix1fpsYEnAk/7gr9OSVlEc7fybqHO/IWR4ts2ME1T2PUeOltToLDywJKp67AasxlJfxbPHyeIxvlTRMQ0ymI8Knhzfj0YrOp4S02bQdiSC3Au3l7eUrXrF4Rvb9Dp+ZLlDvvXt1RlaILUifL9qcw8Jff+McC0nCUtvSR5Rtk5XYxYJWZEv7SMpkL1uW5vgvo5QOYpkxPvAsl67PBRg0piLTf8GT+Vaf1nfkDHr6psBz8+dQp4snJV8cGYDUvfGckNg11vIkPFPc1cyggFsTR/aC3UYYKHMyET2C42aFVr97WYU31oJEEfcq86PwwRCav5sQe2OEzNcxw7MbGielUXkHdsbhf1xxgUWqNqJhaybzJAcSQOQev2LDINXRyhroLaOg2JeqoXoCMuB91ntmqNm38WBl55TJniq2cmFnO+QFCrEXJKbufedvZiafx96p4MRdSsZDEP+xucpIzWQwUMXuiVOVTGIWE8kuLEp5T3GaxzIs40IWbY2ZSe3fh1gBQ4woLvg8AJ9zWgArHcZYDfHlcE0+m2QYGMScJvCS0oQa9zBUv+pnLGiS2tjBC7z4THb6cvCRYl//79LncX6GlHyEmldVog0wUQYRwfuZldJlU34rUQ1vzImmhnOjR4efZRYp1NQq6hY2IYERpUBmGTwQbNmwR5DfBQn00Y3U8t467e7uV/RaLGGD8nmD4+hSozjP9c6CVgz6sc7ecKY7p0yiK1RfqWhi1c0tl/5q9Pg7kY3a7+BIshLWoxzXDGC1eP3XGw7h9MTPHck1r4q9u14+rT+UNvxcOnGtRNR2k1Sq00DPK7TiMsFV9hURPuZxc6iA4tW1B24GfUBqJgHb0tu9EiV9q/lJIusuoYBngmbjR4qBtv7afIep5I8kqNKuJ+FZWVN9FbYszEiD5aUpUXBNKQZLZLJRXw66cayig2GE+Vdfe+f5nQXG2FeOrc1e7f//IIJHxgJBfRyEYQeGNR00V9VxITy+2KuVR4unW616/cLEnmHrt6LsIxcg08LLJuN+2i+G6VC1OuI3wIHpx6UbNiAghbNjPIRGtyJqiJknG3iLk2jHY45FvGKD5B4JMoCPt1cQbjg5zDBHE8JkslBvdZxIpE= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:33:30.0639 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 33731cf3-f87c-4f92-228f-08dd60020e36 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F6A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4450 Refactor acp63 platform resource private structure to amd.h header file. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-pci.c | 1 + sound/soc/amd/acp/acp63.c | 13 +------------ sound/soc/amd/acp/amd.h | 10 ++++++++++ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index 6728eee29993..3df665ca1b0b 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -145,6 +145,7 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id break; case 0x63: chip->name = "acp_asoc_acp63"; + chip->rsrc = &acp63_rsrc; chip->acp_hw_ops_init = acp63_hw_ops_init; chip->machines = snd_soc_acpi_amd_acp63_acp_machines; break; diff --git a/sound/soc/amd/acp/acp63.c b/sound/soc/amd/acp/acp63.c index 49786e1a214f..53c013a64854 100644 --- a/sound/soc/amd/acp/acp63.c +++ b/sound/soc/amd/acp/acp63.c @@ -52,16 +52,6 @@ union clk_pll_req_no { u32 clk_pll_req_no_reg; }; -static struct acp_resource rsrc = { - .offset = 0, - .no_of_ctrls = 2, - .irqp_used = 1, - .soc_mclk = true, - .irq_reg_offset = 0x1a00, - .scratch_reg_offset = 0x12800, - .sram_pte_offset = 0x03802800, -}; - static struct snd_soc_dai_driver acp63_dai[] = { { .name = "acp-i2s-sp", @@ -222,11 +212,10 @@ static int acp63_audio_probe(struct platform_device *pdev) } chip->dev = dev; - chip->rsrc = &rsrc; chip->dai_driver = acp63_dai; chip->num_dai = ARRAY_SIZE(acp63_dai); - if (chip->is_i2s_config && rsrc.soc_mclk) { + if (chip->is_i2s_config && chip->rsrc->soc_mclk) { ret = acp63_i2s_master_clock_generate(chip); if (ret) return ret; diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index 979d8b8801a3..075659fb3314 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -238,6 +238,16 @@ enum acp_config { ACP_CONFIG_20, }; +struct acp_resource acp63_rsrc = { + .offset = 0, + .no_of_ctrls = 2, + .irqp_used = 1, + .soc_mclk = true, + .irq_reg_offset = 0x1a00, + .scratch_reg_offset = 0x12800, + .sram_pte_offset = 0x03802800, +}; + struct acp_resource acp70_rsrc = { .offset = 0, .no_of_ctrls = 2, From patchwork Mon Mar 10 18:31:59 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010496 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2051.outbound.protection.outlook.com [40.107.244.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 616FF23371B; Mon, 10 Mar 2025 18:33:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631622; cv=fail; b=o2g/25TGAxiSTCkBOdWwaepm+Ib25E2PYh+wxrrUrMjO2vmHU72DHRcYrpeqFr6H1M8ScJF7oLbMEoLwk+i1BftiXa0TCU02/dHu6MAprpaVHQQ8KOAgCbNr06beMR1p8AA8XzHQ6ksI1UYekuPigJsT4djgoDLFxUZ1oeFK6N8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631622; c=relaxed/simple; bh=3w9maMIZum9wqhr4sZeY4a3pMQIqOX+ccsInpBY4nBM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GM39B8JDjD379Nh2uz/PLEfcpT6o+EE96Qi6h2d/G16YvXdN7a4M+yjSJNia6rbxF50vu3uDFQaZMJd61Jor6vQPaWdotM0bjKlRXy1gaPzT1wf2gdVxF7G2C+K11e4rFtUI2juXiij8szv46GefbJVHA4AFHRGzMVwlnt8M/VY= 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=m6OvEhLW; arc=fail smtp.client-ip=40.107.244.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="m6OvEhLW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SkIR0sKeSUqSra0vNMoXm+ryvEp8n0OBOaIfZu/xnxJtaEgvmX/zZisgjmL/jBXPe3R8PpqZ6zTNiS4zNJCNU6MobvaktBndZrR6UPjFEuBwrFdFAme2v1mUAggUMecWXswIq+PG+LWHrenRIGP3lbJdJ5yQZFQ/qwPgNh93mYNsam3iPJuZpvk/aML6tDg4eqtiC7oBrqHvg00jmOFeJnpNfzJDFZ6oWGWvJWnPCXZK/nyaJ4zWprfle3IFTtmj1ECCko2Ja5VKU/sx+LK9z0/jGm5gvvLhPVy1I5klxriFgI8ioAppIF1/sB5UrksoBX83ZstjTzPNqo94j5RJLg== 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=hZmVQN71zI6jWbN/ROBn3bnpIPN9bJzocLKfj9XbPzU=; b=NVEo8SOwA5q2PJOv5rBXMMxotGUrUR5PdpECPZuur5QAUYAbaolmOIrv8e4z9wihqzzVZeMkC+GoFzwDNG9Ky0zyg5ih1DKtN5B+XfvZtrSabWAooFqTTC9YRg2lh93piYEfXAKizvfqQJXSMbyZ9H/Wjk6bhdnFGrr7kQJsFj5sbFJWE+9I9wN+TiB7c25V4Zag8Chg5bsbLi/6imDi1iFo2MW6qLUFZkZFJ8y29Lbbm9x9odm/EV4ElpXeWmCdcKuMwVC2fcqvxePpfDdHdXIcsMBYOYqOB9jHticQjckd2dd2gtMRyjkJOQZ9J+dkMrZBjFqtoJk4Beiy1PO7Xw== 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=hZmVQN71zI6jWbN/ROBn3bnpIPN9bJzocLKfj9XbPzU=; b=m6OvEhLWIt0vRMUF5YzqokQKlkqnQDvBn1cc+AbqT/EkJrH2CL5KuHwhY/+HwQksHa8dVHKsPRPvZkzx1AD57AIOOA7OMY/VBsHAERKsFEKrwjzE/qNuGuntHVCanR/DGWa1unNcff17HaJCx4Uwx2CxEBWIGNCfJnA/JGRUCj4= Received: from MN0P220CA0004.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:52e::15) by SJ2PR12MB7821.namprd12.prod.outlook.com (2603:10b6:a03:4d2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:33:37 +0000 Received: from BL02EPF00021F6B.namprd02.prod.outlook.com (2603:10b6:208:52e:cafe::5a) by MN0P220CA0004.outlook.office365.com (2603:10b6:208:52e::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.27 via Frontend Transport; Mon, 10 Mar 2025 18:33:36 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F6B.mail.protection.outlook.com (10.167.249.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:33:36 +0000 Received: from SATLEXMB05.amd.com (10.181.40.146) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:36 -0500 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB05.amd.com (10.181.40.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:36 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:33:32 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Jeff Johnson , Greg KH , Peter Zijlstra , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 12/14] ASoC: amd: acp: Refactor rembrant platform resource structure Date: Tue, 11 Mar 2025 00:01:59 +0530 Message-ID: <20250310183201.11979-13-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB05.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F6B:EE_|SJ2PR12MB7821:EE_ X-MS-Office365-Filtering-Correlation-Id: ddb4e605-e53f-47b5-b6c6-08dd6002122e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: qlm+2asK84W6F18gYNwDiPMzN9M4hRy99w0VB1EfgXWURoE6WD3/ZI88BhdcOnYM5g0usmSOfSKiTrxnOahpdPEixcS69ro+Lksb4olbwClnaFDDDqIlW7OujDLVjPQgMakBdAa0vyy/YGmRyPHX5S1hUk6ey7V0p3RKc7LZYJYvkXDyXU2KPcZLf9KUsrymHae5Ls0PaQioxBrw1X/1aikyD94RRXH4LyKFCkF58ABXu5GGyWHryjkz3hmGU9e8DAOqnqWD7aJizlIgszlbFbdPPbcjsCm/WxQpfVOB3XC5ihD12KMLgiJXZSYUMvFqONAexj+X0+dWHF0PELH3CcKO9JOb/s9nb1A/zWo6r8R1F8FvU/5cTHN1zES1+8PDF15uBl7e+LRLJRg7sOCPd0HNxQGAXpiiaCeJ+gILfspVZdg3gno465CzhvBdG9n5bqLw+/UxV5Yt/Yxy5NvA8mET91XVNKqOmzROGWmnFV3h1MzdR0wA8FmtnNvIUEgXe/w2fHnR2ZaGRCfaTEgNwdbkHhQZ76gVktoYWS8e3LXokOvjFPvklI9zT0BXTsuwq0ATGR/gulleYXL76Du7ZCA59ODvwVu5AQz7bHRNMPU1yETFI+jsnNSd+zUDVmJruOEneCBkJ/E8noEceZd8cD2CNOQcq8lu8MQ4G4pnYU2QV/L0kHU8KFeVw4HIijJjRM2VO9gaa/BdaQ7VsCMfJON5mxN5X8qT6CROpz0B07nRGWhW0QIHgghzzKtrd5Ni98BTyVr4b/HtxY1Oul3HHWUbWEdSv+MN8jr+J48NpQxRDdnoShll0fizdB+0rIb4OuuH6cHN+baTvOIXVFw+9vQk4mKDARz4gPzT4kka6YiN3AXWjS6BmUuUhtByw2BaN2XqbPjmTo/jRxTV4aycdcXUPJ1+1nHnWkLfUJa6z0OoyATZfVCMccA3Hi9kkHRMa3erUNe1GTxUWy7BBXDJyu0jZGsLCplDWKFy5iSR+LqRZz0XVmeR6o8n3giwbL0yoFJbEBAXtv/hyc1ZPGzY4fagawpvsNHLjtXXFkObE5Kh6Rv+bijcegnod2vjxzvDjrtiRNzPy1afYH1vViAN2UFaJuBPhNpLbrBQ9OIRUi/FM+zkV6ElHbH/Kk3LlG9TZVe3FRQ5KNbl1B+zmNRY6AbSKCYmfnneuFqFzNVejDRGspSlC7Z1D6zav8DHedpa4dMbeCVsYRp4uTMtSTdL9GchxnagS0BhiC1fMl0KjQsN6AOno+grF2f6Ny+UWwGP8f77G12WoA9D3U/yXMs6yB3YrbUDqqvpIsJK3kOnAy1vaBJmRoW47oIbXbw35deRSgKZg0EW+/EHz2VDekMuIXjHnskgZyhPR1o+QPRkfeF8UGpciRbME35QxXMmd8dqmf0TFHzDzHsn9ORx1sJAWLo432NRJFReXp9+Bp+YSHKs3qCUb6KTx5gc0BLFhA4/WOIFMA3VqrHKoMfoFTec87wQ8wSxEq7v+ectE6rgzEQ= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:33:36.7262 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ddb4e605-e53f-47b5-b6c6-08dd6002122e 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F6B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB7821 Refactor rembrandt platform resource private structure to amd.h header fle. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-pci.c | 1 + sound/soc/amd/acp/acp-rembrandt.c | 13 +------------ sound/soc/amd/acp/amd.h | 10 ++++++++++ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index 3df665ca1b0b..6dd905e75f1d 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -140,6 +140,7 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id break; case 0x6f: chip->name = "acp_asoc_rembrandt"; + chip->rsrc = &rmb_rsrc; chip->acp_hw_ops_init = acp6x_hw_ops_init; chip->machines = snd_soc_acpi_amd_rmb_acp_machines; break; diff --git a/sound/soc/amd/acp/acp-rembrandt.c b/sound/soc/amd/acp/acp-rembrandt.c index dfb18d5cdc7a..21614e2e1b6c 100644 --- a/sound/soc/amd/acp/acp-rembrandt.c +++ b/sound/soc/amd/acp/acp-rembrandt.c @@ -34,16 +34,6 @@ #define MP1_C2PMSG_85 0x3B10A54 #define MP1_C2PMSG_93 0x3B10A74 -static struct acp_resource rsrc = { - .offset = 0, - .no_of_ctrls = 2, - .irqp_used = 1, - .soc_mclk = true, - .irq_reg_offset = 0x1a00, - .scratch_reg_offset = 0x12800, - .sram_pte_offset = 0x03802800, -}; - static struct snd_soc_dai_driver acp_rmb_dai[] = { { .name = "acp-i2s-sp", @@ -171,11 +161,10 @@ static int rembrandt_audio_probe(struct platform_device *pdev) } chip->dev = dev; - chip->rsrc = &rsrc; chip->dai_driver = acp_rmb_dai; chip->num_dai = ARRAY_SIZE(acp_rmb_dai); - if (chip->is_i2s_config && rsrc.soc_mclk) { + if (chip->is_i2s_config && chip->rsrc->soc_mclk) { ret = acp6x_master_clock_generate(dev); if (ret) return ret; diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index 075659fb3314..0cb6d2abf832 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -238,6 +238,16 @@ enum acp_config { ACP_CONFIG_20, }; +struct acp_resource rmb_rsrc = { + .offset = 0, + .no_of_ctrls = 2, + .irqp_used = 1, + .soc_mclk = true, + .irq_reg_offset = 0x1a00, + .scratch_reg_offset = 0x12800, + .sram_pte_offset = 0x03802800, +}; + struct acp_resource acp63_rsrc = { .offset = 0, .no_of_ctrls = 2, From patchwork Mon Mar 10 18:32:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010497 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2054.outbound.protection.outlook.com [40.107.93.54]) (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 48419235BF4; Mon, 10 Mar 2025 18:33:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.93.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631629; cv=fail; b=HwbNsOcvgywkULICm8mWjbz4Gmc4x3HCjYokoe7sgEDUF+oa7w8Q9F/1VcihcN0acb27KK5vQHKFraLtmgayJuFFtf/+1o3LbM9NUIhLt3kcXtDFcXAPLcor+wy5N5QPDXV9M33MyxGPCPpO8BifUS5VxwqGcCgVB0uqA2DUlJ0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631629; c=relaxed/simple; bh=NcsyDew9mKO+CAhCoXMU8ANxhAqu2pAM5fsIoQvgC30=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rejRQtlFJKISNDdCP0uwnL5X0g7DqnCsX33uLcpYITtiTOCN9VGo/G8F6xSKvahyJJPMq+Up0KaWOLkhq6W3eRjCkPoOO+VEbrqRTgKQOUNkrxU0BbndW6sSgaiASIkrK+nL6dfnx3NMuDyQoyf035QPSZWXePBGkaaqFCGW82o= 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=VQo36ozE; arc=fail smtp.client-ip=40.107.93.54 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="VQo36ozE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lC416hF3hmPurxwWCIVSu373dh3hkmqqBrT+ef44iHaxKBurhxe7KpHZdNIcb0lFlehAkWEMnSCCBmVZzVo3NXGT+aHK//7LUETX42GkUy33435MFGxONiyt+qvISZZ4gd8zm6gCJ2RDzwwiOQwYwLCh3o7aEUBs+fzJ0rJU0LOnZlQiHH5Lw2v/x1E+oda+RZt8hyfRf80vZIs1FTizUfAawR8XgJB4hnh4UgJe/l6SrzdzDxXcRmWECj637XnKbgxlSeLcCuSJzoVEA91YdX1NnMgdy4f6BaXDN6DYtItdwiytJU41AzlgdNXzm64/LV8avKUTSoky7BM7NkXnjA== 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=BCNM1m52BnP0EmhtXDapEDWtdqpvLL/RI9/AdYrsuVI=; b=mtGmWrvhnNDb2ojF/H4ttJnj52zW8+vo1mq9SvyVkqUVkpvVRUKevIIE65xgCc9w9QXCUocKRk1ZbK0L7s/+WkuSsOzyQ2V1o+n8td5zS2KcNwBAQJQgibmGoAEhgCl66iyFyT9H7RtJE20yogHgkKdTgTJ0KLkMBm9T3BTliKjAfAxqu14GZmVnppTjmZInrGmycJDJveAIVm9L5dyRBbVRj/1eXwp/GnYtGXRf7K+wcmIQ5J8QrD7o/uWpjLhzMkbVUh+sVxYDQg2/H3AMvW3Xk4paeYs1C7qGv7ii9wCXfeox+A3qHxUL5fQRU4kyCRpaWOtbMj9UxNR3p4r3Vg== 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=BCNM1m52BnP0EmhtXDapEDWtdqpvLL/RI9/AdYrsuVI=; b=VQo36ozEVyRWn+4H65RXFqS7QQP6KPIEO7E81RZ38uz3OhckMFmZNr7aH0wfOFJiwnAdS3xnQOAhP/Fnjjci4Haih5vbk2z+6WDYHG0X49fekAKAhdVpQE4gWc2MZ6+aOPi6G+y/rgR0VRcCmnw14h3rimMttDEDtfXpTJZQCMg= Received: from BN9PR03CA0707.namprd03.prod.outlook.com (2603:10b6:408:ef::22) by MN2PR12MB4256.namprd12.prod.outlook.com (2603:10b6:208:1d2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.26; Mon, 10 Mar 2025 18:33:44 +0000 Received: from BL02EPF00021F6E.namprd02.prod.outlook.com (2603:10b6:408:ef:cafe::a7) by BN9PR03CA0707.outlook.office365.com (2603:10b6:408:ef::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 18:33: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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F6E.mail.protection.outlook.com (10.167.249.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:33:43 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:42 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:33:38 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Greg KH , "Peter Zijlstra" , Jeff Johnson , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 13/14] ASoC: amd: acp: Refactor renoir platform resource structure Date: Tue, 11 Mar 2025 00:02:00 +0530 Message-ID: <20250310183201.11979-14-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F6E:EE_|MN2PR12MB4256:EE_ X-MS-Office365-Filtering-Correlation-Id: 7fdb1ba7-4f34-410d-c794-08dd60021602 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|82310400026|7416014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: BZF1WvKIg6f89uoK/89tcfp/cfkrxYWO34fDVjACuIbhJYPFI1/DvN14dPtBgUQFHJ5THLIQAI4uCco/xO8iucYI3RliWGJDdDseXAHSGiJdFo/gu/cInLYxn4AbVmn3eOSG/KMsS6147X2Totlzw/x6Qk57MfDrAh8Zb4Ysq0r1k1EKMq2wjwqW5XfZe48DPSWflMP8hJ0vcReBBk/iu1ZkGVzPIf/zQvMqc7ou8uRdrIRo1F+jc5fGp6roJxXZ04RY6C77HtCsQMMZGzXJ/eXMB6LJ6jRlnhP7G78ugmgo4UROh3v4tzkF2d9IT7YBl7KdQzkAhYXI+BxmZlw9heWx/FmTpPcVb63xnPWTZBHrlgwmSAnAI+37BRitfId9G/7LL41CLbOmb7hcQEEW1MeovUtxOaaywDBEtndru9o/usAp+vddACkKn6iQD6agGqep5GIEAma98VG5e2ER7fYhIeD2OAriYNTUyYfLc3b5+ODLAiG2J+jlRAYzpyZiyyBKQcMv3hvk9xBX59lV3yM/lsG8zBdH429NtzYR4yrZYrZ5KodfbIEtYToDnm6U0vIc90jgyNTBT8VWYBbM8PGnn1IITeA36zxR8P7QS05j+lCsfjRwLIip5b6UxoJTBa+3zR+96g21qImyeESyDCMXtNhgLB/qNhVu65AxL8/FYw+V3H8hH7VPZVg2MNlZVdVL/9xQrcEyQOZu11I2EwbydsNbKwPgplFCxfy+w28KRUuJr7DCgnGRJROCnylOmO+Z/OYKmRIgA36pJGxKy5t5UHvKu3dyhF0B73knzHlS4gi5ZIhIbHBcUtc1ARmzd5m/hA/l1Y4ZO3TxpWdxjyn1WJHLG52HQ611oSk3hTNIiQ5uTNVAnZPsLFCoqBnDQwlLwX5ArzelRWb++mbaeBAuEJ7VGlfwHYIyY8eqz2T+4haQWrlUfGt37r2sEeod0jY9CMwA26j1YE3KlkKghDcKMgeSv9FC6MRBv0HfGIfz2YwDfw9YGPBIDo5oofEhnIqex3pqGBOBVQ0mzwCBmBdm7rxDwn+QfHXElXo7DncuOWC13w8ItmsYNtPrBQ7q4nFPSesglUPU0z6fEzVW9WSlbB2TFHLKRPioZlqOpA5GVj27Z33spcX1sCCBcGqyxjAWUHgzh5LHmQbRRLK8dXeEnD28aVEZS6HN3feEyLZXeCrpO9MKgPj5PtZVq+wXqX2j+97WLQr40O1cLv3CRHtEXszQU33buyxAdeE2PhWxHJuchY5ggsY2mYhUbK08pfuHE2IwwRKT6/SXgDqh+Ckqph839d7W1FI0P7pZZEv+Vnj+taqTqsZ0W9cpafB2pt87jYVf8d2LRqnhK1Pd12zcwBXQt3a/M1Ctt7Ww9acIhE8A5KEPari/N+64XNTd4wbYjQrnb0OXGgU+/KB5sPZCxZ2vkWscz3LtKha78ATL3wrE5oXf6hVqUkL7/FekvKIZswglvnOHeUs69Sg5kjnqyhc1ObWjAff86OYQRfg= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(82310400026)(7416014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:33:43.1491 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7fdb1ba7-4f34-410d-c794-08dd60021602 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F6E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4256 Refactor renoir platform resource private structure to amd.h header file. Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-pci.c | 1 + sound/soc/amd/acp/acp-renoir.c | 10 ---------- sound/soc/amd/acp/amd.h | 9 +++++++++ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sound/soc/amd/acp/acp-pci.c b/sound/soc/amd/acp/acp-pci.c index 6dd905e75f1d..9322379cb36f 100644 --- a/sound/soc/amd/acp/acp-pci.c +++ b/sound/soc/amd/acp/acp-pci.c @@ -135,6 +135,7 @@ static int acp_pci_probe(struct pci_dev *pci, const struct pci_device_id *pci_id switch (pci->revision) { case 0x01: chip->name = "acp_asoc_renoir"; + chip->rsrc = &rn_rsrc; chip->acp_hw_ops_init = acp31_hw_ops_init; chip->machines = snd_soc_acpi_amd_acp_machines; break; diff --git a/sound/soc/amd/acp/acp-renoir.c b/sound/soc/amd/acp/acp-renoir.c index 970ca613a439..b8ded929d52e 100644 --- a/sound/soc/amd/acp/acp-renoir.c +++ b/sound/soc/amd/acp/acp-renoir.c @@ -27,15 +27,6 @@ #define DRV_NAME "acp_asoc_renoir" -static struct acp_resource rsrc = { - .offset = 20, - .no_of_ctrls = 1, - .irqp_used = 0, - .irq_reg_offset = 0x1800, - .scratch_reg_offset = 0x12800, - .sram_pte_offset = 0x02052800, -}; - static struct snd_soc_dai_driver acp_renoir_dai[] = { { .name = "acp-i2s-sp", @@ -121,7 +112,6 @@ static int renoir_audio_probe(struct platform_device *pdev) } chip->dev = dev; - chip->rsrc = &rsrc; chip->dai_driver = acp_renoir_dai; chip->num_dai = ARRAY_SIZE(acp_renoir_dai); diff --git a/sound/soc/amd/acp/amd.h b/sound/soc/amd/acp/amd.h index 0cb6d2abf832..796f8efd395c 100644 --- a/sound/soc/amd/acp/amd.h +++ b/sound/soc/amd/acp/amd.h @@ -238,6 +238,15 @@ enum acp_config { ACP_CONFIG_20, }; +struct acp_resource rn_rsrc = { + .offset = 20, + .no_of_ctrls = 1, + .irqp_used = 0, + .irq_reg_offset = 0x1800, + .scratch_reg_offset = 0x12800, + .sram_pte_offset = 0x02052800, +}; + struct acp_resource rmb_rsrc = { .offset = 0, .no_of_ctrls = 2, From patchwork Mon Mar 10 18:32:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Venkata Prasad Potturu X-Patchwork-Id: 14010498 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2048.outbound.protection.outlook.com [40.107.244.48]) (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 9840A239595; Mon, 10 Mar 2025 18:33:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.244.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631633; cv=fail; b=e0vgDFP8t6/F5jRKsagfXkgL6NCROZjuiXi3/+Rg79GnTphFB2yW8HXDhew1z2YesDbQwFWyCSMRWCJUWTwvQUAepp9wv1nQatBAPVVmyIN2UvI6Es7vLm/6UJohiD7XZqRwSjwePGyz4YnJQOTzoMoPzbvbNyTl55i78YdAOlM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741631633; c=relaxed/simple; bh=iB2t9pXFURk/F/2uMiKSfkhm4pi3bVitsR7gBIBr7fA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TfWtmmaRVZRDw3WPAIp9NVzwe5kmkQnT5Euqv6UT4RTFViwenD4+Vh7akHif+489d89GZUeujZrAb0yi+F+f2fFgFC5NbHby/hmocsc+Jva/AaO4HRtdw0uqOpkMemv81D7lJiQYMM4Wn024FNvWEwCLfDJbo++nMdhhVOFS9qM= 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=pFVqczec; arc=fail smtp.client-ip=40.107.244.48 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="pFVqczec" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mneAx4XWoQkQYz/GIgpg3K656vUIoEvx2tzAsnIFfElFoiwW7LwZyPh8dRSpgXKd0RcGBswGoTZ4qJp5bgdonWC3Qjznr/AVb7lNZtdE2tvsEsCxjgOSzZ+suOwY57Dqw0JqoF+6sw8BVOkwpjv7441zTIeYrQJ3ynt14c+R15WO9SQ6xKtaemEo8KQ5+odUVhbmP69LIawGP/HavO1MAotb3CP9IMeEH4DBicepiNzbJ0eZB8Itf7LsWe0/+0qBYmGHTScnYvJkZZILgKDHOOQFxoQO6M1Haibj5iyYgAjEBkaa//oH4/9W+nDNoCoRhNHizN38SaQfUJ14ezAcow== 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=+qdJd8btDNX0m8iv+SlQPUFAv2LDwGt/NQYFMd/sl6s=; b=c4iMYG8SdLVUipK269Riw2B2BSpqSjHrP1nqSySvxuASJfX6Ow/NTiMZMrfvG3QbBejgiKU3pO8YLlUVEwd/WoFPTbQbaVTt7m4ZtAMhdiF6NKdnQIv12YJt/y0zc6ytymiDHCUOR7DG+y+9GZV8/qyybf/jGFvQxSfMuSOznjwUotHdX4nbTt64+xltxDkiPH87dat5HK4bbzZBnubWcpLMyG+ia9ZBdp936SHO5DLciET3iSQKFO37RGAPOJWnbbcSh9BY3PuWBWulfmK4U0QpS12OfOHQ0E4vCfrrIqiXE+wej6L6meoLrcPwPUthaMEKI/jm/g60FCuaWyi4iQ== 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=+qdJd8btDNX0m8iv+SlQPUFAv2LDwGt/NQYFMd/sl6s=; b=pFVqczeccgZ4ZbSFLqHHEMaMWEi0TMHnvYcJeUuf/nEfpJUzAo+FfqhvnYXz96nVueOPi0GkiuG2IVwGXyqUkXiSOqWgyGPMor36O+d+v6M/bcJ4f7hN/YBG8d079GeH4fLac6V6mhM2zkyjbM8tvIxuAg40q+ff4cACi4RTmgE= Received: from MN2PR05CA0058.namprd05.prod.outlook.com (2603:10b6:208:236::27) by DM4PR12MB5892.namprd12.prod.outlook.com (2603:10b6:8:68::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 18:33:48 +0000 Received: from BL02EPF00021F6C.namprd02.prod.outlook.com (2603:10b6:208:236:cafe::3) by MN2PR05CA0058.outlook.office365.com (2603:10b6:208:236::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:33:48 +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=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by BL02EPF00021F6C.mail.protection.outlook.com (10.167.249.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 18:33:48 +0000 Received: from SATLEXMB03.amd.com (10.181.40.144) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 10 Mar 2025 13:33:47 -0500 Received: from prasad-lnx-mach.amd.com (10.180.168.240) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Mon, 10 Mar 2025 13:33:43 -0500 From: Venkata Prasad Potturu To: , CC: , , , , , Venkata Prasad Potturu , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Peter Zijlstra , Greg KH , Jeff Johnson , "open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM..." , open list Subject: [PATCH v2 14/14] ASoC: amd: acp: Fix for enabling DMIC on acp platforms via _DSD entry Date: Tue, 11 Mar 2025 00:02:01 +0530 Message-ID: <20250310183201.11979-15-venkataprasad.potturu@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20250310183201.11979-1-venkataprasad.potturu@amd.com> References: <20250310183201.11979-1-venkataprasad.potturu@amd.com> Precedence: bulk X-Mailing-List: linux-sound@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Received-SPF: None (SATLEXMB03.amd.com: venkataprasad.potturu@amd.com does not designate permitted sender hosts) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL02EPF00021F6C:EE_|DM4PR12MB5892:EE_ X-MS-Office365-Filtering-Correlation-Id: 6a0839fd-d990-429c-a79c-08dd60021902 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: 72/hbedPtLOQ65Zb8avANYQ53iJLit17hCq5FkNbcwmoK0eWW79musU/2XZJebSsaE1V9BGwEcuQ0qDZWP717BjRdubNdL6KxtMiY2UYwq2OORxUVDA/8thRG8BSU+pZqkWoMV14qxOFpg+QNG+0WP07n63qYCBxRgrBKBVlzEEDYCVCTEE+JrH1NyzcsVyYliKdeJLgNe/+NnLNmnnNYweNeespJ8fQem1uunCHzESs4KsiRL2ro1YmLxlfHemRShr6QrYgKet6zUw1G8AszTYGMQjBk9V4InDivvBQkLXdsCFJ0HO09rlueD2HGn/61m4evUEzWGaxF8UTkDczub51VFxIfcbGE0ENEHBOp5zSFDwg6A83f9svbYnIApY5O3W/QlDw1pLPIQa9ZDwxVGlVpoGwBpN9cPORMlFavm5rGTG5MvuNBDtC1M6+sMipBm0qH2sIE+0HkTdum+NbFOGAbVeJ1OaDuXOVu7iD3IFQ2RUiHO3/aTMZ8KKnZqvU64C8nEVzV+qj2pzO6vIUWbNxFNiDgJp5REy4bCY1LGISvgfELjpzGMAvILquQ+K6qH/I42t7j6sUXeYnKuQk5O+SIPeoH/qGnagK238/mCN2mIvld95cZc1v88yz3YnwZKCrz/LfkazC7cVIWWOO/WG8/KKDbnnYMyDCqNin1t8LvKcgzcBkgFUM2fXLjbEvOFo/SMoNVnnmUPIbMKqz63bku3/3ghhTtvdRxITRfuPUyhg2sz4xV/ebCjtVEmfL/iwUNmpwvvWnbeoeomXHTONwyB9Hjq3yer3i3lhEAHo8z6WZtJqDHpSbm7L/GqcNajWwykn6CAhl8C/BoDLTQEXvz7hCiTNmIw/m+Dw35WeL+jMGX6JNtgibWgTWL5t2cFflIROokDNoZIVBJwxKLYK0H1Gq1CZF+rkvRAFW5JswrcfQuvNg9HzAbOHvu3gVyEeFnsVd3jcRffriNx3kpA0HaLZIqGSIUpV0FYZFlqHvUQz2TtkNiaQcHukUEmQWdHwM+Y0BQwSo+qrQzcRQwhKHaOD8vv7yUg6MwvpO4PPHkAtNBOt30CM8L9zH6x9ESDR5wUWsJ5QIt/IigXmUe05e9htgSzTqr5t5ATbc81tPCA6ET/NoZDyhB5+zywNVuKy1GpO3bYm+6pk1khDSdBH94kb9a+WGUAGGy0qH+Ud9779l0S1hdwumPhDebvVtfZjAvZDXSP0Ipqm77lNBSTR9uc4iklaeEgX6re7OI97JESj29cqskwfqjTV9PFfiCrEtgOgHv4PIQTzf44BlezTdVQwaFfalVedNflRlxQBpHI6mvRymX01xSJOF9QaEbfJdgXN+4iI6H4dLVh2CPuOUltEHxA6vwz2h7YLwR763MIVTwG9oLuXYH8maauetM69eW4AdRO6V5mN9FYxEjIFf2tXic/Q51kat1g4R2n19KSIdojZ6ikD6WeBl4Y1meWpCc+sYzTNvdSHU3vHkJGGUXTGHJXJeUq5AUTG/fxE= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB03.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 18:33:48.1815 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6a0839fd-d990-429c-a79c-08dd60021902 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=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BL02EPF00021F6C.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5892 Add condition check to register ACP PDM sound card by reading _WOV acpi entry. Fixes: 09068d624c49 ("ASoC: amd: acp: fix for acp platform device creation failure") Signed-off-by: Venkata Prasad Potturu --- sound/soc/amd/acp/acp-legacy-common.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sound/soc/amd/acp/acp-legacy-common.c b/sound/soc/amd/acp/acp-legacy-common.c index 988b7a17b2f4..255f90ca956a 100644 --- a/sound/soc/amd/acp/acp-legacy-common.c +++ b/sound/soc/amd/acp/acp-legacy-common.c @@ -13,6 +13,7 @@ */ #include "amd.h" +#include #include #include @@ -511,7 +512,9 @@ void check_acp_config(struct pci_dev *pci, struct acp_chip_info *chip) { struct acpi_device *pdm_dev; const union acpi_object *obj; - u32 pdm_addr; + acpi_handle handle; + acpi_integer dmic_status; + u32 pdm_addr, ret; switch (chip->acp_rev) { case ACP_RN_PCI_ID: @@ -543,6 +546,11 @@ void check_acp_config(struct pci_dev *pci, struct acp_chip_info *chip) obj->integer.value == pdm_addr) chip->is_pdm_dev = true; } + + handle = ACPI_HANDLE(&pci->dev); + ret = acpi_evaluate_integer(handle, "_WOV", NULL, &dmic_status); + if (!ACPI_FAILURE(ret)) + chip->is_pdm_dev = dmic_status; } } EXPORT_SYMBOL_NS_GPL(check_acp_config, "SND_SOC_ACP_COMMON");