From patchwork Thu May 25 15:06:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Fitzgerald X-Patchwork-Id: 9849 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp450786vqr; Thu, 25 May 2023 08:19:27 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4SgdAQu7iDpvNAjzJQ3/LVf1khsasWA7H5N6bexBQYTg3Cu7wA3WukLSF2GU2o5Iy7lZuO X-Received: by 2002:a05:6a00:14d0:b0:639:a518:3842 with SMTP id w16-20020a056a0014d000b00639a5183842mr10117843pfu.7.1685027967064; Thu, 25 May 2023 08:19:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685027967; cv=none; d=google.com; s=arc-20160816; b=ogoB1Ytp5WItW8burdaID5wJ21zk6lf9Au0THYCjJPI1UbHsUhlCo+p+3fXDpr6lkb 7zbYJwqMfZ8ObTu/WG5zQX51cThTf9NGvU8bJabluSTrn0WJf7IbPBnROWpGNskeomb2 Cduq3nIMnOJra96rXcWNTYNpcTT9guouB89PsKVvKIwl8Od8TyYQBcmQSl5ZPeaj+YJI WhNLPGtQveFh4nL0dH8qrUsDXWmTtxjlca3FZ4WMs87bG2crbwE9Tf47ofTWaHcSt8Ik FfKp0/oBvx7Xiw1/Zgr2Bq+bmoei3dJ5OhacApZq07z/0okMd7pygvoPpcuJeY3jxMqb +LrQ== 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=b1GGmFdgnxV0j14d3bCa6tyRgRpGUbNruAmTEOSH86Y=; b=bVVUhluVS4tAW/MDvBBux0paeolGocwRUJ9dUMkHJ8AN81+v0rhBwXQIEwxulgeUvb XLCisaN2C6hDNPuFLWG2KVom2omMcgTgb9aDQ5sjBgbp+ya8JJpbcTo36ESjUj0wMFKa mir0vPxgVvf/j95K2lh1Dfo8ylZeIsFixfsLkdVKrlAitq+m90IOSzNgovmYmsig1lzz AfOTc76OJ2XQ7OcWHKO6eGYTb0ogUPFXGyArjoLA6yYxnCwZF1fOQ87OW0YOR5pM31k+ Botheya2R19HGaNqrKZV27L1D++xfBR7GEdvoU5+sVQ1Mftukskqi0rrnEOy94zQ79Il BPwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cirrus.com header.s=PODMain02222019 header.b=EvT2bDsj; 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 79-20020a630452000000b00521075bf591si1346605pge.534.2023.05.25.08.19.14; Thu, 25 May 2023 08:19:27 -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=EvT2bDsj; 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 S241545AbjEYPHn (ORCPT + 99 others); Thu, 25 May 2023 11:07:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47000 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241328AbjEYPHb (ORCPT ); Thu, 25 May 2023 11:07:31 -0400 Received: from mx0b-001ae601.pphosted.com (mx0b-001ae601.pphosted.com [67.231.152.168]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D3A8218D for ; Thu, 25 May 2023 08:07:29 -0700 (PDT) Received: from pps.filterd (m0077474.ppops.net [127.0.0.1]) by mx0b-001ae601.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34PEE1Bp025343; Thu, 25 May 2023 10:07:04 -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=b1GGmFdgnxV0j14d3bCa6tyRgRpGUbNruAmTEOSH86Y=; b=EvT2bDsjbR/a9InfY6zCZAmzDkVYa9rwI/Q0ddDxENbPqisPKSUlU9T/nR20Ndpt6VoO altm9bs0EipBEjLDp6nxN3wWBX98MOAl5+jQZEg9OnzkRVwtt+qFfsvYepbPZOUSNAGv n2roxA9iokXyl6CoIU4HhF5PsfEcGINFX/PoTcASEjreUGaIsCZsDyUTjI8G+4l2dqsV RTRJ7dH6yUIz7AKvqSUPK3EEmqB9xHipNJmmh902lCtrXh0oT35vw0u+l8wClfLXR8sx VieqOFo1Nb+H8Irrje3LaCyWy4/yrYel/yVbu6yTBiMe8XjRROS2LSuPh+8wJzjGBZ+Q sA== Received: from ediex01.ad.cirrus.com ([84.19.233.68]) by mx0b-001ae601.pphosted.com (PPS) with ESMTPS id 3qptmm70m4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 25 May 2023 10:07:03 -0500 Received: from ediex01.ad.cirrus.com (198.61.84.80) 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.26; Thu, 25 May 2023 10:07:01 -0500 Received: from ediswmail.ad.cirrus.com (198.61.86.93) by ediex01.ad.cirrus.com (198.61.84.80) with Microsoft SMTP Server id 15.2.1118.26 via Frontend Transport; Thu, 25 May 2023 10:07:01 -0500 Received: from EDIN4L06LR3.ad.cirrus.com (EDIN4L06LR3.ad.cirrus.com [198.61.65.166]) by ediswmail.ad.cirrus.com (Postfix) with ESMTP id 009A611D4; Thu, 25 May 2023 15:07:00 +0000 (UTC) From: Richard Fitzgerald To: , , CC: , , , Richard Fitzgerald Subject: [PATCH 00/13] ALSA: hda: Adding support for CS35L56 on HDA systems Date: Thu, 25 May 2023 16:06:46 +0100 Message-ID: <20230525150659.25409-1-rf@opensource.cirrus.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: 27W9qxTkt4LdEc7klTNrMyieOLb6UDL7 X-Proofpoint-GUID: 27W9qxTkt4LdEc7klTNrMyieOLb6UDL7 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?1766879885680540797?= X-GMAIL-MSGID: =?utf-8?q?1766879885680540797?= 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 10 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 #11 fixes missing #includes in the HDA headers so that the CS35L56 driver doesn't have to #include headers that it doesn't use. Finally, #12 and #13 actually add the support for CS35L56 on HDA. Richard Fitzgerald (5): 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 ASoC: cs35l56: Pass correct pointer to cs35l56_irq() 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 Acked-by: Mark Brown