From patchwork Thu May 25 16:26:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Fitzgerald X-Patchwork-Id: 9856 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp503625vqr; Thu, 25 May 2023 09:37:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4QQ/Bn0m+3WgvZtexz3bqkigNmYu2tMD0yTdGNKeQ6zFMRPE7L3aawZqR5Sr/T2qlerh/S X-Received: by 2002:a05:6a20:42a3:b0:10a:ee1b:fdc4 with SMTP id o35-20020a056a2042a300b0010aee1bfdc4mr20114262pzj.47.1685032627595; Thu, 25 May 2023 09:37:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685032627; cv=none; d=google.com; s=arc-20160816; b=oyuWXkxsboNQjccQR+Ny1fyTAviX2xt87xuCqSfzDhHvv2JuIBp0Ds7W1DsnwYoF7A 8afcodTb+NEJJaHRPYCS1iq+zHqf3tNvJzhVjKZYJwJxcS8O+E05CntnI0+4YYJi5qAf K5Z5RhqxUQ54Gx8gSyR74WwTOG0qVl7iioFNKLzR6OC5nLyyvAMm7+Fkd5pA/UOjUUeN vJnF4n1a+TckMlLhTg76KWczXF0N0qWIGcAAI87NSO2cDEAKa1tC4BSCIzABAovk7y17 p+rTjtRct9B+qCibxedNiYgo2q73xt2uOUSEynCQR8vYQY/HcKxunMcY8FcXLM4795fD 35Sw== 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=C+T9AdQHTyKPLCfGUavCqh8ysrmUdzqZXnPiTNqPsGs=; b=wSTgXV+9gkMkK64UfRcGkpz/A+cZa/aGqx3kHKtgps1hov723jb3vVDJRMgy+gaZVm E71HnAYOcT0VcwS2lkU55ss+kC24yLYDAXnceHmww4LPX040tHetwGqBCfO3XobJmTiS ShUiVIcl2esWIEsUkTviKiWvbroedZD80GCfbmbmEqR4P0ZVi62LNUtCGQRISL7D9kR8 aH3Ajye8TY5NM6+tZEP8ooTAAbSxVEhxHpy0yuHByjVzGmcPzIw8+xNAt7IDTT/Mh1zR S7xYX+LELobtplEp+nHJ/ormAQpD1jqkfFjiiut8mGjYOe1uS6rDPuikrpoBIfV6d3GN rVbg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cirrus.com header.s=PODMain02222019 header.b=ob09asmR; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h62-20020a638341000000b0053ef7d2f807si113765pge.462.2023.05.25.09.36.55; Thu, 25 May 2023 09:37:07 -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=ob09asmR; 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 S240269AbjEYQ1F (ORCPT + 99 others); Thu, 25 May 2023 12:27:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37320 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240089AbjEYQ0o (ORCPT ); Thu, 25 May 2023 12:26:44 -0400 Received: from mx0b-001ae601.pphosted.com (mx0a-001ae601.pphosted.com [67.231.149.25]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 993AB189 for ; Thu, 25 May 2023 09:26:43 -0700 (PDT) Received: from pps.filterd (m0077473.ppops.net [127.0.0.1]) by mx0a-001ae601.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34PEDsKd007206; Thu, 25 May 2023 11:26:24 -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=C+T9AdQHTyKPLCfGUavCqh8ysrmUdzqZXnPiTNqPsGs=; b=ob09asmRQy4okE/4HkihIz9be7c24JdvzHhM4U6fWNYDh/WAupQpDUp5pYbTtrhzINvz e47B1iZ048v3xPTfcnFAioouLfLqBSirJcesnOAY5bmHKYpC7lcBedHWAIx5qwKjNfSd r7K4JRjuWARaZIuP6u2V6TAadfOKY3sFN9G10zfMeWSmD0MTImmlycJrSKhIL2/FLJfq 2zIEaWGSOi5y8rhFu1fAyrlzODUFMCBQwiPjKW+sSENgJ7NetjfY4r4ARkjtpoTEBoDL /z4AYV5vPunjxmT0JxSbIj9sSJL0zPiuF7W97QkvDIWGzhj2irHPjjbr3llcVOp3/8iV 6g== Received: from ediex02.ad.cirrus.com ([84.19.233.68]) by mx0a-001ae601.pphosted.com (PPS) with ESMTPS id 3qsde8j0yh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 25 May 2023 11:26:24 -0500 Received: from ediex02.ad.cirrus.com (198.61.84.81) by ediex02.ad.cirrus.com (198.61.84.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Thu, 25 May 2023 11:26:22 -0500 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.26 via Frontend Transport; Thu, 25 May 2023 11:26:22 -0500 Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.65.166]) by ediswmail.ad.cirrus.com (Postfix) with ESMTP id 1805A11D4; Thu, 25 May 2023 16:26:22 +0000 (UTC) From: Richard Fitzgerald To: , , CC: , , , Richard Fitzgerald Subject: [PATCH v2 00/12] ALSA: hda: Adding support for CS35L56 on HDA systems Date: Thu, 25 May 2023 17:26:06 +0100 Message-ID: <20230525162618.20146-1-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: pZgHlPgAosz1ZHhc11e-jhpuVJDPpy8c X-Proofpoint-GUID: pZgHlPgAosz1ZHhc11e-jhpuVJDPpy8c X-Proofpoint-Spam-Reason: safe X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766884772584255386?= X-GMAIL-MSGID: =?utf-8?q?1766884772584255386?= This set of patches adds support for using the CS35L56 boosted smart amplifier on HDA systems. In these systems the CS35L56 audio is routed through a HDA-to-I2S bridge codec. This doesn't include the changes to the Realtek driver to actually hook up the CS35L56 driver, because we don't yet have the QUIRK IDs to associate it with. But we want to publish the driver now so that it is available for bringing up hardware with the CS35L56. The first 9 patches are moving code out of the ASoC driver and into the shared library so that it can be shared with the HDA driver. Patch #10 fixes missing #includes in the HDA headers so that the CS35L56 driver doesn't have to #include headers that it doesn't use. Finally, #11 and #12 actually add the support for CS35L56 on HDA. CHANGES SINCE V1 Squash the fix for passing the correct pointer to cs35l56_irq() into patch #1, where the pointer change to cs35l56_irq() was made. Richard Fitzgerald (4): ASoC: cs35l56: Move runtime suspend/resume to shared library ASoC: cs35l56: Move cs_dsp init into shared library ASoC: cs35l56: Move part of cs35l56_init() to shared library ALSA: hda: Fix missing header dependencies Simon Trimmer (8): ASoC: cs35l56: Move shared data into a common data structure ASoC: cs35l56: Make cs35l56_system_reset() code more generic ASoC: cs35l56: Convert utility functions to use common data structure ASoC: cs35l56: Move utility functions to shared file ASoC: cs35l56: Make common function for control port wait ASoC: cs35l56: Make a common function to shutdown the DSP ALSA: hda: Add mute_hook to hda_component ALSA: hda/cs35l56: Add driver for Cirrus Logic CS35L56 amplifier include/sound/cs35l56.h | 29 +- sound/pci/hda/Kconfig | 31 + sound/pci/hda/Makefile | 6 + sound/pci/hda/cs35l56_hda.c | 995 ++++++++++++++++++++++++++++++ sound/pci/hda/cs35l56_hda.h | 48 ++ sound/pci/hda/cs35l56_hda_i2c.c | 69 +++ sound/pci/hda/cs35l56_hda_spi.c | 68 ++ sound/pci/hda/hda_auto_parser.h | 2 + sound/pci/hda/hda_component.h | 1 + sound/pci/hda/hda_generic.h | 3 + sound/soc/codecs/cs35l56-i2c.c | 14 +- sound/soc/codecs/cs35l56-sdw.c | 72 +-- sound/soc/codecs/cs35l56-shared.c | 459 +++++++++++++- sound/soc/codecs/cs35l56-spi.c | 10 +- sound/soc/codecs/cs35l56.c | 648 ++++--------------- sound/soc/codecs/cs35l56.h | 15 +- 16 files changed, 1878 insertions(+), 592 deletions(-) create mode 100644 sound/pci/hda/cs35l56_hda.c create mode 100644 sound/pci/hda/cs35l56_hda.h create mode 100644 sound/pci/hda/cs35l56_hda_i2c.c create mode 100644 sound/pci/hda/cs35l56_hda_spi.c