From patchwork Wed Oct 6 16:18:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brent Lu X-Patchwork-Id: 12539729 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EADD9C433F5 for ; Wed, 6 Oct 2021 16:25:12 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 61D1F610E5 for ; Wed, 6 Oct 2021 16:25:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 61D1F610E5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id CE0AF83A; Wed, 6 Oct 2021 18:24:20 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz CE0AF83A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1633537510; bh=M9pBZ2i3661yZ6JJHEIP+KXk6XRYietBl0/XSFsupFw=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=GESgOwyopuJzXFphR5X4YrytK51o0fh/k9dFVmb9JMwG7eLBNsEQ4FU3+U8MiXUHE kyp0aHQNIec2eUaF+cY1ddQ3057YlbkTAKH3aU8IbeJsI7UKsJx0ViP3D8K3GOr1Pi 5Akx1N8qOt2DYdJ8wUA/bj1WH8bGV19PT/hopxZA= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 64E5CF8025C; Wed, 6 Oct 2021 18:24:20 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id D4FA7F802D2; Wed, 6 Oct 2021 18:24:18 +0200 (CEST) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id A2103F800FE for ; Wed, 6 Oct 2021 18:24:10 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz A2103F800FE X-IronPort-AV: E=McAfee;i="6200,9189,10129"; a="249316638" X-IronPort-AV: E=Sophos;i="5.85,352,1624345200"; d="scan'208";a="249316638" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 09:20:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,352,1624345200"; d="scan'208";a="657046626" Received: from brentlu-brix.itwn.intel.com ([10.5.253.56]) by orsmga005.jf.intel.com with ESMTP; 06 Oct 2021 09:20:05 -0700 From: Brent Lu To: alsa-devel@alsa-project.org Subject: [PATCH 1/3] ASoC: soc-acpi: add alternative id field for machine driver matching Date: Thu, 7 Oct 2021 00:18:03 +0800 Message-Id: <20211006161805.938950-2-brent.lu@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211006161805.938950-1-brent.lu@intel.com> References: <20211006161805.938950-1-brent.lu@intel.com> MIME-Version: 1.0 Cc: Guennadi Liakhovetski , Cezary Rojewski , Jie Yang , Rander Wang , Mac Chiang , Gongjun Song , Bard Liao , Takashi Iwai , Pierre-Louis Bossart , Vamshi Krishna Gopal , Yong Zhi , Charles Keepax , Hans de Goede , Mark Brown , Paul Olaru , Brent Lu , Libin Yang , Malik_Hsu , Kai Vehmanen , Liam Girdwood , linux-kernel@vger.kernel.org, Curtis Malainey X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Current design to support second headphone driver in the same machine driver is to duplicate the entries in snd_soc_acpi_mach array and board configs in machine driver. We can avoid this by adding an id_alt field in snd_soc_acpi_mach structure to specify alternative ACPI HIDs for machine driver enumeration and leave the codec type detection to machine driver if necessary. Signed-off-by: Brent Lu --- include/sound/soc-acpi.h | 2 ++ sound/soc/soc-acpi.c | 21 ++++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/include/sound/soc-acpi.h b/include/sound/soc-acpi.h index 2f3fa385c092..fcf6bae9f9d7 100644 --- a/include/sound/soc-acpi.h +++ b/include/sound/soc-acpi.h @@ -129,6 +129,7 @@ struct snd_soc_acpi_link_adr { * all firmware/topology related fields. * * @id: ACPI ID (usually the codec's) used to find a matching machine driver. + * @id_alt: array of ACPI IDs used as an alternative of id field. * @link_mask: describes required board layout, e.g. for SoundWire. * @links: array of link _ADR descriptors, null terminated. * @drv_name: machine driver name @@ -146,6 +147,7 @@ struct snd_soc_acpi_link_adr { /* Descriptor for SST ASoC machine driver */ struct snd_soc_acpi_mach { const u8 id[ACPI_ID_LEN]; + struct snd_soc_acpi_codecs *id_alt; const u32 link_mask; const struct snd_soc_acpi_link_adr *links; const char *drv_name; diff --git a/sound/soc/soc-acpi.c b/sound/soc/soc-acpi.c index 395229bf5c51..ab67d640c20f 100644 --- a/sound/soc/soc-acpi.c +++ b/sound/soc/soc-acpi.c @@ -8,6 +8,25 @@ #include #include +static bool snd_soc_acpi_id_present(struct snd_soc_acpi_mach *machine) +{ + struct snd_soc_acpi_codecs *id_alt = machine->id_alt; + int i; + + if (acpi_dev_present(machine->id, NULL, -1)) + return true; + + if (id_alt == NULL) + return false; + + for (i = 0; i < id_alt->num_codecs; i++) { + if (acpi_dev_present(id_alt->codecs[i], NULL, -1)) + return true; + } + + return false; +} + struct snd_soc_acpi_mach * snd_soc_acpi_find_machine(struct snd_soc_acpi_mach *machines) { @@ -15,7 +34,7 @@ snd_soc_acpi_find_machine(struct snd_soc_acpi_mach *machines) struct snd_soc_acpi_mach *mach_alt; for (mach = machines; mach->id[0]; mach++) { - if (acpi_dev_present(mach->id, NULL, -1)) { + if (snd_soc_acpi_id_present(mach) != false) { if (mach->machine_quirk) { mach_alt = mach->machine_quirk(mach); if (!mach_alt) From patchwork Wed Oct 6 16:18:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brent Lu X-Patchwork-Id: 12539727 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6A897C433F5 for ; Wed, 6 Oct 2021 16:23:21 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B303E610E5 for ; Wed, 6 Oct 2021 16:23:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B303E610E5 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 2D92283A; Wed, 6 Oct 2021 18:22:29 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 2D92283A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1633537399; bh=yfAZETqtMG9ONAxL4W+kjIUpr/JKOUoj/Lwtt8+AnIk=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=Ts9drj5lT54zaJr4KRcqlUmizMvdFEplp5pbdJDcy+OV3kM7QTDKrFmDWvikIKGZJ yRwvyVtEnIbaX+motthszUszJWzIE2yados2ult8yiLthqu3thLtfuKjDUAtKIv/Os X/MKcniV4MvnAKGwgANZdyJ7c5qoEcoz9By/m0FA= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id C39CAF80229; Wed, 6 Oct 2021 18:22:28 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id D4F91F80240; Wed, 6 Oct 2021 18:22:26 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id D5FD2F800FE for ; Wed, 6 Oct 2021 18:22:18 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz D5FD2F800FE X-IronPort-AV: E=McAfee;i="6200,9189,10129"; a="223430382" X-IronPort-AV: E=Sophos;i="5.85,352,1624345200"; d="scan'208";a="223430382" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 09:20:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,352,1624345200"; d="scan'208";a="657046681" Received: from brentlu-brix.itwn.intel.com ([10.5.253.56]) by orsmga005.jf.intel.com with ESMTP; 06 Oct 2021 09:20:12 -0700 From: Brent Lu To: alsa-devel@alsa-project.org Subject: [PATCH 2/3] ASoC: Intel: sof_rt5682: detect codec variant in probe function Date: Thu, 7 Oct 2021 00:18:04 +0800 Message-Id: <20211006161805.938950-3-brent.lu@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211006161805.938950-1-brent.lu@intel.com> References: <20211006161805.938950-1-brent.lu@intel.com> MIME-Version: 1.0 Cc: Guennadi Liakhovetski , Cezary Rojewski , Jie Yang , Rander Wang , Mac Chiang , Gongjun Song , Bard Liao , Takashi Iwai , Pierre-Louis Bossart , Vamshi Krishna Gopal , Yong Zhi , Charles Keepax , Hans de Goede , Mark Brown , Paul Olaru , Brent Lu , Libin Yang , Malik_Hsu , Kai Vehmanen , Liam Girdwood , linux-kernel@vger.kernel.org, Curtis Malainey X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Detect whether the headphone codec is ALC5682I-VS or not in probe function so we don't need to duplicate all board configs for this new variant. Signed-off-by: Brent Lu --- sound/soc/intel/boards/sof_rt5682.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c index 613662eedd0d..9f1e5ef11b13 100644 --- a/sound/soc/intel/boards/sof_rt5682.c +++ b/sound/soc/intel/boards/sof_rt5682.c @@ -864,6 +864,10 @@ static int sof_audio_probe(struct platform_device *pdev) if ((sof_rt5682_quirk & SOF_SPEAKER_AMP_PRESENT) && !mach->quirk_data) sof_rt5682_quirk &= ~SOF_SPEAKER_AMP_PRESENT; + /* Detect the headset codec variant ALC5682I-VS */ + if (acpi_dev_present("RTL5682", NULL, -1)) + sof_rt5682_quirk |= SOF_RT5682S_HEADPHONE_CODEC_PRESENT; + if (soc_intel_is_byt() || soc_intel_is_cht()) { is_legacy_cpu = 1; dmic_be_num = 0; From patchwork Wed Oct 6 16:18:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Brent Lu X-Patchwork-Id: 12539723 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DA1EAC433EF for ; Wed, 6 Oct 2021 16:21:56 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5C17460F22 for ; Wed, 6 Oct 2021 16:21:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5C17460F22 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id BCC62166D; Wed, 6 Oct 2021 18:21:04 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz BCC62166D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1633537314; bh=MbfX5Z+HW0i2xgSwMjwFSVPSP5jTaisDpuS5sS3gIrc=; h=From:To:Subject:Date:In-Reply-To:References:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=ePSoXxYR/wmWAFbbElRjmqOdrvOgU4nNh+/7HR0Sg4dUB2DqghqlTnxfONSxqBxbt JPd9VQTxFTRM+95gEf67EzK0mD7ZdFYOr9anrhJ20zoWVim73PfGy6/WfkL30iQpyI A3kWwFLxY9hb/NMpfs/Ez7lDgTOzDyu3AiDRZpaQ= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 07FD7F8032D; Wed, 6 Oct 2021 18:20:49 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id B6CE7F8032D; Wed, 6 Oct 2021 18:20:47 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 5DEBDF8032D for ; Wed, 6 Oct 2021 18:20:38 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 5DEBDF8032D X-IronPort-AV: E=McAfee;i="6200,9189,10129"; a="225982560" X-IronPort-AV: E=Sophos;i="5.85,352,1624345200"; d="scan'208";a="225982560" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2021 09:20:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.85,352,1624345200"; d="scan'208";a="657046708" Received: from brentlu-brix.itwn.intel.com ([10.5.253.56]) by orsmga005.jf.intel.com with ESMTP; 06 Oct 2021 09:20:17 -0700 From: Brent Lu To: alsa-devel@alsa-project.org Subject: [PATCH 3/3] ASoC: Intel: sof_rt5682: use id_alt to enumerate rt5682s Date: Thu, 7 Oct 2021 00:18:05 +0800 Message-Id: <20211006161805.938950-4-brent.lu@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211006161805.938950-1-brent.lu@intel.com> References: <20211006161805.938950-1-brent.lu@intel.com> MIME-Version: 1.0 Cc: Guennadi Liakhovetski , Cezary Rojewski , Jie Yang , Rander Wang , Mac Chiang , Gongjun Song , Bard Liao , Takashi Iwai , Pierre-Louis Bossart , Vamshi Krishna Gopal , Yong Zhi , Charles Keepax , Hans de Goede , Mark Brown , Paul Olaru , Brent Lu , Libin Yang , Malik_Hsu , Kai Vehmanen , Liam Girdwood , linux-kernel@vger.kernel.org, Curtis Malainey X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Use the id_alt field to enumerate rt5682s headphone codec and remove redundant entries in tables. Signed-off-by: Brent Lu --- sound/soc/intel/boards/sof_rt5682.c | 30 ----------------- .../intel/common/soc-acpi-intel-adl-match.c | 8 +++++ .../intel/common/soc-acpi-intel-byt-match.c | 6 ++++ .../intel/common/soc-acpi-intel-cht-match.c | 6 ++++ .../intel/common/soc-acpi-intel-cml-match.c | 8 +++++ .../intel/common/soc-acpi-intel-icl-match.c | 6 ++++ .../intel/common/soc-acpi-intel-jsl-match.c | 32 +++++-------------- .../intel/common/soc-acpi-intel-tgl-match.c | 8 +++++ 8 files changed, 50 insertions(+), 54 deletions(-) diff --git a/sound/soc/intel/boards/sof_rt5682.c b/sound/soc/intel/boards/sof_rt5682.c index 9f1e5ef11b13..9819345cd84c 100644 --- a/sound/soc/intel/boards/sof_rt5682.c +++ b/sound/soc/intel/boards/sof_rt5682.c @@ -1050,36 +1050,6 @@ static const struct platform_device_id board_ids[] = { SOF_RT5682_SSP_AMP(2) | SOF_RT5682_NUM_HDMIDEV(4)), }, - { - .name = "jsl_rt5682s_rt1015", - .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | - SOF_RT5682_MCLK_24MHZ | - SOF_RT5682_SSP_CODEC(0) | - SOF_RT5682S_HEADPHONE_CODEC_PRESENT | - SOF_SPEAKER_AMP_PRESENT | - SOF_RT1015_SPEAKER_AMP_PRESENT | - SOF_RT5682_SSP_AMP(1)), - }, - { - .name = "jsl_rt5682s_rt1015p", - .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | - SOF_RT5682_MCLK_24MHZ | - SOF_RT5682_SSP_CODEC(0) | - SOF_RT5682S_HEADPHONE_CODEC_PRESENT | - SOF_SPEAKER_AMP_PRESENT | - SOF_RT1015P_SPEAKER_AMP_PRESENT | - SOF_RT5682_SSP_AMP(1)), - }, - { - .name = "jsl_rt5682s_mx98360", - .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | - SOF_RT5682_MCLK_24MHZ | - SOF_RT5682_SSP_CODEC(0) | - SOF_RT5682S_HEADPHONE_CODEC_PRESENT | - SOF_SPEAKER_AMP_PRESENT | - SOF_MAX98360A_SPEAKER_AMP_PRESENT | - SOF_RT5682_SSP_AMP(1)), - }, { .name = "adl_mx98360_rt5682", .driver_data = (kernel_ulong_t)(SOF_RT5682_MCLK_EN | diff --git a/sound/soc/intel/common/soc-acpi-intel-adl-match.c b/sound/soc/intel/common/soc-acpi-intel-adl-match.c index f5b21a95d222..9478e35bed38 100644 --- a/sound/soc/intel/common/soc-acpi-intel-adl-match.c +++ b/sound/soc/intel/common/soc-acpi-intel-adl-match.c @@ -285,9 +285,15 @@ static const struct snd_soc_acpi_codecs adl_max98360a_amp = { .codecs = {"MX98360A"} }; +static struct snd_soc_acpi_codecs adl_rt5682s_hp = { + .num_codecs = 1, + .codecs = {"RTL5682"} +}; + struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = { { .id = "10EC5682", + .id_alt = &adl_rt5682s_hp, .drv_name = "adl_mx98373_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &adl_max98373_amp, @@ -296,6 +302,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = { }, { .id = "10EC5682", + .id_alt = &adl_rt5682s_hp, .drv_name = "adl_mx98357_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &adl_max98357a_amp, @@ -304,6 +311,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[] = { }, { .id = "10EC5682", + .id_alt = &adl_rt5682s_hp, .drv_name = "adl_mx98360_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &adl_max98360a_amp, diff --git a/sound/soc/intel/common/soc-acpi-intel-byt-match.c b/sound/soc/intel/common/soc-acpi-intel-byt-match.c index 510a5f38b7f1..8c66223d7401 100644 --- a/sound/soc/intel/common/soc-acpi-intel-byt-match.c +++ b/sound/soc/intel/common/soc-acpi-intel-byt-match.c @@ -120,6 +120,11 @@ static struct snd_soc_acpi_mach *byt_quirk(void *arg) } } +static struct snd_soc_acpi_codecs rt5682s_hp = { + .num_codecs = 1, + .codecs = {"RTL5682"} +}; + struct snd_soc_acpi_mach snd_soc_acpi_intel_baytrail_machines[] = { { .id = "10EC5640", @@ -196,6 +201,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_baytrail_machines[] = { }, { .id = "10EC5682", + .id_alt = &rt5682s_hp, .drv_name = "sof_rt5682", .sof_fw_filename = "sof-byt.ri", .sof_tplg_filename = "sof-byt-rt5682.tplg", diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c index 227424236fd5..6e52110897e9 100644 --- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c +++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c @@ -51,6 +51,11 @@ static struct snd_soc_acpi_mach *cht_quirk(void *arg) return mach; } +static struct snd_soc_acpi_codecs rt5682s_hp = { + .num_codecs = 1, + .codecs = {"RTL5682"} +}; + /* Cherryview-based platforms: CherryTrail and Braswell */ struct snd_soc_acpi_mach snd_soc_acpi_intel_cherrytrail_machines[] = { { @@ -153,6 +158,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cherrytrail_machines[] = { }, { .id = "10EC5682", + .id_alt = &rt5682s_hp, .drv_name = "sof_rt5682", .sof_fw_filename = "sof-cht.ri", .sof_tplg_filename = "sof-cht-rt5682.tplg", diff --git a/sound/soc/intel/common/soc-acpi-intel-cml-match.c b/sound/soc/intel/common/soc-acpi-intel-cml-match.c index b591c6fd13fd..ac93d77f47ff 100644 --- a/sound/soc/intel/common/soc-acpi-intel-cml-match.c +++ b/sound/soc/intel/common/soc-acpi-intel-cml-match.c @@ -29,6 +29,11 @@ static struct snd_soc_acpi_codecs max98390_spk_codecs = { .codecs = {"MX98390"} }; +static struct snd_soc_acpi_codecs rt5682s_hp = { + .num_codecs = 1, + .codecs = {"RTL5682"} +}; + /* * The order of the three entries with .id = "10EC5682" matters * here, because DSDT tables expose an ACPI HID for the MAX98357A @@ -45,6 +50,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cml_machines[] = { }, { .id = "10EC5682", + .id_alt = &rt5682s_hp, .drv_name = "cml_rt1015_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &rt1015_spk_codecs, @@ -53,6 +59,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cml_machines[] = { }, { .id = "10EC5682", + .id_alt = &rt5682s_hp, .drv_name = "sof_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &max98357a_spk_codecs, @@ -61,6 +68,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_cml_machines[] = { }, { .id = "10EC5682", + .id_alt = &rt5682s_hp, .drv_name = "sof_rt5682", .sof_fw_filename = "sof-cml.ri", .sof_tplg_filename = "sof-cml-rt5682.tplg", diff --git a/sound/soc/intel/common/soc-acpi-intel-icl-match.c b/sound/soc/intel/common/soc-acpi-intel-icl-match.c index 768ed538c4ea..14430b969e6c 100644 --- a/sound/soc/intel/common/soc-acpi-intel-icl-match.c +++ b/sound/soc/intel/common/soc-acpi-intel-icl-match.c @@ -14,6 +14,11 @@ static struct skl_machine_pdata icl_pdata = { .use_tplg_pcm = true, }; +static struct snd_soc_acpi_codecs rt5682s_hp = { + .num_codecs = 1, + .codecs = {"RTL5682"} +}; + struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_machines[] = { { .id = "INT34C2", @@ -25,6 +30,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_machines[] = { }, { .id = "10EC5682", + .id_alt = &rt5682s_hp, .drv_name = "sof_rt5682", .sof_fw_filename = "sof-icl.ri", .sof_tplg_filename = "sof-icl-rt5682.tplg", diff --git a/sound/soc/intel/common/soc-acpi-intel-jsl-match.c b/sound/soc/intel/common/soc-acpi-intel-jsl-match.c index 20fd9dcc74af..4ffd91fd6862 100644 --- a/sound/soc/intel/common/soc-acpi-intel-jsl-match.c +++ b/sound/soc/intel/common/soc-acpi-intel-jsl-match.c @@ -29,6 +29,11 @@ static struct snd_soc_acpi_codecs mx98360a_spk = { .codecs = {"MX98360A"} }; +static struct snd_soc_acpi_codecs rt5682s_hp = { + .num_codecs = 1, + .codecs = {"RTL5682"} +}; + /* * When adding new entry to the snd_soc_acpi_intel_jsl_machines array, * use .quirk_data member to distinguish different machine driver, @@ -51,6 +56,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[] = { }, { .id = "10EC5682", + .id_alt = &rt5682s_hp, .drv_name = "jsl_rt5682_rt1015", .sof_fw_filename = "sof-jsl.ri", .machine_quirk = snd_soc_acpi_codec_list, @@ -59,6 +65,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[] = { }, { .id = "10EC5682", + .id_alt = &rt5682s_hp, .drv_name = "jsl_rt5682_rt1015p", .sof_fw_filename = "sof-jsl.ri", .machine_quirk = snd_soc_acpi_codec_list, @@ -67,6 +74,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[] = { }, { .id = "10EC5682", + .id_alt = &rt5682s_hp, .drv_name = "jsl_rt5682_mx98360", .sof_fw_filename = "sof-jsl.ri", .machine_quirk = snd_soc_acpi_codec_list, @@ -81,30 +89,6 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[] = { .quirk_data = &mx98360a_spk, .sof_tplg_filename = "sof-jsl-cs42l42-mx98360a.tplg", }, - { - .id = "RTL5682", - .drv_name = "jsl_rt5682s_rt1015", - .sof_fw_filename = "sof-jsl.ri", - .machine_quirk = snd_soc_acpi_codec_list, - .quirk_data = &rt1015_spk, - .sof_tplg_filename = "sof-jsl-rt5682-rt1015.tplg", - }, - { - .id = "RTL5682", - .drv_name = "jsl_rt5682s_rt1015p", - .sof_fw_filename = "sof-jsl.ri", - .machine_quirk = snd_soc_acpi_codec_list, - .quirk_data = &rt1015p_spk, - .sof_tplg_filename = "sof-jsl-rt5682-rt1015.tplg", - }, - { - .id = "RTL5682", - .drv_name = "jsl_rt5682s_mx98360", - .sof_fw_filename = "sof-jsl.ri", - .machine_quirk = snd_soc_acpi_codec_list, - .quirk_data = &mx98360a_spk, - .sof_tplg_filename = "sof-jsl-rt5682-mx98360a.tplg", - }, {}, }; EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_jsl_machines); diff --git a/sound/soc/intel/common/soc-acpi-intel-tgl-match.c b/sound/soc/intel/common/soc-acpi-intel-tgl-match.c index 9d89f01d6b84..e65bd6db2850 100644 --- a/sound/soc/intel/common/soc-acpi-intel-tgl-match.c +++ b/sound/soc/intel/common/soc-acpi-intel-tgl-match.c @@ -358,9 +358,15 @@ static const struct snd_soc_acpi_codecs tgl_rt1011_amp = { .codecs = {"10EC1011"} }; +static struct snd_soc_acpi_codecs tgl_rt5682s_hp = { + .num_codecs = 1, + .codecs = {"RTL5682"} +}; + struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_machines[] = { { .id = "10EC5682", + .id_alt = &tgl_rt5682s_hp, .drv_name = "tgl_mx98357_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &tgl_codecs, @@ -369,6 +375,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_machines[] = { }, { .id = "10EC5682", + .id_alt = &tgl_rt5682s_hp, .drv_name = "tgl_mx98373_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &tgl_max98373_amp, @@ -377,6 +384,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_machines[] = { }, { .id = "10EC5682", + .id_alt = &tgl_rt5682s_hp, .drv_name = "tgl_rt1011_rt5682", .machine_quirk = snd_soc_acpi_codec_list, .quirk_data = &tgl_rt1011_amp,