From nobody Thu Apr 9 12:54:11 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (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 59F83399034 for ; Mon, 9 Mar 2026 11:13:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773054815; cv=none; b=MaPtQjzZHyUtqV+7d6TYQj7iQ2Zkux4fuBxquqTZFSgmLSO8vndG+Pi39vDC5tCPD50fNuFBElt6I/nOPe+4o1wxexMC5atreIlcstOnA5plef729Dpp3oBCN5sJyhanK9TkEdKZAa6e+RJJEmYMhs34SnO9ZQv3O9+/0malxLg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773054815; c=relaxed/simple; bh=RD4c98jvLUyiYfBuTglyo98MzLCoqaUHXj1LQhon1Qo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=A5U8UIN1ukFbh6Enm3DlQ3Am/fEvXpYOgGlId+1r8T961VULk2AIO59cAC5ip9/H8N84U2Lmi5iJ4oOF9T5z10MiL5OsKIj7/LyRVcPbP0UiuRcsjgEMyywHAevrAoR4dsgDIDy/lcpIc+1zQEeyPABN3SuHsT+D40BGled7C7o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Qs6cVRXg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KpWxWdHG; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Qs6cVRXg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KpWxWdHG" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62982rCc3462729 for ; Mon, 9 Mar 2026 11:13:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=LckKRZ+R520 xGoLy9VPMIyB1+zTb2QRQ97fUKoxVTZw=; b=Qs6cVRXgsBB5DCwLtSqdyi838OR xvDbe+LfG6daMFWBIta/9toh6DKr1WViCZZqr4MHGFMb4MOE6XMPAQ5mky5LEp+y bVJnzJrcweV8eV8GULwMcXwEBbBnS/2ZTHSnZ80Ygn8Y1iH/qNIU2LAWJ54WxEgJ WAb21LnXsnnT0ONPfCWQl96c6H81+eW4KiI3ge5wQa8vbbuc5OC3+VVxJ49LscFk E00923DJaYl4rT+/Qoc2o2iFNpt+pc3RO3HCYLjOgY/d+g8kPqSso5dfW5hwf8Ky IW5m9/HuAfpWCJdeWnpja/gX+pUMwN9dTB4iEQwDzJelQ1R0iQhNIWaccwA== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4crcd8d2d9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 11:13:33 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2ae49080364so66022355ad.0 for ; Mon, 09 Mar 2026 04:13:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773054812; x=1773659612; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LckKRZ+R520xGoLy9VPMIyB1+zTb2QRQ97fUKoxVTZw=; b=KpWxWdHGQfAY03cA9tvC7PciAjF2Pc2hV1KNXvcwBP96+KAXyZE6XUoSQdpes7dGaw t08RYaAW/I7ZnW7agm8mZ68+amDwOx/QOglv9JXd+iFd0IMREJa5cDiIf8WZUH8Ipjty NdJgHRzvGX3FWUIfxOTAtWJd4/XBeVYyJVLDHNBZtMRq8D3+frdZju5jBQv3J8/0GIDx JNfJEst75IXcSfZC3SiKBt4EMCYNdDOYhzQLCnJtSlAx5FbDFLxa7WH39drr9ed03lAz Mqrq9TM4XzQ0gZcxZ8w10TgpqPZSsUkVylpoX4L5wu6KIZZwzB32HCGYXi48Bmnqr6oL 5RwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773054812; x=1773659612; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LckKRZ+R520xGoLy9VPMIyB1+zTb2QRQ97fUKoxVTZw=; b=H57CNjaXAApowfAVpRnqlM7tZ9OhYm6wXpRtYOpmYy2yFXR492HcnFjZ0vlwuTNsjx NWeyXar+YxqVE+Ehk0oihy3UaN2TBrOu9So42lffEdWozf9/uUaCZpMTVljMbL38Ek89 sWvTKdHebREDsHviwWspmhofSd7IN4ktrWdS16X/uFSesgRyCrOkV9I43CiYyxinxe9i zFJOEUhqHnRfFJTWn/o1bmfhVfBeMbYRlGVnWFxfvdUDXtv2bf/20kHpu97m1c4RTwgm zEtOzHFXmnUK2Rdy9UdfT2lMwMjqSPxS/YtC30ZkoGEceQduUgIDv8uYkYagE0YaFdxc P1Tg== X-Forwarded-Encrypted: i=1; AJvYcCXc99z86E62cyDKkwY5ZYr5lHqRf2hEIZL1UzvrcQpfhRj1yGjuKUhT6U0AlVNt8ONKTM1CdffIn3UEdcc=@vger.kernel.org X-Gm-Message-State: AOJu0Yz5LA/70P9KVI2s7QeI/eq20TCbCzjfB/KIicdLfAHK5P2ySyxC liwaRbw4ILpxjeuqQLwugMHfKrJcyduknMPYcbCDYKi587rEI2et0+l0YxhjOK6H2Z/CSIp6Y1s 8gK6O2OXYIjhqR2FWTXUEt4eOiNNpItxFi/vi/1bClNrcmyJuBZmX0c8r5ekp/+TP2jE= X-Gm-Gg: ATEYQzw/JMMNCWsV7B67Rx1omvXJvV4hTxKs6QlyKx4Djv89T1md8wPhhnjVk4FHuqz 0bdH45wzWuGQh1fvVlCJEbmqpWViTnBQUHvRicXAa2XeIxNNPQBHPlv5d8nyFMYq5mSMg21dYcv Y8xZNOH3R0KGWzATfQDXDK9ErFYCecSHUyqfHayAzsN5fCgwxPuDr73T11v5zrh7f8Hf6MmdMLn HffaCbXH63izvPslF5c+fZo/VCtz+dgCvH0llpdajzhqC1LSDKohKmk0STj8mpbId0PTyGGsE8T 4VLPOuIOLrw/ehBoSbKp/6xSXpiuE9q82KwbCt+PliFvKb18a10UiWR9K5d1sgswndZh7d3ULDO ts2AfYcML0G2yEJyiwFGdUwTYbIpY8dKnlNAIZC8cqi+XKNrNjRbeJhuwcw== X-Received: by 2002:a17:902:e803:b0:2ae:5442:45cf with SMTP id d9443c01a7336-2ae82431065mr121349095ad.33.1773054812159; Mon, 09 Mar 2026 04:13:32 -0700 (PDT) X-Received: by 2002:a17:902:e803:b0:2ae:5442:45cf with SMTP id d9443c01a7336-2ae82431065mr121348795ad.33.1773054811645; Mon, 09 Mar 2026 04:13:31 -0700 (PDT) Received: from hu-mohs-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ae840c9967sm145405925ad.90.2026.03.09.04.13.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 04:13:31 -0700 (PDT) From: Mohammad Rafi Shaik To: Srinivas Kandagatla , Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jaroslav Kysela , Takashi Iwai Cc: Krzysztof Kozlowski , linux-sound@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 4/4] ASoC: qcom: sc8280xp: ASoC: qcom: sc8280xp: enhance machine driver for board-specific config Date: Mon, 9 Mar 2026 16:43:00 +0530 Message-Id: <20260309111300.2484262-5-mohammad.rafi.shaik@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309111300.2484262-1-mohammad.rafi.shaik@oss.qualcomm.com> References: <20260309111300.2484262-1-mohammad.rafi.shaik@oss.qualcomm.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-Proofpoint-ORIG-GUID: Z0VIahmnSQpl50ImsdaWW_QXxJMlSq9W X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDEwMyBTYWx0ZWRfX8FXjBJtHKhmk DTrojGlvUYCOykrCDBGHNn+PwnmqhWsh/lWVrxF2oIWUUzFgNiejp0XwUBkTqfYBfQD8ibQ/uxD iXDN/I504rSns/CvTvDaxDCtn3359nMleMBO1++lhgUtAJ8CoNPg989sd6/y7k/tXGVev++H/FX 7XPTC6/OzkgLWWzu/3mFW0Z3gCtUNERLUnZ43kgp7w60TliuJAZ2CAh9uISHngSxwLxBgHmEKth p+yAOw1JsWNSCAi+5hZwil/BtahENyg8orha39Ah/SZBfWlhzTrqmJMpsSAu0zfwQXECIvXcHhp QtTdUcEJdJFMzVonFbTWQnctfl1kk/Z9DRCh5wMKMGYhclSrucHHsuzjL5xO0bn1RuU3qw22clq devBJoIAyTJ/4MQdHlE+3k+0l+1ub+YlheLVv9yjP7JdGEkKnBzgDQpFBHHwSSbq1oM8UNLpVp2 GCfM9E8MM4FacNgr1RA== X-Authority-Analysis: v=2.4 cv=O/w0fR9W c=1 sm=1 tr=0 ts=69aeab5d cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=YQSOK7UB-Gan8rnKjwIA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: Z0VIahmnSQpl50ImsdaWW_QXxJMlSq9W X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_03,2026-03-06_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 spamscore=0 phishscore=0 priorityscore=1501 lowpriorityscore=0 adultscore=0 impostorscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090103 Content-Type: text/plain; charset="utf-8" The sc8280xp machine driver is currently written with a largely SoC-centric view and assumes a uniform audio topology across all boards. In practice, multiple products based on the same SoC use different board designs and external audio components, which require board-specific configuration to function correctly. Several Qualcomm platforms like talos integrate third-party audio codecs or use different external audio paths. These designs often require additional configuration such as explicit MI2S MCLK settings for audio to work. This change enhances the sc8280xp machine driver to support board-specific configuration such as allowing each board variant to provide its own DAPM widgets and routes, reflecting the actual audio components and connectors present and enabling MI2S MCLK programming for boards that use external codecs requiring a stable master clock. Signed-off-by: Mohammad Rafi Shaik --- sound/soc/qcom/sc8280xp.c | 180 ++++++++++++++++++++++++++++++++++---- 1 file changed, 162 insertions(+), 18 deletions(-) diff --git a/sound/soc/qcom/sc8280xp.c b/sound/soc/qcom/sc8280xp.c index 7925aa3f6..c2e9323df 100644 --- a/sound/soc/qcom/sc8280xp.c +++ b/sound/soc/qcom/sc8280xp.c @@ -12,17 +12,62 @@ #include #include #include "qdsp6/q6afe.h" +#include "qdsp6/q6apm.h" +#include "qdsp6/q6prm.h" #include "common.h" #include "sdw.h" =20 +#define MCLK_FREQ 12288000 +#define MCLK_NATIVE_FREQ 11289600 + +static struct snd_soc_dapm_widget sc8280xp_dapm_widgets[] =3D { + SND_SOC_DAPM_HP("Headphone Jack", NULL), + SND_SOC_DAPM_MIC("Mic Jack", NULL), + SND_SOC_DAPM_SPK("DP0 Jack", NULL), + SND_SOC_DAPM_SPK("DP1 Jack", NULL), + SND_SOC_DAPM_SPK("DP2 Jack", NULL), + SND_SOC_DAPM_SPK("DP3 Jack", NULL), + SND_SOC_DAPM_SPK("DP4 Jack", NULL), + SND_SOC_DAPM_SPK("DP5 Jack", NULL), + SND_SOC_DAPM_SPK("DP6 Jack", NULL), + SND_SOC_DAPM_SPK("DP7 Jack", NULL), +}; + +struct snd_soc_common { + char *driver_name; + const struct snd_soc_dapm_widget *dapm_widgets; + int num_dapm_widgets; + const struct snd_soc_dapm_route *dapm_routes; + int num_dapm_routes; + bool mi2s_mclk_enable; +}; + struct sc8280xp_snd_data { bool stream_prepared[AFE_PORT_MAX]; struct snd_soc_card *card; struct snd_soc_jack jack; struct snd_soc_jack dp_jack[8]; + struct snd_soc_common *snd_soc_common_priv; bool jack_setup; }; =20 +static inline int sc8280xp_get_mclk_feq(unsigned int rate) +{ + int freq =3D MCLK_FREQ; + + switch (rate) { + case SNDRV_PCM_RATE_11025: + case SNDRV_PCM_RATE_44100: + case SNDRV_PCM_RATE_88200: + freq =3D MCLK_NATIVE_FREQ; + break; + default: + break; + } + + return freq; +} + static int sc8280xp_snd_init(struct snd_soc_pcm_runtime *rtd) { struct sc8280xp_snd_data *data =3D snd_soc_card_get_drvdata(rtd->card); @@ -32,10 +77,6 @@ static int sc8280xp_snd_init(struct snd_soc_pcm_runtime = *rtd) int dp_pcm_id =3D 0; =20 switch (cpu_dai->id) { - case PRIMARY_MI2S_RX...QUATERNARY_MI2S_TX: - case QUINARY_MI2S_RX...QUINARY_MI2S_TX: - snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_BP_FP); - break; case WSA_CODEC_DMA_RX_0: case WSA_CODEC_DMA_RX_1: /* @@ -96,6 +137,31 @@ static int sc8280xp_be_hw_params_fixup(struct snd_soc_p= cm_runtime *rtd, return 0; } =20 +static int sc8280xp_snd_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) +{ + struct snd_soc_pcm_runtime *rtd =3D snd_soc_substream_to_rtd(substream); + struct snd_soc_dai *cpu_dai =3D snd_soc_rtd_to_cpu(rtd, 0); + struct sc8280xp_snd_data *data =3D snd_soc_card_get_drvdata(rtd->card); + int mclk_freq =3D sc8280xp_get_mclk_feq(params_rate(params)); + + switch (cpu_dai->id) { + case PRIMARY_MI2S_RX...QUATERNARY_MI2S_TX: + case QUINARY_MI2S_RX...QUINARY_MI2S_TX: + snd_soc_dai_set_fmt(cpu_dai, SND_SOC_DAIFMT_BP_FP); + + if (data->snd_soc_common_priv->mi2s_mclk_enable) + snd_soc_dai_set_sysclk(cpu_dai, + LPAIF_MI2S_MCLK, mclk_freq, + SND_SOC_CLOCK_IN); + break; + default: + break; + }; + + return 0; +} + static int sc8280xp_snd_prepare(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd =3D snd_soc_substream_to_rtd(substream); @@ -117,6 +183,7 @@ static int sc8280xp_snd_hw_free(struct snd_pcm_substrea= m *substream) static const struct snd_soc_ops sc8280xp_be_ops =3D { .startup =3D qcom_snd_sdw_startup, .shutdown =3D qcom_snd_sdw_shutdown, + .hw_params =3D sc8280xp_snd_hw_params, .hw_free =3D sc8280xp_snd_hw_free, .prepare =3D sc8280xp_snd_prepare, }; @@ -145,37 +212,114 @@ static int sc8280xp_platform_probe(struct platform_d= evice *pdev) card =3D devm_kzalloc(dev, sizeof(*card), GFP_KERNEL); if (!card) return -ENOMEM; - card->owner =3D THIS_MODULE; + /* Allocate the private data */ data =3D devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); if (!data) return -ENOMEM; =20 + data->snd_soc_common_priv =3D (struct snd_soc_common *)of_device_get_matc= h_data(dev); + if (!data->snd_soc_common_priv) + return -ENOMEM; + + card->owner =3D THIS_MODULE; card->dev =3D dev; dev_set_drvdata(dev, card); snd_soc_card_set_drvdata(card, data); + card->dapm_widgets =3D data->snd_soc_common_priv->dapm_widgets; + card->num_dapm_widgets =3D data->snd_soc_common_priv->num_dapm_widgets; + card->dapm_routes =3D data->snd_soc_common_priv->dapm_routes; + card->num_dapm_routes =3D data->snd_soc_common_priv->num_dapm_routes; + ret =3D qcom_snd_parse_of(card); if (ret) return ret; =20 - card->driver_name =3D of_device_get_match_data(dev); + card->driver_name =3D data->snd_soc_common_priv->driver_name; sc8280xp_add_be_ops(card); return devm_snd_soc_register_card(dev, card); } =20 +static struct snd_soc_common kaanapali_priv_data =3D { + .driver_name =3D "kaanapali", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + +static struct snd_soc_common qcs9100_priv_data =3D { + .driver_name =3D "sa8775p", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + +static struct snd_soc_common qcs615_priv_data =3D { + .driver_name =3D "qcs615", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), + .mi2s_mclk_enable =3D true, +}; + +static struct snd_soc_common qcm6490_priv_data =3D { + .driver_name =3D "qcm6490", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + +static struct snd_soc_common qcs6490_priv_data =3D { + .driver_name =3D "qcs6490", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + +static struct snd_soc_common qcs8275_priv_data =3D { + .driver_name =3D "qcs8300", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + +static struct snd_soc_common sc8280xp_priv_data =3D { + .driver_name =3D "sc8280xp", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + +static struct snd_soc_common sm8450_priv_data =3D { + .driver_name =3D "sm8450", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + +static struct snd_soc_common sm8550_priv_data =3D { + .driver_name =3D "sm8550", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + +static struct snd_soc_common sm8650_priv_data =3D { + .driver_name =3D "sm8650", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + +static struct snd_soc_common sm8750_priv_data =3D { + .driver_name =3D "sm8750", + .dapm_widgets =3D sc8280xp_dapm_widgets, + .num_dapm_widgets =3D ARRAY_SIZE(sc8280xp_dapm_widgets), +}; + static const struct of_device_id snd_sc8280xp_dt_match[] =3D { - {.compatible =3D "qcom,kaanapali-sndcard", "kaanapali"}, - {.compatible =3D "qcom,qcm6490-idp-sndcard", "qcm6490"}, - {.compatible =3D "qcom,qcs615-sndcard", "qcs615"}, - {.compatible =3D "qcom,qcs6490-rb3gen2-sndcard", "qcs6490"}, - {.compatible =3D "qcom,qcs8275-sndcard", "qcs8300"}, - {.compatible =3D "qcom,qcs9075-sndcard", "sa8775p"}, - {.compatible =3D "qcom,qcs9100-sndcard", "sa8775p"}, - {.compatible =3D "qcom,sc8280xp-sndcard", "sc8280xp"}, - {.compatible =3D "qcom,sm8450-sndcard", "sm8450"}, - {.compatible =3D "qcom,sm8550-sndcard", "sm8550"}, - {.compatible =3D "qcom,sm8650-sndcard", "sm8650"}, - {.compatible =3D "qcom,sm8750-sndcard", "sm8750"}, + {.compatible =3D "qcom,kaanapali-sndcard", .data =3D &kaanapali_priv_data= }, + {.compatible =3D "qcom,qcm6490-idp-sndcard", .data =3D &qcm6490_priv_data= }, + {.compatible =3D "qcom,qcs615-sndcard", .data =3D &qcs615_priv_data}, + {.compatible =3D "qcom,qcs6490-rb3gen2-sndcard", .data =3D &qcs6490_priv_= data}, + {.compatible =3D "qcom,qcs8275-sndcard", .data =3D &qcs8275_priv_data}, + {.compatible =3D "qcom,qcs9075-sndcard", .data =3D &qcs9100_priv_data}, + {.compatible =3D "qcom,qcs9100-sndcard", .data =3D &qcs9100_priv_data}, + {.compatible =3D "qcom,sc8280xp-sndcard", .data =3D &sc8280xp_priv_data}, + {.compatible =3D "qcom,sm8450-sndcard", .data =3D &sm8450_priv_data}, + {.compatible =3D "qcom,sm8550-sndcard", .data =3D &sm8550_priv_data}, + {.compatible =3D "qcom,sm8650-sndcard", .data =3D &sm8650_priv_data}, + {.compatible =3D "qcom,sm8750-sndcard", .data =3D &sm8750_priv_data}, {} }; =20 --=20 2.34.1