From nobody Sun Apr 5 18:21:03 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 DCC1E384234 for ; Mon, 23 Mar 2026 22:39:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305559; cv=none; b=E7Lo3m9pU6rmC4vyqmw3YwRFW4dKdMSnqlXTPu+NVg4uf/e1bNzLlUi5WienjCRFJUCLkWuuP7eguMVpeGaGKAmzyEdSFYYY0ga4U6ntjjhqaBiYYt+C0+w5kheAdvFBMopTw5qsqjxQVVP35ZidT04DWFx028Rym0lzzjp3JeQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305559; c=relaxed/simple; bh=DWuvTD8Cw0DUhqpHbWAOgp0+9q9ilBF02Exs71eghWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nlm6cwe8tBX4DroNaCK06tcjy75BUYC3Zm3YIm1W20ux29Ni9BY8txjkT5sNvKYOOWg8jLrQF45b2dMTy3fG5pVWsFTPx5rvQYD5j+M/pj3mS4bxMr5C8U439UfvZ1ZBuWR4qtzp6IcU6PTzXP6qLMj3U89fst+Y5DyoWbAySqw= 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=pHJr0Beu; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=B9asEZTi; arc=none smtp.client-ip=205.220.168.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="pHJr0Beu"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="B9asEZTi" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NHqduN2831926 for ; Mon, 23 Mar 2026 22:39:11 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=pHJr0BeuPYXMRg9lnFuQiAUL16f gfKlO35Jj6uKbRuil5/siv1mUc2UFGDvpULfouRDvzVfAeHfMGaF42+FZRSF6ZDk qbHG2rXKNhKfAaiHNgSjXoL5eJt9A7OdfHs5A8i58VR7yhV5MZsKIuRUsWyyGOK6 7EHGSsQQtIkzI7PtWWJpYT9ja3b7Ar01KCREbAqIEfk5TivtXKK2VjT3z49QZDhK 1qurH4PrKrqpddgq5S9V3stDbEctIprnGrSkgYqrOae/QAWBdlmLkuRLzfYTpWk7 0w4O5H0L7LiU7rvQh9HSwuGllneVYoL8rgkePnIqIUQjsMbStSyMnxjtJ0A== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d364jsvgk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:11 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-5093a985e21so358280241cf.3 for ; Mon, 23 Mar 2026 15:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305550; x=1774910350; 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=B9asEZTiwgOxkTFSnqAlxLluwPhtr6CUSUptHS5X9B7HoFvLpj3pa0CmG8bh1xMOPw erbJwH4DuT1oqQxY5UHiR4PVw80nk5MFean0HAhecT3wq7NWTmTrUONGM5D5TuS9DcFM E4ZJ2VgD3I6yc3lnoYmgC38FQQClZdm6xjDsZvxmlpVYF7NfFoQX7DJ8bU0I/MCxNPrx wPNQsERkG1nm4jaoZq+Bs7u8U+x4rw31nICcyRRWYFX9nRhCKLw4zggedhlMkQjGLb+o S1udlYxDJ7tu7AAXpJTZw6bX4YAvEo9v+Zj+P7Y7IfYpFEPXBAQlAv/5B/EJF5O3CDHO VYbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305550; x=1774910350; 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=PZE3dEXMQby/jKNC/SqNLLpY5oO+Ns6LCNWi+JS556TFcd/WSqCLD/41mKl3cCRKkh FMBAcKfuBAVZwj50PUbFKMsiIxi5aSfHoch7b8v9DZ/Mgtx+kAsByPY9MGc9vq/2d+5F +wElpu1W133MWyEg4KV7jYmhjT7ze4kpTaJEQzNEo3HYK3Urdtab2Xv0cx1BrWmI4hQU ZvTQlr9Dx/sCzAqw+djb8At9PuA2DlqxevgXFNkoS5wxMsNmz0u95mGQWMDNUmSjICi7 96cQr9VfndrGAduZAVefk7T1TgqSbT+3+r61hD2GYGssGnzdR5x+Iqoa3AviZQOUcIRo 1N8Q== X-Forwarded-Encrypted: i=1; AJvYcCURdoLfZH3juPQvqaJ02ezXxq9v/lAN0SpN5y/EMcSw4kHMtN1jIwGNe8bDVluBlKOhRTdKj+Q1hAcm6Dw=@vger.kernel.org X-Gm-Message-State: AOJu0YyPSRsVic0rgwlfyQFKVqIsDB5Zb4bLHx9Dix9x2U1DgQcXSkUm g2Tp5JjpvcjH6wsRl3UC4TSJcpgeCEVuAKuhjGYKCWgHEufllSWmYwmb+gg2pmMBXFSFe8+IvYy kGbin3nK5PyQdgko3noVniEzQKfg4ONBxJ+KPYEwQcs17Y/OGK2Micjm05R64W891tnE= X-Gm-Gg: ATEYQzySt+z4rY4RDkqYF2eB3SADld6PpciDtWscaiosJEyWZ8K68RScRLzvnBySjAf BR8lLgL9wqIzFbpSxsbv2nV9dnXqSRvN4Cy5OsYfhPXWBDEZiSQqikgwUSFha2ennpgpuHxWVs2 9+9KF4oY74GDU+iCAKWv010R37bqwWKgwL/QEHoVRCNunwrWnnFQEH2k6ibEcJ2xvc99wJZGuRa wJT5rUjPzmpToBdyba3X/+i9m4YzjLpV0ukQWoVYEu2kssYqSLqtEZWF1bU4kli4aEYi8/XSRQa yYSBX+Rx40so0DuM5W/XE8Zii/NYuoMuocP9sDWc5onc1qhu8/nVx9i8shJXNoP27BKdXaaZicV tDSnwMBG0U7Wew1J4I9d3lIThQ9C4ogoF7TH01Nmts4GOmt5AayONneQ= X-Received: by 2002:a05:622a:1f8a:b0:50b:534f:4292 with SMTP id d75a77b69052e-50b534f4a60mr103772611cf.35.1774305550101; Mon, 23 Mar 2026 15:39:10 -0700 (PDT) X-Received: by 2002:a05:622a:1f8a:b0:50b:534f:4292 with SMTP id d75a77b69052e-50b534f4a60mr103772411cf.35.1774305549649; Mon, 23 Mar 2026 15:39:09 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b64715539sm33320351f8f.33.2026.03.23.15.39.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:09 -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 v7 08/13] ASoC: qcom: q6dsp: Add Senary MI2S audio interface support Date: Mon, 23 Mar 2026 22:38:40 +0000 Message-ID: <20260323223845.2126142-9-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260323223845.2126142-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260323223845.2126142-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-GUID: kiwfNjjkCbZOfFBzBHkvimeFYr6wMtOx X-Proofpoint-ORIG-GUID: kiwfNjjkCbZOfFBzBHkvimeFYr6wMtOx X-Authority-Analysis: v=2.4 cv=JcaxbEKV c=1 sm=1 tr=0 ts=69c1c10f cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=yvctMs8w4tAFySAdhFMA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX7CccQogKxg7b spmP70bo3QCdpQ2/flO4Y7AGXeqPwW0NimOWKdMoUct4XYESJoPoBuNNqJ61ho1Yr18/FAmtTql AfzrmteX0RmGq/iSzyygOBrOjb8xYmxOI6P+mNV6tKdJbKLi4lx3YPN7Jx4GAeD0rJQxzzNVu2l FDMqZ5DVe/mdtCgV+LylP2zZMz1uB0lHPjbGN4VNqdMVCn5MFyJ94tQXx134txTmm4FrvOr+xe+ G6hp+B81iBsWyGtRM/mrpcLToToLSJ78/f3haDUNtcZn9B2h1hgTKq08SwvSvCl8BTsoJWhNC8H qPRgMdRiYFrd2lCvTZKIr2hg5PqBaHrr6xWLrizmDz5JKDtjY1521ukWqqEQcXIlluigNlKt8Z4 0Ll/zOn5NC6HpS62xZBU84CnYuAbJg0jvGiWOMiJ9zYUa8JUSay3SOx9frFv82/WKZ4ZeqKtJ0t VdsbBVgWGdght6UIozw== 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-23_06,2026-03-23_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230167 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