From nobody Mon Apr 6 09:13:13 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 42A0E3CB2CC for ; Fri, 20 Mar 2026 14:49:38 +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=1774018179; cv=none; b=NcIXDcvqoPsmmlSJZ0DumuaxPZ9jFVaJ4L8Ly2m0bocd8PFICrB73DBFrI/AWIYK3nFGC5sMa1VPRJLVwFVmc6cfKNP5Ui+TYGKdM4tAcXcsOTa5vPRkNaxxEVNOprwqfR+ewl0XrgBr4BORmZYQ7yxssJvm1AWxjBU0Qb4gDdo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774018179; c=relaxed/simple; bh=DWuvTD8Cw0DUhqpHbWAOgp0+9q9ilBF02Exs71eghWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ONALGOaKjUbfhFoy/T26tWYnq6OkNxDw0ZFpd2qOJeI+cZIpnViJ/ECyFBo1XyNIlbHMKZhMRLYqaKbGW5p5bC3CydY45lZwE1aFf0E+rhT8ouf3reazSInq75JAIU92sqEEodXz7Z2msdsnboUdK3zKkXAxIfzSngzWS5ljSdA= 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=KvIBovX0; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GTU/sqnE; 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="KvIBovX0"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GTU/sqnE" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62KBsIFV3875472 for ; Fri, 20 Mar 2026 14:49:37 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=VHHn5cWjpEy VxsTN9vGBX+/Npp0nx1w8ZRbazvG1gDU=; b=KvIBovX0MGCe+SKa3+x6aLuHNWA kFX32k4iOrpLV1vRTEkYZX9XRymtzkdeSq2QMqJDFQkE8sRjbMTJbWBQuepfWA/6 TVrVPTAuCZIJ+VpPEdwXQfMJYJwzkfc+9ONvjo4wMjcBsDBE/pHrCxhIm1n+5MjZ SCtB3VB+mBEROlxfQELI0aY7GwuWAHn+YuZtEDlyrJ4qD77nV4AzRxNsS5os2NPt Iniz4vLLaLEvgJke8qHMrB0H15ptFuClou11D5WJoTXZiV37uRtLGEEVjChnij+E gqYiBfZluDJxVKBrr0qA3aTUJMsPyzCBldFPVeF7ClfrP9f/O3ZvXiBU1vQ== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d15s08e55-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 20 Mar 2026 14:49:37 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b389f2560so54455771cf.3 for ; Fri, 20 Mar 2026 07:49:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774018177; x=1774622977; 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=VHHn5cWjpEyVxsTN9vGBX+/Npp0nx1w8ZRbazvG1gDU=; b=GTU/sqnEt72RFOFMhGy5PlSjjNk6aUOPTXw8HEWD0w7ZsVSlNEGeG6aLxTTsy2+mmu Atb8/BP0YAJ6iCXCoTodkd3jvV7n16Dqve26MiIj9/yql8hGOgW0qy6V04LIuXWKNKV0 q/OihPxnUZzRSWJG41lLCzCmSUyUW78JC91daS3F2GPataql4JoHpXyP5B6qLRrnq9nC saxpnNs4H8eQgvLDPeIo4vdwvs7FMAJaX01+IsrtVLsHLhMgAkdK9fMA+2275EBQbGU4 y7MSl7TQi9c+8hL2AqV5RbNWvT5X2C4AGHCV0cKSCKbfyNZVzwiHf0RT76IcKAy1M5kv HAcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774018177; x=1774622977; 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=VHHn5cWjpEyVxsTN9vGBX+/Npp0nx1w8ZRbazvG1gDU=; b=WMabzJA+dp04zjO/Rn1Sowxbz9SjbqLQnZkDA3MJIFvuNMWdB4+1TEpVukEbxS+Vi9 54M9RiXR3fQ9aQLdBYzLZMuGll0hH5vWAWjpgj2bYojMzwrGJtdWlBF5Wb1MzOC1P+s3 cThpwmhecF5o3arbIHjxTOzRC6NuQtUNe63hDFnNK1k1Hmq+xAvd9K7Ta0D4Q3m6UpNp b740DYdrlmAAwn9IaiyLNeBQJIODaeq9RpUbHgVRXtBRXwT18nSmMr3yEC+QRfQwIxmu CCcMxPsl6myzZr0axG7HCTHm+RyZ01dOX4Tovq9PAkn6Fe1kzUfuy1c7QApEDKNWpE03 6W2Q== X-Forwarded-Encrypted: i=1; AJvYcCWuao8EocvvG1YODL6z3hkw+S1akpDQtckhfWGwj7llYB58jtDx4TA2bQrheH8/hQh60hZwgEvUAi4Sxx0=@vger.kernel.org X-Gm-Message-State: AOJu0YxvlX0gDQDVA9ude2xw3Eii/9UQ9Ph5FvCbtivgAg2ERxiege09 XJY+8R9jsEvQVchT/StjtBqWO372dMe+U3YZbqBccy3yGDrtdvwtFSWRQTM5HPt03QklD6HS3M2 wno61kpr5Cse4TLSZErADw/wB4mJ/AHpb97ZIZ30OPKXFusWU4gj1AURqlWfYftjj4ao= X-Gm-Gg: ATEYQzxKCeRjuCadKMhJkRQHSVyMixQ+uPk+lzwsJZHeKn6dtOZo6miDF9TUMNtKA97 mKkcHCSIkQz493ITxnHpc+Ym7oUtR24dz5kuk8WaCZruadHQKj1kjr65g2Z1qu1CzcMx61y4Cat LY4NRrEHyK4pmyJqM4xi6RzR0Zl3XVcVPt6aQsfe5bYW61dZJipxFhIdFVZpaxjWpwhtJ844ZIs dZAEvR5jHvJcr3zU1X+egZgXjjCaS8QUcMDRc/CWqZjlFr0i9PkAyjF+Odd6MNDuvBxkSDrNZao Wu5hN1RuV1HU6naSPvJp7K/xBeZuj1DHS0LyG2LVwehzwBATOHOKTizTpme+yjNsUHR4aoZ3Uho j9ZA3Vx1cJZby7ZjlYV+vpv5xeI9w83VPXZVEC2sI+TyiF+89P0rq9Eo= X-Received: by 2002:ac8:5814:0:b0:509:66:cd5b with SMTP id d75a77b69052e-50b373e8da0mr46993701cf.18.1774018176656; Fri, 20 Mar 2026 07:49:36 -0700 (PDT) X-Received: by 2002:ac8:5814:0:b0:509:66:cd5b with SMTP id d75a77b69052e-50b373e8da0mr46992941cf.18.1774018176135; Fri, 20 Mar 2026 07:49:36 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486ff109b95sm47906825e9.1.2026.03.20.07.49.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 07:49:35 -0700 (PDT) From: Srinivas Kandagatla To: broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mohammad.rafi.shaik@oss.qualcomm.com, linux-sound@vger.kernel.org, lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com, johan@kernel.org, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, srini@kernel.org, val@packett.cool, mailingradian@gmail.com, Srinivas Kandagatla Subject: [PATCH v6 08/13] ASoC: qcom: q6dsp: Add Senary MI2S audio interface support Date: Fri, 20 Mar 2026 14:49:13 +0000 Message-ID: <20260320144918.1685838-9-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260320144918.1685838-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260320144918.1685838-1-srinivas.kandagatla@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: gSXWQdGil-rL1BQLZDPUgo0wR1ZUn2aP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIwMDExOCBTYWx0ZWRfXx5+RBe9693xK 4qfpwKIxyNlerT60UTlBKKcXgsEOIZ+t/QCy7mUpC35uxTJWjy08gOgSl5bodGhEOGISR2GzC+M TpZqaB7tJWLG9tE7FVudSGLCCMj1yIaQLAv3ERudwh4C9DWav2SNpMF9EEOt6Bfjnz/NezUrjbH tTzKhczJRtacn/B3/bguvLEXOnIrSnAkkJ3LMR/43qRyv4cp+oK0DIK7J+WhpoZcW4lpcQcNpbR rfDcgJKbrSWMxnLfXTQo3gia1pEDHwprnjPNR9ttrCu55sw4uFAlc5EFjnczOT3/umAZo0qBsjo 3l2w6MihFUFvUAlGDy/0fyHaA1EpZE+8RziGjwpSI7PfsjTXMPrVEmaPTHw/Oi09KYuS8sSXViK vCJrNibBlNy5YUpXiTTTgJxheHGva1rMpg53HelDYb9qk8gyxbYxPAnu1RDOwsCWcwcRIshIquI kwF2rAqBg/42TyUOPqQ== X-Proofpoint-GUID: gSXWQdGil-rL1BQLZDPUgo0wR1ZUn2aP X-Authority-Analysis: v=2.4 cv=KORXzVFo c=1 sm=1 tr=0 ts=69bd5e81 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=yvctMs8w4tAFySAdhFMA:9 a=uxP6HrT_eTzRwkO_Te1X:22 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-20_02,2026-03-19_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 impostorscore=0 suspectscore=0 clxscore=1015 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603200118 Content-Type: text/plain; charset="utf-8" From: Mohammad Rafi Shaik Introduces support for the Senary MI2S audio interface in the Qualcomm q6dsp. Add new AFE port IDs for Senary MI2S RX and TX and include the necessary mappings in the port configuration to allow audio routing over the Senary MI2S interface. Signed-off-by: Mohammad Rafi Shaik Signed-off-by: Srinivas Kandagatla Tested-by: Val Packett # sm7325-motorola-dubai --- sound/soc/qcom/qdsp6/q6afe-dai.c | 6 +++++ sound/soc/qcom/qdsp6/q6afe.c | 8 +++++++ sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 29 ++++++++++++++++++++++++ 3 files changed, 43 insertions(+) diff --git a/sound/soc/qcom/qdsp6/q6afe-dai.c b/sound/soc/qcom/qdsp6/q6afe-= dai.c index 0f47aadaabe1..a0d21034a626 100644 --- a/sound/soc/qcom/qdsp6/q6afe-dai.c +++ b/sound/soc/qcom/qdsp6/q6afe-dai.c @@ -409,6 +409,7 @@ static int q6afe_dai_prepare(struct snd_pcm_substream *= substream, q6afe_slim_port_prepare(dai_data->port[dai->id], &dai_data->port_config[dai->id].slim); break; + case SENARY_MI2S_RX ... SENARY_MI2S_TX: case QUINARY_MI2S_RX ... QUINARY_MI2S_TX: case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX: rc =3D q6afe_i2s_port_prepare(dai_data->port[dai->id], @@ -540,6 +541,7 @@ static const struct snd_soc_dapm_route q6afe_dapm_route= s[] =3D { {"Tertiary MI2S Playback", NULL, "TERT_MI2S_RX"}, {"Quaternary MI2S Playback", NULL, "QUAT_MI2S_RX"}, {"Quinary MI2S Playback", NULL, "QUIN_MI2S_RX"}, + {"Senary MI2S Playback", NULL, "SEN_MI2S_RX"}, =20 {"Primary TDM0 Playback", NULL, "PRIMARY_TDM_RX_0"}, {"Primary TDM1 Playback", NULL, "PRIMARY_TDM_RX_1"}, @@ -636,6 +638,7 @@ static const struct snd_soc_dapm_route q6afe_dapm_route= s[] =3D { {"SEC_MI2S_TX", NULL, "Secondary MI2S Capture"}, {"QUAT_MI2S_TX", NULL, "Quaternary MI2S Capture"}, {"QUIN_MI2S_TX", NULL, "Quinary MI2S Capture"}, + {"SEN_MI2S_TX", NULL, "Senary MI2S Capture"}, =20 {"WSA_CODEC_DMA_RX_0 Playback", NULL, "WSA_CODEC_DMA_RX_0"}, {"WSA_CODEC_DMA_TX_0", NULL, "WSA_CODEC_DMA_TX_0 Capture"}, @@ -770,6 +773,8 @@ static const struct snd_soc_dapm_widget q6afe_dai_widge= ts[] =3D { SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_TX", NULL, 0, SND_SOC_NOPM, 0, 0), SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_TX", NULL, 0, SND_SOC_NOPM, 0, 0), SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_TX", NULL, 0, SND_SOC_NOPM, 0, 0), + SND_SOC_DAPM_AIF_IN("SEN_MI2S_RX", NULL, 0, SND_SOC_NOPM, 0, 0), + SND_SOC_DAPM_AIF_OUT("SEN_MI2S_TX", NULL, 0, SND_SOC_NOPM, 0, 0), SND_SOC_DAPM_AIF_IN("QUIN_MI2S_RX", NULL, 0, SND_SOC_NOPM, 0, 0), SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_TX", NULL, @@ -1037,6 +1042,7 @@ static void of_q6afe_parse_dai_data(struct device *de= v, =20 switch (id) { /* MI2S specific properties */ + case SENARY_MI2S_RX ... SENARY_MI2S_TX: case QUINARY_MI2S_RX ... QUINARY_MI2S_TX: case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX: priv =3D &data->priv[id]; diff --git a/sound/soc/qcom/qdsp6/q6afe.c b/sound/soc/qcom/qdsp6/q6afe.c index 43d877322bae..40237267fda0 100644 --- a/sound/soc/qcom/qdsp6/q6afe.c +++ b/sound/soc/qcom/qdsp6/q6afe.c @@ -130,6 +130,8 @@ #define AFE_PORT_ID_QUATERNARY_MI2S_TX 0x1007 #define AFE_PORT_ID_QUINARY_MI2S_RX 0x1016 #define AFE_PORT_ID_QUINARY_MI2S_TX 0x1017 +#define AFE_PORT_ID_SENARY_MI2S_RX 0x1018 +#define AFE_PORT_ID_SENARY_MI2S_TX 0x1019 =20 /* Start of the range of port IDs for TDM devices. */ #define AFE_PORT_ID_TDM_PORT_RANGE_START 0x9000 @@ -718,6 +720,10 @@ static struct afe_port_map port_maps[AFE_PORT_MAX] =3D= { QUINARY_MI2S_RX, 1, 1}, [QUINARY_MI2S_TX] =3D { AFE_PORT_ID_QUINARY_MI2S_TX, QUINARY_MI2S_TX, 0, 1}, + [SENARY_MI2S_RX] =3D { AFE_PORT_ID_SENARY_MI2S_RX, + SENARY_MI2S_RX, 1, 1}, + [SENARY_MI2S_TX] =3D { AFE_PORT_ID_SENARY_MI2S_TX, + SENARY_MI2S_TX, 0, 1}, [PRIMARY_TDM_RX_0] =3D { AFE_PORT_ID_PRIMARY_TDM_RX, PRIMARY_TDM_RX_0, 1, 1}, [PRIMARY_TDM_TX_0] =3D { AFE_PORT_ID_PRIMARY_TDM_TX, @@ -1777,6 +1783,8 @@ struct q6afe_port *q6afe_port_get_from_id(struct devi= ce *dev, int id) case AFE_PORT_ID_QUATERNARY_MI2S_TX: case AFE_PORT_ID_QUINARY_MI2S_RX: case AFE_PORT_ID_QUINARY_MI2S_TX: + case AFE_PORT_ID_SENARY_MI2S_RX: + case AFE_PORT_ID_SENARY_MI2S_TX: cfg_type =3D AFE_PARAM_ID_I2S_CONFIG; break; case AFE_PORT_ID_PRIMARY_TDM_RX ... AFE_PORT_ID_QUINARY_TDM_TX_7: diff --git a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c b/sound/soc/qcom/qdsp= 6/q6dsp-lpass-ports.c index d31388ed3ccf..e5cd82f77b55 100644 --- a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c +++ b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c @@ -519,6 +519,34 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[]= =3D { }, .id =3D QUINARY_MI2S_TX, .name =3D "QUIN_MI2S_TX", + }, { + .playback =3D { + .stream_name =3D "Senary MI2S Playback", + .rates =3D SNDRV_PCM_RATE_8000_192000, + .formats =3D SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min =3D 1, + .channels_max =3D 8, + .rate_min =3D 8000, + .rate_max =3D 192000, + }, + .id =3D SENARY_MI2S_RX, + .name =3D "SEN_MI2S_RX", + }, { + .capture =3D { + .stream_name =3D "Senary MI2S Capture", + .rates =3D SNDRV_PCM_RATE_8000_192000, + .formats =3D SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min =3D 1, + .channels_max =3D 8, + .rate_min =3D 8000, + .rate_max =3D 192000, + }, + .id =3D SENARY_MI2S_TX, + .name =3D "SEN_MI2S_TX", }, Q6AFE_MI2S_RX_DAI("LPI RX0", LPI_MI2S_RX_0), Q6AFE_MI2S_RX_DAI("LPI RX1", LPI_MI2S_RX_1), @@ -680,6 +708,7 @@ struct snd_soc_dai_driver *q6dsp_audio_ports_set_config= (struct device *dev, case SLIMBUS_0_RX ... SLIMBUS_6_TX: q6dsp_audio_fe_dais[i].ops =3D cfg->q6slim_ops; break; + case SENARY_MI2S_RX ... SENARY_MI2S_TX: case QUINARY_MI2S_RX ... QUINARY_MI2S_TX: case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX: case LPI_MI2S_RX_0 ... LPI_MI2S_TX_4: --=20 2.47.3