Received: by 2002:a05:6358:7058:b0:131:369:b2a3 with SMTP id 24csp9641837rwp; Thu, 20 Jul 2023 07:47:53 -0700 (PDT) X-Google-Smtp-Source: APBJJlF4yz9Jug+bE06pbevO6MorIy63kvdbi+3RO68kUY6opT1lywxJfzbieVQYlPIxmxfkXwQh X-Received: by 2002:a05:6a00:1798:b0:67f:830f:b809 with SMTP id s24-20020a056a00179800b0067f830fb809mr7913283pfg.3.1689864473074; Thu, 20 Jul 2023 07:47:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689864473; cv=none; d=google.com; s=arc-20160816; b=zvb/z1uEiAvfTGKw4qYrcKmz+WQbbh2hxYprVriuX2nCVHLUWd60W+A4cgi44ywM1m 3UXda+yojWBJ09jgXrHC+1NKnXPAu9b4Z1ExulJyxSObguwzxosXr1jX+i0tnBotMd/b 4beqKKvP6MM93df4q6nzGIPEz4Xg95ItZqbtK2Yx3gofJTEssLT5wUXdVvpyzw742DCI Jij/Y8D68BXw4E2CE5CpULpL3hrkO7p4xSvG4f0r4ZXQ7J2pvMu+OUVKq4S+LsLw+w/c uDJpkTTmg/g0B5R721OcAvAf5l0buEIFVDio3g3Hdxmq9iQJuFLRaGGR4pT17bQadDcq LV7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=EW9xH6EwUI4+VhEi1xFvO7JxFFGjIaaBEXgWEdpAp04=; fh=SlosecZATRUXmC/bbEWM8TNuSSdsEnMKt8FFeHbK2kw=; b=f5a2BmC5BluoHy6eeWFHwH3NkPw6D+asi1gdGrfZ4DNJhwwbjOUz2CXWZ7AmPQ7PUj Eo/VCRYc4CNjOFpip/xiWs67AktBdxjvSrWNDzIPNxq8vL5j8L2odNsqsEk826alJMZ+ IgxrSN9qnwwwfuXWgGybjfM38WuoeIcXykgcnqKxX9+bYhhEy0uourVY400DiOzzFAx4 GQ45/DUdDA9S13zX6wVtfJKePW0c9T4pfsd1i4pZb3SGTOBZsrdp0HVpXYtJcXtl40TQ +dq7WOMsmk8cDDfSHltRN+9EvV+r4US84K9l5o3deWJvFKtL78nytr1qJBn+22Vm/O/w MgFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cirrus.com header.s=PODMain02222019 header.b="CE/WQuhz"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cirrus.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id fh37-20020a056a00392500b0067566f7ab81si1123145pfb.158.2023.07.20.07.47.40; Thu, 20 Jul 2023 07:47:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@cirrus.com header.s=PODMain02222019 header.b="CE/WQuhz"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=cirrus.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232048AbjGTNd4 (ORCPT + 99 others); Thu, 20 Jul 2023 09:33:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52118 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232072AbjGTNde (ORCPT ); Thu, 20 Jul 2023 09:33:34 -0400 Received: from mx0b-001ae601.pphosted.com (mx0b-001ae601.pphosted.com [67.231.152.168]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E88A272A for ; Thu, 20 Jul 2023 06:33:04 -0700 (PDT) Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.17.1.22/8.17.1.22) with ESMTP id 36KAupUk002185; Thu, 20 Jul 2023 08:32:10 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cirrus.com; h= from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding:content-type; s=PODMain02222019; bh=E W9xH6EwUI4+VhEi1xFvO7JxFFGjIaaBEXgWEdpAp04=; b=CE/WQuhzd1FAsmcsx sTIOcKPgqAI61BLWn4l35syr+xP61mC/pdYdORuogKHE4EPMgYOT4ierPYqxFl+i /nsqz0xi1efiZqpEsOlOBIQu/iQFCvB5K5bqxgFfE5uy/dZeDYAPppu46VnVV7mk ALzA4aeVjVMARBahuP5TIeDfxoFjHzOB3BLSSKK50raOY/NTUq1oML19xwByXH0B RSmvcEOhO/YjpcCRh1/E1ApOl3DMrZbsxNOt4zKYo2Is4E90BbXuOnVZNHciabis gsmPSdgBw2EHb1YDGWYJOIX9KE3LtaTy4OVNziejwQOf9vWvMgs7ntfzyt+TsC2q 59ksw== Received: from ediex01.ad.cirrus.com ([84.19.233.68]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 3rus6gx5mq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 20 Jul 2023 08:32:10 -0500 (CDT) Received: from ediex02.ad.cirrus.com (198.61.84.81) by ediex01.ad.cirrus.com (198.61.84.80) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.30; Thu, 20 Jul 2023 14:32:08 +0100 Received: from ediswmail.ad.cirrus.com (198.61.86.93) by anon-ediex02.ad.cirrus.com (198.61.84.81) with Microsoft SMTP Server id 15.2.1118.30 via Frontend Transport; Thu, 20 Jul 2023 14:32:08 +0100 Received: from sbinding-cirrus-dsktp2.ad.cirrus.com (unknown [198.90.238.219]) by ediswmail.ad.cirrus.com (Postfix) with ESMTP id 83BCD475; Thu, 20 Jul 2023 13:32:08 +0000 (UTC) From: Stefan Binding To: Mark Brown , Jaroslav Kysela , Takashi Iwai CC: , , , Stefan Binding Subject: [PATCH v1 00/11] Fix support for System Suspend for CS35L41 HDA Date: Thu, 20 Jul 2023 14:31:36 +0100 Message-ID: <20230720133147.1294337-1-sbinding@opensource.cirrus.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-ORIG-GUID: L7QWUw1uIwSJqQtgQ4fIz73mWyeWFijy X-Proofpoint-GUID: L7QWUw1uIwSJqQtgQ4fIz73mWyeWFijy X-Proofpoint-Spam-Reason: safe X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There have been a couple of customer reports of intermittant issues after system resume, where sometimes the DSP firmware stops responding. Investigations into this issue show that there is a race between receiving a prepare from the HDA core, and the firmware reload which is started by the system resume. This can causes the Global Enable on the CS35L41 to be enabled during the firmware load, which can sometimes cause issues in the DSP. The existing system resume behaviour also did not resume the audio, if audio was previously playing when it was suspended. In addition, during investigation, it was found there were additional problems in the System Resume sequence, as well as the Playback sequence with External Boost, where the driver does not correctly follow its enable sequence for this mode. This can cause additional issues such as pops and clicks. This chain intends to correct the sequences for playback and system suspend/resume so that the driver: obeys the external boost enable sequence; resumes audio on system resume; and avoids the race condition on firmware load and playback during system resume. Stefan Binding (11): ALSA: cs35l41: Use mbox command to enable speaker output for external boost ALSA: hda: cs35l41: Check mailbox status of pause command after firmware load ALSA: hda: cs35l41: Ensure we correctly re-sync regmap before system suspending. ALSA: hda: cs35l41: Ensure we pass up any errors during system suspend. ALSA: hda: cs35l41: Move Play and Pause into separate functions ALSA: hda: hda_component: Add pre and post playback hooks to hda_component ALSA: hda: cs35l41: Use pre and post playback hooks ALSA: hda: cs35l41: Rework System Suspend to ensure correct call separation ALSA: hda/realtek: Support pre-/post- playback hooks for cs35l41 ALSA: hda: cs35l41: Add device_link between HDA and cs35l41_hda ALSA: hda: cs35l41: Ensure amp is only unmuted during playback include/sound/cs35l41.h | 5 +- sound/pci/hda/cs35l41_hda.c | 288 +++++++++++++++++++++++++-------- sound/pci/hda/hda_component.h | 2 + sound/pci/hda/patch_realtek.c | 10 +- sound/soc/codecs/cs35l41-lib.c | 118 ++++++++++++-- sound/soc/codecs/cs35l41.c | 18 +-- 6 files changed, 343 insertions(+), 98 deletions(-) -- 2.34.1