From nobody Sun Apr 5 18:17:28 2026 Received: from mx0b-001ae601.pphosted.com (mx0a-001ae601.pphosted.com [67.231.149.25]) (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 420F13A785F; Tue, 24 Feb 2026 16:18:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=67.231.149.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771949926; cv=fail; b=gYPGWMCoKFNIgSZNX3lzNC8M3l5/0+fNR8+2jMRGY2PtkRuUGTj8nyJ7oyhdRYNFrmuj8n27u+/GZrknqanh0PS1tmhTMvINtPAbveH8bDMv2gqI3lmTTotPF9vt49R/TLVmNvq+yBvsTmTTqdIy+DATCuNx6J5HZA3P+6hzXfw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771949926; c=relaxed/simple; bh=giJHboWUXRUOnV9kyJTjhjXt5vPIbUrw4JLVEex94YM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XxMJS3gylbpji5xLLmLvnZOdmPGQeveKwHYhih7yvi5lO5wzzYgSL37AVpUfjjzbd5890iaQnLJqqGW3PyLTABoaSYv8Xc6mU6U5orhs+TzXzfP+uS8qJtNsOWLWaU2sRJUIjoPLs4B3te2XRS65w9pnCu/RUenwlmU5xY4Ugy0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com; spf=pass smtp.mailfrom=opensource.cirrus.com; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b=Hp9nYCf+; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=hmKTQVvF; arc=fail smtp.client-ip=67.231.149.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b="Hp9nYCf+"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="hmKTQVvF" Received: from pps.filterd (m0077473.ppops.net [127.0.0.1]) by mx0a-001ae601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61OEGoZ2038012; Tue, 24 Feb 2026 10:18:42 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= PODMain02222019; bh=V+MQlNjLVl9zh2UM17Au8c7xy0hX4/PPUvzB64gyRx8=; b= Hp9nYCf+ESZrNoRaNd/vDlkdaxuZIDq6+hwXeYuah1QjLs8l+PcWgCQh2WZgV3s/ GC49O7zDEmrDkYa4XZVEX4ndlZNwN65auU08EfndHjQwd5yp3B0zLS0V4moItRK2 yHyH5vwtuABBEgJxCNP/M7NNqsdiXWzcYT8JetSlzppmlsixewoTU1/X19KWhhy0 ml4BeWfA3LJOzplLlTWjbFHEA3Aq7mdgT8B9Eiy6JrD8YRoHjp/0+ffKoMtP3GTO 7JwWx3W/BglBwtrr3Hdp5Eqxd/MVj6oRIa9cAo7Q/17ouUDMNsD8px3IEc59EGHL p4bDBxjJ+LW9UeCNRAMDmw== Received: from sj2pr03cu001.outbound.protection.outlook.com (mail-westusazon11022130.outbound.protection.outlook.com [52.101.43.130]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4chdku87vj-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 10:18:42 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=j2GznTLZ2QWZFHlnXRPNVRYVRhAY2FvvUezl1LUdeP+cALsUc99KvCJJ77ApAGYXJ7Xc0kiLH6XODvgKoMPDNkl9aXiMdlp81gG+DgY48hIgq5U89SNsXsonwvNMdZl1VefJLJxtAcrfkWuR4wuTpaQILpzy5qYs5n0JH46QuU984Sm/BfmkCNZe73SKZe/YvqF2fD+1YPfb3Gxy7qxCu2ngv30796m+1dPPG3RT5O2FuH83Th2193jxSzX8zhefEDGzAMbCyeAUUBoiag/caejMg+WGHHBPLJjuf19Lpg0Oa8BztRTwwEAdRJ8KYHSc3rCpDKfVBDoYW2C1PNj/kQ== 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+MQlNjLVl9zh2UM17Au8c7xy0hX4/PPUvzB64gyRx8=; b=czEsoirDMEoOVimqz/aak9sQ8lFyoNm7FaXDUMPDvJso+s6k+Jc95Wixr/MIHYfgRLsI4zN73VEmAN0d+ZHLr4fLRz03DQJ4eWWXtuJCxiWuL9MzsOlkm7ormzfsQhk7ww6JmZjtqZ3axkdVJIHGWYjouGc8u9rPSstk0BtxFj5DslpclhAkXqfpZL+aEs4loES9+aSyX1kz1rShF+GMUXXwZoIlZYOT/njaTLwOaV1/k4sJ+Xrwg/G/pPPv0BZBcMcTbchyJUOhiRpyeuA3rBTAUCvxefiha3tJnooewP3Ff7HNKO1geDfbSDtwC0YoaO+lYn7lAPizDjBxW2yUrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 84.19.233.75) smtp.rcpttodomain=cirrus.com smtp.mailfrom=opensource.cirrus.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=opensource.cirrus.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus4.onmicrosoft.com; s=selector2-cirrus4-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V+MQlNjLVl9zh2UM17Au8c7xy0hX4/PPUvzB64gyRx8=; b=hmKTQVvFTgMptC864ZNDz//mq1pJbY1DhofujQNPYCnufXrNCPNVqJnkMOstylcHO3mqOK9Z6BjOuNgcRn3P8axznkQxqADQmr4X/Ixf5a9/25OyGlSyheKLlhdHQ01LcVpWyP/O7cE2ElD56zHoNTTpnWEARjMazT+J9y9qIUE= Received: from SA9PR10CA0026.namprd10.prod.outlook.com (2603:10b6:806:a7::31) by LV3PR19MB8345.namprd19.prod.outlook.com (2603:10b6:408:215::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb 2026 16:18:39 +0000 Received: from SN1PEPF000252A1.namprd05.prod.outlook.com (2603:10b6:806:a7:cafe::63) by SA9PR10CA0026.outlook.office365.com (2603:10b6:806:a7::31) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.21 via Frontend Transport; Tue, 24 Feb 2026 16:18:37 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 84.19.233.75) smtp.mailfrom=opensource.cirrus.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=opensource.cirrus.com; Received-SPF: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by SN1PEPF000252A1.mail.protection.outlook.com (10.167.242.8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 16:18:37 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id E0EB2406541; Tue, 24 Feb 2026 16:18:35 +0000 (UTC) Received: from lonswws02.ad.cirrus.com (lonswws02.ad.cirrus.com [198.90.188.42]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id D63D3820257; Tue, 24 Feb 2026 16:18:35 +0000 (UTC) From: Stefan Binding To: Mark Brown Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com, Stefan Binding Subject: [PATCH v2 1/4] firmware: cs_dsp: Add API to hibernate the DSP Date: Tue, 24 Feb 2026 16:18:05 +0000 Message-ID: <20260224161821.93365-2-sbinding@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260224161821.93365-1-sbinding@opensource.cirrus.com> References: <20260224161821.93365-1-sbinding@opensource.cirrus.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000252A1:EE_|LV3PR19MB8345:EE_ X-MS-Office365-Filtering-Correlation-Id: 72af553c-a4e6-4d20-d13c-08de73c05d96 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|61400799027|82310400026|36860700013|376014|54012099003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?gVJnADcrcV3VFMMmNmzDSFQedg56JUGWyOCItWz30sWUfR0UldrIyne+ukpP?= =?us-ascii?Q?igQKq2wxFyh/1tI0nksrLsI61Fh26O9vbdB5pg6O3NVmTQ6ONWb+lNtCclRZ?= =?us-ascii?Q?D7Vb6YpNHhzrw4tifeVnLMrQG396GhAhtjMXBait9CtinxS+CPzA7ZQGdLVL?= =?us-ascii?Q?hl32IBCqj0ecLFhDN9i8bBxfpBJQhPzQT9VklJmR93JBGhSU7j/SrhKK9FYx?= =?us-ascii?Q?XFBZZzrirbKf4U+P/eW2yCjfOJnYTrbm4qQ29H8nyDckPfzvBWucL3tuQpci?= =?us-ascii?Q?EvtQbVERhcQ9YU0VgvL6N2TmUgl4yeHq4zbn4hzr36hoeIxdhcXnPrhd3aQT?= =?us-ascii?Q?qjN0BR16oSlC7buGbaUjgge0MbunWKcWGzefXDCCssfHxJBTAWMD5eHcWbTm?= =?us-ascii?Q?VCOX02LPSLUkLC+jwNVYBhDCfnQUQvhY8oPUCriA3UcZ+YFBcFKmsDNJGHvZ?= =?us-ascii?Q?6vjMYzTdczfLx72xuEsIi3ntWQsZkCjElvwGe8o9asTEsXvtYkNXH+SyktsA?= =?us-ascii?Q?xjLS0owVa+nbLUvLyZBlse6w1CQhblxa43PIXpPI//rh+HooYLDg2388VKc6?= =?us-ascii?Q?+PGKlznS6jbJDIYpbRwE/lw/gA2y/P5R1b/TXzIaep/S3+Ic131OAFPHcK9b?= =?us-ascii?Q?Mf91T1BydzuAbdQk2YdyWi8jbb5QhQTE+jm9yJLREwY1u4lT7qqJWqaZ6y70?= =?us-ascii?Q?0PquraLuXe5Dx3/4J1VHd2IEBpcJlt2ohXxPcdUYl9LpNrJ6BPFRZgNq5KVO?= =?us-ascii?Q?6ssUvinsJxAyZfEj1ct46BgQJxnylXZhG/5Z9y+DqH2Pad8J1ghFTeW8oEAL?= =?us-ascii?Q?vnJjYnFpxdiKx8ntBVqlp43GQoJ2cE4ddlpICRruacV46vbLXCTa2oWlO6hX?= =?us-ascii?Q?CiQu64//jRC/jaRMwehsaz6H7RtTJszdVGLmGi+TaapgtV7G7MNvQqscLsVG?= =?us-ascii?Q?Tut39bJroFZ3JCpXjaObTvHbke13964mSx11TiXH1/5rJUBtU8vJ9KUq9y+h?= =?us-ascii?Q?gcmsEMPTuXc50eQlPXyZ4SSf0zkIDJrEGNtfle/AO58lqrgBFJA5w1VUZUzT?= =?us-ascii?Q?CkU5uVTOR4X6ydYooo6ECk38KasZd+mzcYAlmTdlRLPCDS3mbIHJf0YseyNx?= =?us-ascii?Q?obHFdd+t+T1TAIseeDOiz5h0Fn80m4wGVmKdM1LOLVt0vfrN7C6sScPqMAH/?= =?us-ascii?Q?PAtABVT2SiRRtqLkvZHvKwDRM0k+HCGJ20sbciRmvjqySdpRQ+v4AaGZAVH/?= =?us-ascii?Q?MPEsQXulsGhU6Qe4a+ibsANpg2CT3cnhUOHYTPug4QL5JvAN4PXmAIjWyQa9?= =?us-ascii?Q?YgWMIPPqXTbZXMJm20hKdfTUNKrg9YrpuWvThjcvf9RHcNOhSvALL4dGJhUo?= =?us-ascii?Q?9joDMjJz0K2laIn5Lh/IYfU4It4NQ+1/t/mN5Ob3BHdDcPXmg6tKm4sPbOgd?= =?us-ascii?Q?cHRn7sQsNGA37isi3qWRkn/BapKS7ih6jy1T9S8ijpW3zgyK8+h08PuKIhoq?= =?us-ascii?Q?ANw2paQ8tmi2c9WaySzkVuGqN+LkE+y4i0K3rCusRgjqMTlk9LDhMJ5YWKgu?= =?us-ascii?Q?OkSLoA2mbOZGpQDhyPK7GyZLwWWnDiHUdf/3ahfgRKtX9l7GXOELWUan9i6D?= =?us-ascii?Q?aGs1vRB5+8jbA8Iiart8nq8Swwml5P6705CHIRvcMM32X8fl1Q4U6rdLrnjB?= =?us-ascii?Q?9Vag6w=3D=3D?= X-Forefront-Antispam-Report: CIP:84.19.233.75;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edirelay1.ad.cirrus.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(61400799027)(82310400026)(36860700013)(376014)(54012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sXOHGVXEJGcN0Kyknta7i6sK4g1U+oLzIQzjYzyYohqwvzj1X7Vnt9q3WqyY/Jg0JPfARjkwBZwmt1bcADRYDnFHzeZr2ARK5sy7huoRF8fjVtQ1l05HHoWK5EnAyWcda/aQAI6e/f2wwEcdWkhU5/yMtymPVOMjTtRlP5Ct8vNeP4QRIg1nrhc465ddb4PPNtG/oA7DfNROttizum6MPieLF3DOQkEDSbxKXT9jf25WSdGpj4QK48TcZoBZiycJpdl7a0Nzo0HoAU9TO0eJa39oPknyHEClgZ2bsgIehbSAvntclC72fFXknXh+fFLUnawBAOSxJnExc+EqKgfn7z9WKxSAmX0urHYSoXxcNKI4LIt24PrJN9YpMuJgwZRdeUFkE/mYV5DksBW1XBkATQQTaRjDB79M232aDkT3xSi0cSPqQFdEh/srO1Yq8+kt X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 16:18:37.1561 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 72af553c-a4e6-4d20-d13c-08de73c05d96 X-MS-Exchange-CrossTenant-Id: bec09025-e5bc-40d1-a355-8e955c307de8 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bec09025-e5bc-40d1-a355-8e955c307de8;Ip=[84.19.233.75];Helo=[edirelay1.ad.cirrus.com] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-SN1PEPF000252A1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR19MB8345 X-Authority-Analysis: v=2.4 cv=OZiVzxTY c=1 sm=1 tr=0 ts=699dcf62 cx=c_pps a=lRTg7vgTIBoiavhQ3167yQ==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=HzLeVaNsDn8A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=iX4cTi3TZMoOKdANLEfx:22 a=Dj2-6B8FqX4mGL0U3gbX:22 a=w1d2syhTAAAA:8 a=OYxLIzEmPA8roSr139EA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI0MDEzNSBTYWx0ZWRfX7cNhB0zD3c5p m3LaIaLUrz0WFFFAtoUUTsdifpNp4Rl4xOTjseKhK/NFQ5fks7Woox2HDDzBRxEkIEc/m/Zvuao kuX6vMecpzJG8upLUcV4UsUTnu2gCjoWp1H2WiNFdiVvHGRe90GGxP5ElED+P8HZ0VyT73/8JI6 BR3YkK/YQ7JY7Xaw//cnyTBOpe82qxdxaAhS0gIuMAELk3EVsQ7u8mI8Wk2Sq5XF7bSVNyqWHWP tMMAvorMlVOB1b1i857Cls3gAkpoViCLEsqYjtESVsqDdASb8ifVsNSn/uzS7Xxd+KQz63nDl34 BLURPPeQs79RaiCduhWloX5Oq6ydLVEoF0EODV6gxVPukWrLy1uu5uSb2mBLZQ/ncknShTWFJXJ XjmzNtkQFkg8TLGQ9nv1UMJIwDCw/XZI5UnMAyok4tdC2QS+HKvXH4mWHC0+LEesaOYL7P9WVpP Z94McG5yx1HwvNhuzNg== X-Proofpoint-GUID: ykLPkjMU9QZAfA7jVB3rAhsD79KbaBBo X-Proofpoint-ORIG-GUID: ykLPkjMU9QZAfA7jVB3rAhsD79KbaBBo X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" For some parts, the DSP is kept running when in low power mode (hibernation), leaving the firmware ALSA controls enabled, but the registers are inaccessible. Attempts to access volatile firmware controls whilst in this state would produce errors in the kernel log due to a regmap_raw_read() into DSP registers whilst the regmap is in cache_only. To remove this error log, add a hibernating flag to indicate that the controls are inaccessible, so we no longer try to read or write to the registers whilst the regmap is in cache_only. This would still produce an error when trying to read or write to these controls, but this would be a different error (-EPERM instead of -EBUSY), and would not produce a spurious error log in the kernel. Upon wake from hibernation, the control caches are re-synced to the hardware, if the DSP is running. Signed-off-by: Stefan Binding Reviewed-by: Richard Fitzgerald --- drivers/firmware/cirrus/cs_dsp.c | 49 +++++++++++++++++++++++--- include/linux/firmware/cirrus/cs_dsp.h | 3 ++ 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/drivers/firmware/cirrus/cs_dsp.c b/drivers/firmware/cirrus/cs_= dsp.c index b4f1c01e3b5b..f9d8a883900d 100644 --- a/drivers/firmware/cirrus/cs_dsp.c +++ b/drivers/firmware/cirrus/cs_dsp.c @@ -515,6 +515,7 @@ void cs_dsp_init_debugfs(struct cs_dsp *dsp, struct den= try *debugfs_root) =20 debugfs_create_bool("booted", 0444, root, &dsp->booted); debugfs_create_bool("running", 0444, root, &dsp->running); + debugfs_create_bool("hibernating", 0444, root, &dsp->hibernating); debugfs_create_x32("fw_id", 0444, root, &dsp->fw_id); debugfs_create_x32("fw_version", 0444, root, &dsp->fw_id_version); =20 @@ -703,7 +704,7 @@ int cs_dsp_coeff_write_acked_control(struct cs_dsp_coef= f_ctl *ctl, unsigned int =20 lockdep_assert_held(&dsp->pwr_lock); =20 - if (!dsp->running) + if (!dsp->running || dsp->hibernating) return -EPERM; =20 ret =3D cs_dsp_coeff_base_reg(ctl, ®, 0); @@ -827,7 +828,7 @@ int cs_dsp_coeff_write_ctrl(struct cs_dsp_coeff_ctl *ct= l, } =20 ctl->set =3D 1; - if (ctl->enabled && ctl->dsp->running) + if (ctl->enabled && ctl->dsp->running && !ctl->dsp->hibernating) ret =3D cs_dsp_coeff_write_ctrl_raw(ctl, off, buf, len); =20 if (ret < 0) @@ -920,12 +921,12 @@ int cs_dsp_coeff_read_ctrl(struct cs_dsp_coeff_ctl *c= tl, return -EINVAL; =20 if (ctl->flags & WMFW_CTL_FLAG_VOLATILE) { - if (ctl->enabled && ctl->dsp->running) + if (ctl->enabled && ctl->dsp->running && !ctl->dsp->hibernating) return cs_dsp_coeff_read_ctrl_raw(ctl, off, buf, len); else return -EPERM; } else { - if (!ctl->flags && ctl->enabled && ctl->dsp->running) + if (!ctl->flags && ctl->enabled && ctl->dsp->running && !ctl->dsp->hiber= nating) ret =3D cs_dsp_coeff_read_ctrl_raw(ctl, 0, ctl->cache, ctl->len); =20 if (buf !=3D ctl->cache) @@ -1108,6 +1109,44 @@ static int cs_dsp_create_control(struct cs_dsp *dsp, return ret; } =20 + +/** + * cs_dsp_hibernate() - Disable or enable all controls for a DSP + * @dsp: pointer to DSP structure + * @hibernate: whether to set controls to cache only mode + * + * When @hibernate is true, the DSP is entering hibernation mode where the + * regmap is inaccessible, and all controls become cache only. + * When @hibernate is false, the DSP has exited hibernation mode. If the D= SP + * is running, all controls are re-synced to the DSP. + * + */ +void cs_dsp_hibernate(struct cs_dsp *dsp, bool hibernate) +{ + mutex_lock(&dsp->pwr_lock); + + if (!dsp->running) { + cs_dsp_dbg(dsp, "Cannot hibernate, DSP not running\n"); + goto out; + } + + if (dsp->hibernating =3D=3D hibernate) + goto out; + + cs_dsp_dbg(dsp, "Set hibernating to %d\n", hibernate); + dsp->hibernating =3D hibernate; + + if (!dsp->hibernating && dsp->running) { + int ret =3D cs_dsp_coeff_sync_controls(dsp); + + if (ret) + cs_dsp_err(dsp, "Error syncing controls: %d\n", ret); + } +out: + mutex_unlock(&dsp->pwr_lock); +} +EXPORT_SYMBOL_NS_GPL(cs_dsp_hibernate, "FW_CS_DSP"); + struct cs_dsp_coeff_parsed_alg { int id; const u8 *name; @@ -2498,6 +2537,7 @@ int cs_dsp_adsp1_power_up(struct cs_dsp *dsp, goto err_ena; =20 dsp->booted =3D true; + dsp->hibernating =3D false; =20 /* Start the core running */ regmap_update_bits(dsp->regmap, dsp->base + ADSP1_CONTROL_30, @@ -2776,6 +2816,7 @@ int cs_dsp_power_up(struct cs_dsp *dsp, dsp->ops->disable_core(dsp); =20 dsp->booted =3D true; + dsp->hibernating =3D false; =20 mutex_unlock(&dsp->pwr_lock); =20 diff --git a/include/linux/firmware/cirrus/cs_dsp.h b/include/linux/firmwar= e/cirrus/cs_dsp.h index 0ec1cdc5585d..4e3baa557068 100644 --- a/include/linux/firmware/cirrus/cs_dsp.h +++ b/include/linux/firmware/cirrus/cs_dsp.h @@ -179,6 +179,7 @@ struct cs_dsp { =20 bool booted; bool running; + bool hibernating; =20 struct list_head ctl_list; =20 @@ -354,4 +355,6 @@ int cs_dsp_chunk_write(struct cs_dsp_chunk *ch, int nbi= ts, u32 val); int cs_dsp_chunk_flush(struct cs_dsp_chunk *ch); int cs_dsp_chunk_read(struct cs_dsp_chunk *ch, int nbits); =20 +void cs_dsp_hibernate(struct cs_dsp *dsp, bool hibernating); + #endif --=20 2.43.0 From nobody Sun Apr 5 18:17:28 2026 Received: from mx0b-001ae601.pphosted.com (mx0b-001ae601.pphosted.com [67.231.152.168]) (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 595573A7F79; Tue, 24 Feb 2026 16:18:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=67.231.152.168 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771949929; cv=fail; b=b478DaFlxPT6W8ikUXO0Cd2TBD0sNtXiXmJjBBXbMfp+irBbhLtSFi1hK6/tbne85fFuroRRcB6x9Tt7gYBFV0gRtaAnQ5HVmtPWtXmtVU9GiraBEq+8tso8LmmpJLwhGK0W2w/fuOItHL3kEsqLxxJ5I8RJwh7PbQVT8wLug3w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771949929; c=relaxed/simple; bh=Gia1CDKsWRIKD6FzfWD5JGafKKlgoeoIsDgaH1ZjPXw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=W/9nDsmffdghdZJm8PB+E/kw/ziTy+kqPfKukn86+MXpI0OR5SGII2xfmw0pSzcvxusbjI344Wd2ZBGU7f11ZSD+CbZ8poIsj8pP4hw1VFTON2ihyUnjzYRwjIRmbV4m1OEfpjsR28AAB9UvFuOmhjJ8jWi8Ot+SupGPq2CiFBk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com; spf=pass smtp.mailfrom=opensource.cirrus.com; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b=IpSu3fiH; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=O4x6+jEN; arc=fail smtp.client-ip=67.231.152.168 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b="IpSu3fiH"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="O4x6+jEN" Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61O3wMXE3426023; Tue, 24 Feb 2026 10:18:45 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= PODMain02222019; bh=lqeA/wJu1VJc6zSGuLSkCm63qp30hybfY4gQjsoAMZY=; b= IpSu3fiHeMyOqSvIvhOyGrDwtoRT633HNrfHZq/p4E2obhYNaZf1F0PS2cztSIY0 ms9SyrfGHJ8FrzR6aXn2TCwQsEzI2qpQMFfyAt8NDKrhDbU0hL+sbpZRu3tiyyeC y1FQ8gGudK0Sf93JUXzY70QHTNK1cpLl/AXSerGXNEmmFiADNVXfvF46qaOLObVJ OZRZAWj8qYQVR9bYXlbdvjpcXDw/MlfvV+JtNUy9kgu6/ddZnCwV7ASFrzdh73/Z f8SMfJND+24QiYpUYuPgU7Fs0oNbvdA6bBeGPuN4o5HHx0/VqfZur7/aiQxoXvBI CvhrKoPczuodOprxyX8GAQ== Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11022083.outbound.protection.outlook.com [52.101.48.83]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4cfa0j36gu-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 10:18:45 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZkGJ1oV9M6ez5mxeQZmN54CWNk9gQ+qcse8KlLFxjfRfPWqLGG7BybjtVlnGON54c8Q2+dILla+1K1vURtoUwY4mbmGsh91Tclv4lPq9yBibYRp4xS/P8cgA4EodeWD/QdHloZzSaV9v/U8bDU7PWXPEt/ib4TTeXjDalqKiplHV2MXj0+bCFef9vKY0iuuQG0QWqRAska5sArU5ae2SsQUZuU1ucFYZhfKFHQIpY+JElVXT8kyN0ofw4ej4TD4DQhloWxWHqWIo3x5fd+NYobgObETZw4v99zqlW9XOlAx+hPGLwoIpr0ZfztXswHT2mPTKmOlIbZDalVfuv1Ob0A== 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=lqeA/wJu1VJc6zSGuLSkCm63qp30hybfY4gQjsoAMZY=; b=fOe7I4akfh/ytG1vPhnBkivuYIWyqORwEnJKBsNixmdcyBznJBqfc+XXIifN2OgvaW/sqpuDO7s306b8jK4J3U7q8M22nrmJ8xoGIP85rncfv4F51cinBq6ISGb5UE2E5unt7RhmjRCsahw9/n8I0xFDbrIx4fF+X0ANzQRsQdWCwZiPjFFDm30XYvSue60wC/VJhYdCKtZ0+SyBu8jLBmuPkQzOJ9YZcaydWojqNEkhMZ2Ex18K9F6wI206z9cmmWCf+S7QPlh/3T0MLXr83grAcF2rxD7nvyRsmhXpZ3rvMOo8H9jcKQ2Y3kusGU5KxXziuJZbDJA4uMS0fYRUhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 84.19.233.75) smtp.rcpttodomain=cirrus.com smtp.mailfrom=opensource.cirrus.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=opensource.cirrus.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus4.onmicrosoft.com; s=selector2-cirrus4-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lqeA/wJu1VJc6zSGuLSkCm63qp30hybfY4gQjsoAMZY=; b=O4x6+jENNGeOoALNFDz2WPUZ7uiJe7VAT5W40wDYn+0ludB2qh4Uv+N/U0vBuFdI64YpNRIIcypeEOJz7kzSXmQPCTUCKRysCNfzD+UGRjfQkX6FKl8HhZYW/4yOL4cSTMXohxepE8Heoev3OAFRwyyUCZoJbQ3kUYjsrQULizI= Received: from PH7P220CA0079.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32c::27) by IA1PR19MB8851.namprd19.prod.outlook.com (2603:10b6:208:595::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb 2026 16:18:39 +0000 Received: from MW1PEPF0001615E.namprd21.prod.outlook.com (2603:10b6:510:32c:cafe::7d) by PH7P220CA0079.outlook.office365.com (2603:10b6:510:32c::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue, 24 Feb 2026 16:18:37 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 84.19.233.75) smtp.mailfrom=opensource.cirrus.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=opensource.cirrus.com; Received-SPF: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by MW1PEPF0001615E.mail.protection.outlook.com (10.167.249.89) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9654.0 via Frontend Transport; Tue, 24 Feb 2026 16:18:38 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 18920406542; Tue, 24 Feb 2026 16:18:36 +0000 (UTC) Received: from lonswws02.ad.cirrus.com (lonswws02.ad.cirrus.com [198.90.188.42]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 0DA7482024B; Tue, 24 Feb 2026 16:18:36 +0000 (UTC) From: Stefan Binding To: Mark Brown Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com, Stefan Binding Subject: [PATCH v2 2/4] ASoC: codecs: wm_adsp: Allow wm_adsp to hibernate without stopping DSP Date: Tue, 24 Feb 2026 16:18:06 +0000 Message-ID: <20260224161821.93365-3-sbinding@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260224161821.93365-1-sbinding@opensource.cirrus.com> References: <20260224161821.93365-1-sbinding@opensource.cirrus.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MW1PEPF0001615E:EE_|IA1PR19MB8851:EE_ X-MS-Office365-Filtering-Correlation-Id: 2120267b-6b6c-4434-702d-08de73c05e2d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|61400799027|82310400026|36860700013|54012099003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bOQ2yfVq74in0vGprY8/ESBoznsQH5hpZxoG4qn93JF/IBe6k1djXSw/4PXS?= =?us-ascii?Q?tsbBC6UzllxyxqM1YxhGQTa7o954mW0jxQdlIK8Tlc7p7ABvSY65Xz+KEAdA?= =?us-ascii?Q?Tbp1NM/nBa23ajwOWyomXwfvb35Wmm2RGt4JfV6Grln3GexE2JwtPWb4TpXt?= =?us-ascii?Q?UF4dDuEbj1QUKWSreB0DVc4EGpQeHEVmle0e1qGJ6PjHrj5G0eUhHkp1r2U4?= =?us-ascii?Q?itryEGEmFoIsDazLnuzk3ibTkctzVQZUBYL0VS+R0YgYCzMQLZwu84PW8fz/?= =?us-ascii?Q?ggO7dmEkA0lv2ju7pploLS8/ZryMm9Y23xzhQAilB1cLe9WZj2ngpp/r/O6b?= =?us-ascii?Q?VDfWTCE1wkU22BIC8v2KSWgtL9S0UC05fml80QmtIj9caXXKo2Mt5MeKDcRB?= =?us-ascii?Q?DDqyTOVO4vnYjCezh4SWAxsSraUArtp1vk4EkGDgfxmouilU9zUYlmnja56C?= =?us-ascii?Q?R2s6hHjTcBqkn54r9kDOSbOc87M2y5Lq5I3JwWagsqFhy/tFFef/6vScle1J?= =?us-ascii?Q?w0zoCyBG6y4Sm8jSubQExRK6hPC6bOdDnkwqSkX5pLGmaPyduGINbpwnm4Vj?= =?us-ascii?Q?NzJ5VslkXediF8LXOcxX5PpEIWlKGae3Lrxw4i8mDnoVroW9gngVAH1JgKuG?= =?us-ascii?Q?KbzWe9Qp42AiWqgZuhW1c7sGzyz1ptKQRdPXu4YjPV8wGYsmlsznu/NOInrg?= =?us-ascii?Q?AMS2nPHfBnDiy9MyHZ+MC12qKpjjju7EGNyPfeMzIw4l1YfGC4K1IujClB2J?= =?us-ascii?Q?uawZ+QvH4CwmfakNo6Ax5BxTih1YUYJ9HtKCV8m0B7xuaooN+Q1cXawOahdR?= =?us-ascii?Q?CcsYUP2Otvk+Oac84zxP4cGEafvyXL9aweYdc7DScG9tBlml11baBu9oYWw+?= =?us-ascii?Q?4WXXJycN90Sys/UdWNVrGttpIbO2Yye5gIG05SOnGfiy5G9aa2Mkmh4xFGzq?= =?us-ascii?Q?1u8mglHb17uL0bSsEtiERt6bJqpwwQ6Alie8pnvLa+jFjU2FEXmICPvS6ZQ4?= =?us-ascii?Q?Meqv/A9kd7C+/aC1YUvCKE/fo9MhS4PAvq9VQHjATXwLgiqLewQD6ZbKB0B/?= =?us-ascii?Q?k+5I/Z5Eh6tRss2hnrryGdyIKKuh4GO16hy336p6vyonlHk9TlRVIzhfMA1l?= =?us-ascii?Q?dfVhsdx11mMvFEBEG7mpUqo7JpB+qNsxyC4nVbbaoBowL8WAr8ocxkVG3/pR?= =?us-ascii?Q?1YpuBxMqGf2L4eRU3vgAzJO0wLVzWo3Ph7WI1m5nAXujDGnu721v7drJ0Mwh?= =?us-ascii?Q?sbo588dJgGD9QFg9Wb+2xutAAFuKLxJTT63qx6bnDDRLrnTh7vXtqDf+Y+Cl?= =?us-ascii?Q?Hf6vfdin6tStu2Wdu80lod0x55lIP++QL9OKIRa3LypP5OmnQh/EfWgmjMRV?= =?us-ascii?Q?RXaaAzNMZ0DtfJnv0l0NZJwwWqlqaY+Yk3tQmQpehnUSFTp2IFEw+yXPHY4k?= =?us-ascii?Q?xfNFR56ZFBO2pLytdS/Pw6BK8jaC/dlASXuS+nF0EXT4BSox1URuoD6xekYu?= =?us-ascii?Q?F/V7YH2NuX4VYjiFEsLksv7R13rafoGjaV7Cq18/prOuXhL3Mo+21z3/C2eR?= =?us-ascii?Q?nExaadvDtN7+ij/MXa13iBxamwGIur5wWHbHpk79U3lr0iSH9kqAI/3vDITK?= =?us-ascii?Q?mutr3A/fNl5mt4t2H5c9L5wh39lHX9wnozUaWyYDlWVQVt2uacaURNdtLEtC?= =?us-ascii?Q?fcjb6g=3D=3D?= X-Forefront-Antispam-Report: CIP:84.19.233.75;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edirelay1.ad.cirrus.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(61400799027)(82310400026)(36860700013)(54012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Kj++WDq3iwLlRG1xL/uplyKbgMZC8ssZPtl3+EnUuWnwmuAlJLtxvVYMsmJd8lzx6FE/3W+pA02NrGGSu1wxWJjxtvuhDy3vHlzYSD5THvddwslinhahK5Nkpny8uewjHOWb7LWfjuyOhqyXPIbn1M5INXI4ZArXth9vbucYE7Igwh9ux4Aha889FQOVMVfDw7xYIfgRo9T1DUbs/IyM5tyxoZoCPqJjoXsKwgzdXpaPN+H5WDU+rbe760EbG8Nn9+YjTqKPININ4F83EE7bW2+l3eaRmLvGUVlQZ7g8rfiiITCb0hs1/+6YfGyYkCtzJYZN7Gig7hGqyhgOs40Ej/gIaBN6MzSgX8KJ1O8OgGw0NZVukXhwSfNDLFFzn6CKayz9vmku4LGFVMDaMUx5hp+Fm2hmIi2qTpXwWGYhjRYJqGpmBjxIWgOvhUCzZ0dt X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 16:18:38.0868 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2120267b-6b6c-4434-702d-08de73c05e2d X-MS-Exchange-CrossTenant-Id: bec09025-e5bc-40d1-a355-8e955c307de8 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bec09025-e5bc-40d1-a355-8e955c307de8;Ip=[84.19.233.75];Helo=[edirelay1.ad.cirrus.com] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-MW1PEPF0001615E.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR19MB8851 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI0MDEzNSBTYWx0ZWRfX1ah2z24UI8Xu lrjqGbfM3Hl0clWVX7CF/OrsubJnzdL87zk5EJ52UDRDcoBmdqJweUdH0TIus+M93kUwyCZ0sfU lvWuwkbXxVRJxCuuRrjlCn0ehpD9dS6/IuKD/d3gNH6GQz4ynRvjwF1SNOyK6gIM0cmUH7MsWlF jcF3ch8I6d6yQQ406SN6YJ+0cwjmwT4xtEdoP/L+ZxEMapz6S/5ICCRPSBO130tQ/v0sPwRjiUu BzJ1EsxWHGBUO4t6KU0itsIH1kgzOwLJhqzeNpwG2qsI3PA8OIDz46r0E7K8Kuhe1tioxPrDHn0 XHA4k6oE7NmAh6IA5Svu6xSn403L2OIohHkDd3UxhiaDY4d1vYzDJdNOYF4T60jfwqF5O18E4pa JofgK95VupWgSh1WsDulofPqs6X00y+OnRd5rFXTIsdx9vM5O/x5unjQbPg9/YecffeRw8TL/uI NrDk78+wmd82qg2k8FQ== X-Authority-Analysis: v=2.4 cv=Q/7fIo2a c=1 sm=1 tr=0 ts=699dcf65 cx=c_pps a=80uo2vwcsYp3yIYYF8sMvw==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=HzLeVaNsDn8A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=iX4cTi3TZMoOKdANLEfx:22 a=KfkQE9S9VqCBgivYGm0O:22 a=w1d2syhTAAAA:8 a=sbEEYNrql6nwSTcRNn8A:9 X-Proofpoint-GUID: QuN6ZzDE4ZfpocRQ9ymcOxvfX-ivRzuZ X-Proofpoint-ORIG-GUID: QuN6ZzDE4ZfpocRQ9ymcOxvfX-ivRzuZ X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" Some parts do not stop the DSP core before runtime suspend, however, this leaves the DSP controls enabled and accessible whilst the part is suspended and the regmap is cache_only. Add new APIs to allow for the DSP to hibernate when the part is suspended, and the DSP is not shut down. Signed-off-by: Stefan Binding Reviewed-by: Richard Fitzgerald --- sound/soc/codecs/wm_adsp.c | 6 ++++++ sound/soc/codecs/wm_adsp.h | 1 + 2 files changed, 7 insertions(+) diff --git a/sound/soc/codecs/wm_adsp.c b/sound/soc/codecs/wm_adsp.c index 2e23848e1dce..d95b54275b5e 100644 --- a/sound/soc/codecs/wm_adsp.c +++ b/sound/soc/codecs/wm_adsp.c @@ -1100,6 +1100,12 @@ void wm_adsp_stop(struct wm_adsp *dsp) } EXPORT_SYMBOL_GPL(wm_adsp_stop); =20 +void wm_adsp_hibernate(struct wm_adsp *dsp, bool hibernate) +{ + cs_dsp_hibernate(&dsp->cs_dsp, hibernate); +} +EXPORT_SYMBOL_GPL(wm_adsp_hibernate); + int wm_adsp_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { diff --git a/sound/soc/codecs/wm_adsp.h b/sound/soc/codecs/wm_adsp.h index 8035fda71f8d..a9118be793d7 100644 --- a/sound/soc/codecs/wm_adsp.h +++ b/sound/soc/codecs/wm_adsp.h @@ -103,6 +103,7 @@ irqreturn_t wm_halo_wdt_expire(int irq, void *data); =20 int wm_adsp_run(struct wm_adsp *dsp); void wm_adsp_stop(struct wm_adsp *dsp); +void wm_adsp_hibernate(struct wm_adsp *dsp, bool hibernate); int wm_adsp_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event); =20 --=20 2.43.0 From nobody Sun Apr 5 18:17:28 2026 Received: from mx0b-001ae601.pphosted.com (mx0a-001ae601.pphosted.com [67.231.149.25]) (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 3D6DA239567; Tue, 24 Feb 2026 16:18:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=67.231.149.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771949925; cv=fail; b=n99jAqjBgGHwS8igc4z5xlyb4vhr8JJ2HpYX0FhPF1OCra+7YgMtyk35KhW8/Vg14NopFNCtsvBIRLI3JCNQupobedUuFMmHGx/oiJyLmCI8CzEuUsH8TdrdewVa1HNgfkUONWFvuwBDXHxQljmjeWDWBY4b5Art33dC9nuMwuY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771949925; c=relaxed/simple; bh=bkzmzrd5Oe7A72a+qZJ9HDtuNfZAoeV1Kz/XVxT/zlM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XVmMdbze+7IDsR0zzyEwCYTafi5OK1ArfrR2Wyj9yD5W1vIQWM3tVerU0Yk0opcheY2x3WwKwwu3+W21dYJafomjBrLKfb9BeNrKB5UWMAooI8OuTmjzxye3EuZAX//MEw1U3V1VnbQvp8NOI2PXupRPn0V+vhdDRHKBl5/R1Cc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com; spf=pass smtp.mailfrom=opensource.cirrus.com; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b=UJ3X3Z2O; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=WRsGOQ2y; arc=fail smtp.client-ip=67.231.149.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b="UJ3X3Z2O"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="WRsGOQ2y" Received: from pps.filterd (m0077473.ppops.net [127.0.0.1]) by mx0a-001ae601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61OEGu5M038320; Tue, 24 Feb 2026 10:18:42 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= PODMain02222019; bh=TC1ogmsrhMbfRwPG6I9PCfc/VYOm6XyFz62MJrOX9zM=; b= UJ3X3Z2ObYxRnejgR1d/nYmTjOsBkH/uUxzOcmrvZs7YEnnI9CAj54cY3Z05usin WOMVGeedAqYlg3PyutiC7+4X+jUQd+Y5cGY09IbjaY1nU34v47BY8TtbRo5/b22R 8eKZzBfHVdW5yedldJWJ7eE5lCFWXzpPCoY/5Za9+Mqj36+aY38odSNYj8aMbtKI GXYQO66T+A4Z1tkhOd/rabhwndA2ep4D61yPiskUHVj2I1shTfLlNshx6oZi8w7X z1irlzRbuojzuwqycB81+bXlVy4GPuvCX9FuSb/I2XQTLBCgYn6rL22+1sAZ/YEZ OR3flKG2+qy06pZ+xXjXdQ== Received: from sj2pr03cu001.outbound.protection.outlook.com (mail-westusazon11022125.outbound.protection.outlook.com [52.101.43.125]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 4chdku87vd-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 10:18:41 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MSlp1BI2Qv/0fY3luYYe+9pRTqpDWsjWqIHF1eH1DcYEggB+hUljO+r4y83N5vGHfb7jbL6YdaMma7462v7SnAkD+IH/VxXyIpR4tnpizgXKrYUutZ+en5chbIR9PPbqC3eXP5qQZmwGAIC0p61OhZmzJILEuaDKvl8KqaogFcEFnPkma2LqxgyU7vwnjFPklyPDIHF5A3UcD6A9GJZ6Vwg1e39rEWPaanv+JYsORO4u+IaQz1FAPR8o4l5wRCkqyEvCzNLXAYQdKz57VmXTlWAmml8IXJDoVyNbMObUQEpDrQuBRX7RkgJ64OQ1KID+k+bIDjL6pQUEVIAh8ac+hg== 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=TC1ogmsrhMbfRwPG6I9PCfc/VYOm6XyFz62MJrOX9zM=; b=MJj55O63I0BUWcxKnWLnRVeG1oOwBEYNxFqDMJnD2n2uJVyqmXZS5izPqwFDOlbYQRHZtTi8lELvGv2onksavitaHdK6fRKR9vqzreifsktTTw5TboXulA+2fxzAOL0rZ5Jx9on5mwAQk826fLTEYJ+/+IVfhO9/Aa/2uyWEImESXmrWXFHZpENvlL8sI8iVGHuQdA8tnRATeyXMJo7E3pxBdmbOXNyGRI7ZvYAALhO18oEtqKgnAncVPbQwosyqckkbvfhqYPo+FFnMir/9UuSF0A+lRtPSBM3fAeJ3YXLYEFgMMibgUGPz3XFq9QgTllWq9l0XV5v1qcX65TRnnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 84.19.233.75) smtp.rcpttodomain=cirrus.com smtp.mailfrom=opensource.cirrus.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=opensource.cirrus.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus4.onmicrosoft.com; s=selector2-cirrus4-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TC1ogmsrhMbfRwPG6I9PCfc/VYOm6XyFz62MJrOX9zM=; b=WRsGOQ2yL1CFTH+lTyTGSbyTTSwdhLEL4hUOhURrv0mgcCsFbWCgNAATDVL/oJxyhvWyauckDCz345tWJPzMUBrHgUFRzrNKklnUls5+1VFSEIUbZz7FizVC0eFZVZmqgNn/rCXqFVsz0gxj8oXRvuMVrrRwjL0MpoEFgDCUMF4= Received: from PH7PR10CA0020.namprd10.prod.outlook.com (2603:10b6:510:23d::18) by DS0PR19MB7497.namprd19.prod.outlook.com (2603:10b6:8:146::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb 2026 16:18:38 +0000 Received: from SN1PEPF000252A2.namprd05.prod.outlook.com (2603:10b6:510:23d:cafe::b6) by PH7PR10CA0020.outlook.office365.com (2603:10b6:510:23d::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue, 24 Feb 2026 16:18:32 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 84.19.233.75) smtp.mailfrom=opensource.cirrus.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=opensource.cirrus.com; Received-SPF: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by SN1PEPF000252A2.mail.protection.outlook.com (10.167.242.9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 16:18:37 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 43303406543; Tue, 24 Feb 2026 16:18:36 +0000 (UTC) Received: from lonswws02.ad.cirrus.com (lonswws02.ad.cirrus.com [198.90.188.42]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 39C06820257; Tue, 24 Feb 2026 16:18:36 +0000 (UTC) From: Stefan Binding To: Mark Brown Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com, Stefan Binding Subject: [PATCH v2 3/4] ASoC: cs35l41: Hibernate wm_adsp on runtime suspend Date: Tue, 24 Feb 2026 16:18:07 +0000 Message-ID: <20260224161821.93365-4-sbinding@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260224161821.93365-1-sbinding@opensource.cirrus.com> References: <20260224161821.93365-1-sbinding@opensource.cirrus.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF000252A2:EE_|DS0PR19MB7497:EE_ X-MS-Office365-Filtering-Correlation-Id: 252532da-dd78-48d4-9f2f-08de73c05dc7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|61400799027|376014|36860700013|54012099003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?jnXKu9DglumVpMUVGVh3NV7O6RD0rf/FkLMcLuGgUYZi/NkqGENyMskbtTZ/?= =?us-ascii?Q?jHtokqAbP/fALsrBZTnpZjwHwvPBS7TrFIculXv1GfkdYQQvG5nkBWP7yknr?= =?us-ascii?Q?xGII08Wnu10rfNqFMSqsocCst7/ALVeBKzMzIulA7/WpglkcAbmt52Ky7JEZ?= =?us-ascii?Q?GYl0QaS1kjmBj4uh+yNfTtEGU4hQFjRx/GdkKwUJp6KTTKluetIa68QynNvw?= =?us-ascii?Q?w055T+y8M51r1VwBII5I3ijZW0SHZe0fkfhW3CALwZ1t8qX/pnewETMt+Hau?= =?us-ascii?Q?RTGuTBjgX3fC+H9S3GylfNVtiUQBrWgyagFOq17992BoDLkUTIBYWgCkD1KL?= =?us-ascii?Q?lsRTus97qh2Xe+7r22hMb01+yRFWle3fG2THjI+c3WrZXdiBW/ebIBKY8d3s?= =?us-ascii?Q?zoTD42I/2rGanLabOFwydOAj6G7aDK7dd/SGjyI+wU3sbTh9CwUN2Bta/Lf9?= =?us-ascii?Q?08I72DZsJUJj3uTrdUsiXD347iwLN0269Ln84kKWLS9X5vwLLscxCp0yfClG?= =?us-ascii?Q?867vd53W6ewBBs+ERzu7AdbS47V15DMwwcLeIdJvWiJsqtw9c+NS+kmAUXGI?= =?us-ascii?Q?7SLFkUp/EZxfW9NQkUhi9DAeQjy+fyULNYy2aj3rnujvdst6jmkGMUKmYqev?= =?us-ascii?Q?oegodwCmo79UtUGnfpV66dZC3GcJiGic752TwTtILtQdXe8mGym7RvXltYhD?= =?us-ascii?Q?EXca9sQ6RL2f0CNy0vXywZwSc9HSgrMz/KlEdvOyZch/8zvtbbBSgYFK+ku8?= =?us-ascii?Q?kXqHeOvXjVe4sTgVgsNZC6Odgvi0JvHuDWeC7ue4/h4ZwxpmvHNBKquwcgK3?= =?us-ascii?Q?8J9+6smf3jzW+r84cpA0oDlAy4RCB20Qot+EIQu33XH5v/d6LnTyrb6WAvQf?= =?us-ascii?Q?FqdpIyinAl+346o0EcGl9h80++2qBUfa8ZvaX/qEmX1HwrMQw6SE4DIEd5j+?= =?us-ascii?Q?7qOaDQp/rcsgOpmkfkXvGzM+ekSfKP+UlJzwL+IWAp6JFyvNeQkFuzdehTcM?= =?us-ascii?Q?eRUVj+qFhb83fh5GNtLz1uE+U5jYaQAGd1/zrPYdCs1ClToELN9DVPPJF7IB?= =?us-ascii?Q?SPpz8g5yeXqXiNRbrdHO+NHG0rkXsDscB+DW3jvAasiVQDRGcpTd9w7C4kSQ?= =?us-ascii?Q?Xa26URqGTz7wNp1ipKHMdUV8eGRAwKQXDSDQ/u374v8Y4rI312xfAwn3KjrZ?= =?us-ascii?Q?rtI9pDnPGFjtSwFeUk9PiuXHn+mJ6AvJU5cPgW9bqgOVeDR93/nxpJBlY13q?= =?us-ascii?Q?gMBSMtFQNC94Rxp9fWWg4u97HFOn9mUwCHkB3kKyXK3YulNs+6q8N/aV6eev?= =?us-ascii?Q?yCvddlc3DZUC/SKL7XKOBE6fNz1UO481d5afzILfqBsccmMVYGvCp3pUdyaG?= =?us-ascii?Q?Rc4p0NBy0utb4xWz0uMIeza3xiRi36TqKj8vgHAOzhaJJWRBWdcAME3J3xxf?= =?us-ascii?Q?w5lCmnC4lkbNk3NYs6+3CI//+T27u4R37+I6KmJzF+hJwq415HUznmt3rRls?= =?us-ascii?Q?b9wM/gOJJXvhibXm13Qp8F9CMd26JoVBqJRHqXLeW1rnNj4FOlEMEPesF82V?= =?us-ascii?Q?tzsj7eH/7tQe4RYff2s+ABWhupQwphd+25Puv47eeSYmzIm1cuL7O5mI45Xj?= =?us-ascii?Q?opeLmNU23dBTWYyD4HoUhVhbwuT9FOHKyfYNXcJa3z3JyeKJ7GUAWoWQxewx?= =?us-ascii?Q?YfM+GQ=3D=3D?= X-Forefront-Antispam-Report: CIP:84.19.233.75;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edirelay1.ad.cirrus.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(61400799027)(376014)(36860700013)(54012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MNA2qfBi8tpByUtEaU68U23+V2e5JzoimdWkBZ9VKOI2T0zsOt2gTDvIBHimANwV+SEbJJOLCbVpOfO+LRKqTLEVRVQFl0H90ejaeUHlnsDPEcIP/uNdn9it1kuNtwf+qU2u+Yj7R1VSejLvFHvxKWyd4nMpMm3zzd0/ACnbkKw7JBMyN1DysN9mQLSw0Fx0nJ07JSc0SUfMFD5vgW4rc3JkhZ92gjVk6rncnt02d2FRDQizE2Vdj7fIidSLn7/fDMUPbuemYjANPL5Gq1x2QQTyZPBCRiA50+NsaV9U3zsfjS5Uf/+hxYObs6lkYZTsTuyJtXFSveSvworKoKWWP4uu02T10RZi5uxqsHSrbs+9sKv+7JM9TOdE6aFOuRCP8l7xaw+CH55HnzubfAkSs6iqJCBdwUX4BriHYTTlAQGng0pflccNsItrAK794I/0 X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 16:18:37.4737 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 252532da-dd78-48d4-9f2f-08de73c05dc7 X-MS-Exchange-CrossTenant-Id: bec09025-e5bc-40d1-a355-8e955c307de8 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bec09025-e5bc-40d1-a355-8e955c307de8;Ip=[84.19.233.75];Helo=[edirelay1.ad.cirrus.com] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-SN1PEPF000252A2.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR19MB7497 X-Authority-Analysis: v=2.4 cv=OZiVzxTY c=1 sm=1 tr=0 ts=699dcf61 cx=c_pps a=YMpgYF4YqoZtRZf0gxQL+w==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=HzLeVaNsDn8A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=iX4cTi3TZMoOKdANLEfx:22 a=Dj2-6B8FqX4mGL0U3gbX:22 a=w1d2syhTAAAA:8 a=mmtDOMPXX2ZRX6g6iDEA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI0MDEzNSBTYWx0ZWRfX1OCfYlRxfykx ZR7OIaRl3ItqMTRbqbalNzZpzzyHMbXuJIULxyMiFxCXl2CiHjUlosBKfbfyvPwYyansth4jAkW fQQarE88JHXcULvxBJhd4rQvN4jZ0G0vQV6XbAma5SXMSQYRoxSszO/VCMjT0T3y2rNpS0STsrM q5WpG06egin6Axz8uKina0RBrJT3X+ZAi1akfCuOYWHhKouLpJvCDCltCOmLeazvfhKbjoH+snD JmwmBwAeXIkZ/KMf+HqkTgpf0joCgMMbbLpqRIsdek8HnJZdnX9eUVbZD6+3isGcSoPCAFmbLtM BhkFWMZCSxZTVRhcdB6D5asK9N6pm04sIrVaDR78YdTIu42r5oA59NpXh6oJWi+3T/0f2Btf+S4 PLevLJ9o7p+V/JbqvlkJeRwpOmjNb7TzF+6g0/7DxKK1aBmFF8ffaQ3U3rEjIZ8usxOkyvt2UFs jQUhgaQ691sBkPePIsA== X-Proofpoint-GUID: iHddOYgeZyYqWwQ-9xlKt7nAqTltKovV X-Proofpoint-ORIG-GUID: iHddOYgeZyYqWwQ-9xlKt7nAqTltKovV X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" When the CS35L41 driver suspends, it is put into hibernation, and the regmap goes into cache_only, but the firmware is still running, and wm_adsp is not stopped. If userspace attempts to read a firmware control, it will perform a regmap_raw_read() and this will produce an error in the kernel log. To prevent spurious errors, put the DSP into hibernation which prevents access to the hardware for the ALSA controls. Signed-off-by: Stefan Binding --- sound/soc/codecs/cs35l41.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sound/soc/codecs/cs35l41.c b/sound/soc/codecs/cs35l41.c index ee56dfceedeb..b2a076706c79 100644 --- a/sound/soc/codecs/cs35l41.c +++ b/sound/soc/codecs/cs35l41.c @@ -1404,6 +1404,7 @@ static int cs35l41_runtime_suspend(struct device *dev) if (!cs35l41->dsp.preloaded || !cs35l41->dsp.cs_dsp.running) return 0; =20 + wm_adsp_hibernate(&cs35l41->dsp, true); cs35l41_enter_hibernate(dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type); =20 regcache_cache_only(cs35l41->regmap, true); @@ -1432,10 +1433,14 @@ static int cs35l41_runtime_resume(struct device *de= v) cs35l41_test_key_unlock(cs35l41->dev, cs35l41->regmap); ret =3D regcache_sync(cs35l41->regmap); cs35l41_test_key_lock(cs35l41->dev, cs35l41->regmap); + + wm_adsp_hibernate(&cs35l41->dsp, false); + if (ret) { dev_err(cs35l41->dev, "Failed to restore register cache: %d\n", ret); return ret; } + cs35l41_init_boost(cs35l41->dev, cs35l41->regmap, &cs35l41->hw_cfg); =20 return 0; --=20 2.43.0 From nobody Sun Apr 5 18:17:28 2026 Received: from mx0b-001ae601.pphosted.com (mx0b-001ae601.pphosted.com [67.231.152.168]) (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 3AB093A785A; Tue, 24 Feb 2026 16:18:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=67.231.152.168 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771949926; cv=fail; b=JUomfT+iZpnqS5fbxdHxb0gO0u56tXaUoEuTgXud95wFL9az4EjxCpgDZdxjBozpOOfyXMtZyLynrRwHbaG72bHbRaQk7Sf93k9OhC1Z3BdJdN0j1k19Rd2p8k54zkL5kQjQ1yUnR3J5MER9VVLcpuwlYlFZwclVNegj4GInP0Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771949926; c=relaxed/simple; bh=3A0hmK719KLGiqFaueLyw9tqWmy9e+Ow2br0nb3Gi30=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=iE9gcJV9mc1FT9PeorL7+ir93QfTUixtwHWumK5QDG+6zzwmJOFD1jItJbxBHYWMamUxNGlc9Xl+a6pF2I5TlWqK4sMq8AY9A3ztmkGDdiZeI1Lk7WLjhcR/wmIq1mZiyXf4PCZEiTgBdKJBj1B9fboMD8yZP9OdKh9PhZIkVMk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com; spf=pass smtp.mailfrom=opensource.cirrus.com; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b=XzNF4eVJ; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b=rz7ChJfV; arc=fail smtp.client-ip=67.231.152.168 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=opensource.cirrus.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cirrus.com header.i=@cirrus.com header.b="XzNF4eVJ"; dkim=pass (1024-bit key) header.d=cirrus4.onmicrosoft.com header.i=@cirrus4.onmicrosoft.com header.b="rz7ChJfV" Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61O4mbvZ3507755; Tue, 24 Feb 2026 10:18:42 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= PODMain02222019; bh=XM67fP6U/26rKwqgGjA/6W5D9T+fxUq0zGKZ5ubgqFA=; b= XzNF4eVJn3Afj5W/EeWRaMkfpo8gnabKtPwBW5Tx1pjZ1kXUCV8cDyArX0kq1vpH 2HAPfAIpgMOZx9OiyhlG9Ixi8J8KvtRI5JWm/YmJJYhDeix4VM50tuNFFJnnILqs 2fV1Fj8jISudTisORqCXHXV4uBXVeWfs2Gu6Pi+NwaHjSLS61sQ4z2fDCDSK4PbM YfrpLoGTPI9bXWOmALMYuKsEHfX5WemNkO8TrUvXxkEuGyNZhjuo1nOf1RWlTRtX eIj0mXfCcodNch7XzvZhyTrzRzLBx16NX4FWvBP5L2YWgoFOqjjAMRZ84t0gdgs+ /Z8D6IOJEgIwglpvPq1o/g== Received: from sj2pr03cu001.outbound.protection.outlook.com (mail-westusazon11022132.outbound.protection.outlook.com [52.101.43.132]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 4cfa0j36gr-1 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Tue, 24 Feb 2026 10:18:41 -0600 (CST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FAt1nKTXsp16K4WhaxE3H8ZmSZB9h6zRev45iWBwvVBARNvd+Nw4AT7KZDRrgFvZWcOLznK41sDVYbBkRnr7/GAWWjRJ7LYiGQ5w2aY13saspkJNB2OcD33vTdJUP03A2ZZ52TcLpLm+JMpJd13yUWZ5XRnwtd+e9ak1N1Rjc7cRs8wJZJ8dkDXonQIV57NmrfhHpEdX3jXffciMGdSiYqtWBpom3vqnDilqQiRMuNMI7IP3qGyhhhPXXGTsPaD3GKmBPyHVVna+IUitmukeoBB1+qO5DrhPH1qPqzQ2dK8zt0SEwYpHFTSiSSsrOIH1U+uNqR7vYA3K97IY5qrxiw== 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=XM67fP6U/26rKwqgGjA/6W5D9T+fxUq0zGKZ5ubgqFA=; b=yFOxs1avEl+YRc32A9hyZtgF2s50zLs4RWY+l2q33rwEvcgbw+HvDPP4buLKIkuFdbMktWChkokVMH8p2xHKKd3d0I/2s5yli2gxogvzKqRoVMBkCKil/sVf+x26nZHRPIzVbgwgOwK86ZFKt/FwC9ue7ofKIa37msEorC+BD5sJfSGvh9pcGzeYQT+rsjO08VhnI0qHalxCvZFFGAvyYJU1lp0oX4aznPxsu3elmEt9ljSa7Uu+4vI14UTla/ZPP6d2OlEUUdnvXhiGfOwDmmNs8udsEKB2A5kix90zd2znQHIQH+bG+fB93vzqHlZRViAK50j+S+l7zBAICQ7Vog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 84.19.233.75) smtp.rcpttodomain=cirrus.com smtp.mailfrom=opensource.cirrus.com; dmarc=fail (p=reject sp=reject pct=100) action=oreject header.from=opensource.cirrus.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus4.onmicrosoft.com; s=selector2-cirrus4-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XM67fP6U/26rKwqgGjA/6W5D9T+fxUq0zGKZ5ubgqFA=; b=rz7ChJfVhiZ1rCLE3oBYdEtUGGG7Rosy2Ol0ywKyfoMK61IoM/MP25IJ1cHH8+m1j4qePkkSZY6H7G6bPn8okGxur6V9kfNF53uJzjnO6FKQMTsh5nGVkdNqi9AohCm0yKcsflloBB3I8w9n3vC2abCp4L9Oa7JFDE7w9ZAjoqk= Received: from PH8PR22CA0007.namprd22.prod.outlook.com (2603:10b6:510:2d1::12) by DM4PR19MB6001.namprd19.prod.outlook.com (2603:10b6:8:6c::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.22; Tue, 24 Feb 2026 16:18:38 +0000 Received: from CY4PEPF0000E9D3.namprd03.prod.outlook.com (2603:10b6:510:2d1:cafe::73) by PH8PR22CA0007.outlook.office365.com (2603:10b6:510:2d1::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.22 via Frontend Transport; Tue, 24 Feb 2026 16:18:39 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 84.19.233.75) smtp.mailfrom=opensource.cirrus.com; dkim=none (message not signed) header.d=none;dmarc=fail action=oreject header.from=opensource.cirrus.com; Received-SPF: Fail (protection.outlook.com: domain of opensource.cirrus.com does not designate 84.19.233.75 as permitted sender) receiver=protection.outlook.com; client-ip=84.19.233.75; helo=edirelay1.ad.cirrus.com; Received: from edirelay1.ad.cirrus.com (84.19.233.75) by CY4PEPF0000E9D3.mail.protection.outlook.com (10.167.241.138) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.12 via Frontend Transport; Tue, 24 Feb 2026 16:18:37 +0000 Received: from ediswmail9.ad.cirrus.com (ediswmail9.ad.cirrus.com [198.61.86.93]) by edirelay1.ad.cirrus.com (Postfix) with ESMTPS id 767C8406544; Tue, 24 Feb 2026 16:18:36 +0000 (UTC) Received: from lonswws02.ad.cirrus.com (lonswws02.ad.cirrus.com [198.90.188.42]) by ediswmail9.ad.cirrus.com (Postfix) with ESMTPSA id 65E5882024B; Tue, 24 Feb 2026 16:18:36 +0000 (UTC) From: Stefan Binding To: Mark Brown Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com, Ricardo Rivera-Matos , Stefan Binding Subject: [PATCH v2 4/4] ASoC: cs35l45: Hibernate wm_adsp on runtime suspend Date: Tue, 24 Feb 2026 16:18:08 +0000 Message-ID: <20260224161821.93365-5-sbinding@opensource.cirrus.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260224161821.93365-1-sbinding@opensource.cirrus.com> References: <20260224161821.93365-1-sbinding@opensource.cirrus.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D3:EE_|DM4PR19MB6001:EE_ X-MS-Office365-Filtering-Correlation-Id: b63b7357-f746-4d96-d33b-08de73c05dfb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|61400799027|82310400026|36860700013|376014|54012099003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Y5e6r0ufkUz15s7iSQqG5WsQnA3Brl0ccHZeBG9uw3bvt+XMztXcRdmWVxZI?= =?us-ascii?Q?+63iTDHhjIh0ShV/vvAt5Lz4Mc3y4xdXqH0aBzrwi4J9Jpu7qyDvxcOpy9EW?= =?us-ascii?Q?BPrTvuneGoaf9scpjEIM7wNC+KWK+BiYODpOMW+yvmLvJf6iqE9+3N+7cD7M?= =?us-ascii?Q?MOsQ+83tsVo1R97YjXxsdUSgYP94l1BZttISlECh7AQJlJuX4JDPtvcuXvhI?= =?us-ascii?Q?1bo6J9Gyw5L1s9Gt/59p/tZS1IEe8xw3YEP/u28ZBDjM+9lHJNKOUidXo2Q8?= =?us-ascii?Q?PQv8MT7z/SMUPi9vIa9Ytt9nSYv6TBl1MMIwxC/OxBlR4v/j6mBBh7hF7HMK?= =?us-ascii?Q?aM367k+K3NKuwfE6zJ8eHxtjeNbvKiqRQoc996gEP+XS2TwiKt6gAxDwG4HZ?= =?us-ascii?Q?qEtRD1K+XFeMibOeK7oMuiVMc3xUskGzkyqNJ3C5y/bqKHW6fEexE1uUmNOl?= =?us-ascii?Q?JBMcYRW5tfzxnRxjVtO5SvHDYTq7fH42RHntPp9p+0z9EfZpm3L/8355ATcM?= =?us-ascii?Q?fpsNZXFpY75EGAPU71pOqWGa9qsMYg45FfZ4OyEF/5kuRkgxPkE8aeSaudIZ?= =?us-ascii?Q?kC79Ddy8syBqcow3tfuIeSpCifhQBhgg4kW03/1Y0sOBqb5JJnndqwqo30XB?= =?us-ascii?Q?t8Og4W8gJ2lBMBc/82DaXWiwkcgTz2UrlliIBaTqPCkahLv5fROk9vlYyE4E?= =?us-ascii?Q?iJMgtWg43+IFyVEc60trV7GovL+Vtb/qlW8nOMG+GxEzVPDW1ivnQfbifobs?= =?us-ascii?Q?NNuvD+QWS1Vy1PK+OqU3Ne8KqucB6l7rIciEVzebMWDHvoDMBVKrQIm9IUXV?= =?us-ascii?Q?SV5t98NwpZUcQrf7hctq37UVVjvvjJxCDUOyISZr7TT4x0iehx1k6vH7ruOX?= =?us-ascii?Q?uaJMIq/jQbB+OR1OaWVBkD0xnijOjQL0qbYs0zEc4au/ywJsqotMMmoh0vi+?= =?us-ascii?Q?dcgsx//lSjFWXEKg8M+JalFjfVzUJ1T2Ik6AYQ0RMQskp6681e5wojFphPJQ?= =?us-ascii?Q?z18K2xMIjduqA9dTKlqPToOZVjD7Cu3XzdXXb0tr2R9u/dHwX81vXnURB/G0?= =?us-ascii?Q?FgqECKC2RVWlYelX8X99UrRMiQXNa5GJiKvJ15I3E3nldi+d+6uF95OcyO7s?= =?us-ascii?Q?P3on9yszggwQ8klpJPmKmdprVbcdZWdKQJ6rDRt10zCoOv6VIPJ55WS55s/B?= =?us-ascii?Q?Oh+tFO8rwd1yxFZrGyG+tSZ2jPFUi2yw1G3auDc6u5fo8heKAV10bqPK1awW?= =?us-ascii?Q?/CE7Jb0ELXd2KNyuhQWv4LDtu3XDjpOrf26fVxajCGcScu9G3fFIbEsDXLh8?= =?us-ascii?Q?+wAMjQLMnKuZE78r6qPIb25wuETLtwG32v7FWFDiT6K2pH5CtYh4oFN+oGmv?= =?us-ascii?Q?f03dvkGVzfJUEUqX/Y+aOav9tQKqn0LnBQ5kIuNLZrEhjDC7xgmnSuYi4tQM?= =?us-ascii?Q?nprpR2KZmlaaP6Rn817WjScF96RhDR1fn2FEa4WwkC2rfzxHG+vVj+DoF6K/?= =?us-ascii?Q?bF9I3CNkSeK7Wh3s1/hrkJKGHrVXOadAsg3OqShTXsbF/69g3e9UR2YQvqfn?= =?us-ascii?Q?JMJ9I0p8FI/LdQr4AJUL0Hdi9Bo0pAaDiQR15aWklnvTr8Fp0X1RM3uI9I3G?= =?us-ascii?Q?oER1oeRKS0nm3wIW79MJd2xlowvJGDEL1+v3eLA3kVYHqxblw329nVTZr0Wg?= =?us-ascii?Q?Wb6JeQ=3D=3D?= X-Forefront-Antispam-Report: CIP:84.19.233.75;CTRY:GB;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:edirelay1.ad.cirrus.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(61400799027)(82310400026)(36860700013)(376014)(54012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: iCLrq5COSPHkVQfBwEkc5Y6QVbbwiLpFcBIbZd0DwajpDAtpkZfp5JHWcDj57/GHHfGJbCeE2Hg6BjbGdDrGSdnfIGjqtxvYKyqzrGhsUnQp8PY+nKRtxPJ961B3Y2wBYq6j7RX5NUcatRmW9d3HO56gs0PaSNqSB9NdbDDkwHcHkz/qCm/ngOXdn1MSdCk5nhoF1+RW2KqoJgrBSAns91Tpt7XBCRAY7hc9FEvyhPWgWBYY7SSdcyzrwnbtGEPe2hqWS93omT21obStti7bnNYRzOiGTTxqKEZB98Kef2W+GpDgzfqhvvkZLGGNVm5kqST/cSn8/GvoHWILHP1rdKQwbE8naoCnLhho985ANzJlPJTvPxfXMstvoe1Dg/KdyBE0SMPdAgYw7HfxObEf2UDGqyxuUFk02ZgtuMUc8BnFxIWtEF9KEWPzt3Tkkd/D X-OriginatorOrg: opensource.cirrus.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2026 16:18:37.7987 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b63b7357-f746-4d96-d33b-08de73c05dfb X-MS-Exchange-CrossTenant-Id: bec09025-e5bc-40d1-a355-8e955c307de8 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bec09025-e5bc-40d1-a355-8e955c307de8;Ip=[84.19.233.75];Helo=[edirelay1.ad.cirrus.com] X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TreatMessagesAsInternal-CY4PEPF0000E9D3.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR19MB6001 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjI0MDEzNSBTYWx0ZWRfX3KvMHJO49qM0 v8lRhka+trc3Ts3DUO2RIGx34ckr7tc0AOxdNYIVaHCwZr1QYS2ArhWEnRPwqVD78y7Hbfu41DC +kGoR+WQCLaDD4SJi6x1H6JqAh2PqpkJML5JPfD644BrIGG3jJYWlAZ4k6AR6YdwSGp+04ucWDT 02hwb6bGNtlAnGnA3ad6m8kiFrgiScAb7e+6zexk4RIZ8tlQkqBr15PvqjZKVdxeAIllLTnF1hD FLBscbIhg00mzZh7MHPdN88GozPpdaIVUY946OH9tvjA6QVcIhbkc5SlWpulSs/MXeKS29sVZ/L yZW3AxfYqr/Goa43XReO7esurE+x3NLY2xsYHIkVV6vkW2nTaWC6ISYhNZ0kQGAhsJdXBBoGEHh tVF+LWkMc4RX/HGpYAOBoYo5c+UlhbmbHswmtgbQvBdAVvaI1KcHXfTrP4qr8GQ05HULbXlKMi2 D2+pKdN7cJAw7Haa/vg== X-Authority-Analysis: v=2.4 cv=Q/7fIo2a c=1 sm=1 tr=0 ts=699dcf61 cx=c_pps a=T6DPE/DVwP9kL+SBve89ug==:117 a=h1hSm8JtM9GN1ddwPAif2w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=HzLeVaNsDn8A:10 a=s63m1ICgrNkA:10 a=RWc_ulEos4gA:10 a=VkNPw1HP01LnGYTKEx00:22 a=iX4cTi3TZMoOKdANLEfx:22 a=KfkQE9S9VqCBgivYGm0O:22 a=w1d2syhTAAAA:8 a=mmtDOMPXX2ZRX6g6iDEA:9 X-Proofpoint-GUID: qSMsq49Vi-zwEh096DgPGrUPyj9YpApm X-Proofpoint-ORIG-GUID: qSMsq49Vi-zwEh096DgPGrUPyj9YpApm X-Proofpoint-Spam-Reason: safe Content-Type: text/plain; charset="utf-8" From: Ricardo Rivera-Matos When the CS35L45 driver suspends, it is put into hibernation, and the regmap goes into cache_only, but the firmware is still running, and wm_adsp is not stopped. If userspace attempts to read a firmware control, it will perform a regmap_raw_read() and this will produce an error in the kernel log. To prevent spurious errors, put the DSP into hibernation which prevents access to the hardware for the ALSA controls. Signed-off-by: Ricardo Rivera-Matos Signed-off-by: Stefan Binding --- sound/soc/codecs/cs35l45.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/soc/codecs/cs35l45.c b/sound/soc/codecs/cs35l45.c index 7aa558d6362f..a032bb23b4ac 100644 --- a/sound/soc/codecs/cs35l45.c +++ b/sound/soc/codecs/cs35l45.c @@ -984,6 +984,7 @@ static int cs35l45_runtime_suspend(struct device *dev) if (!cs35l45->dsp.preloaded || !cs35l45->dsp.cs_dsp.running) return 0; =20 + wm_adsp_hibernate(&cs35l45->dsp, true); cs35l45_enter_hibernate(cs35l45); =20 regcache_cache_only(cs35l45->regmap, true); @@ -1014,6 +1015,8 @@ static int cs35l45_runtime_resume(struct device *dev) if (ret !=3D 0) dev_warn(cs35l45->dev, "regcache_sync failed: %d\n", ret); =20 + wm_adsp_hibernate(&cs35l45->dsp, false); + /* Clear global error status */ regmap_clear_bits(cs35l45->regmap, CS35L45_ERROR_RELEASE, CS35L45_GLOBAL_= ERR_RLS_MASK); regmap_set_bits(cs35l45->regmap, CS35L45_ERROR_RELEASE, CS35L45_GLOBAL_ER= R_RLS_MASK); --=20 2.43.0