From nobody Sun Apr 5 16:48:06 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 0185640DFCC for ; Mon, 23 Mar 2026 22:38:57 +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=1774305539; cv=none; b=C/XBjClhxzaHCiamkl1Yg4Et1G0ckKd9LyJCG1GjqNRJVyd2N5i044HtxH5HwBL6JJih9REQzI6ipg8OPSVdhcrLj4GQfHzXgFNww2ppv17Q7cMGH51Hqj7jw0Ebr5sD05lFYZ83lQlm9vA3ZhLUaCiBWSrn6sCYaLYfvUh8i5g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305539; c=relaxed/simple; bh=ioMmjxhpKgEGbU9Q5ZhuNjYP6+vM1Ed4pEa/HmaRSl8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DblLJoSVQSiaFx8jWshxtwY0n9M3OFT+X1iJ8mnvApTRdPkeozSQR9HhVKPHj4XIscotAqFUtxDNGxoDvLXMbKmSQVRu5uv5WeJCITRy0kED5Okg4KMg8lUO+LdP/C8I/rNr/7mmB2dznIUAG7L7BV4UUIorNw7xK8rVgz45P1g= 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=J7lnKh4n; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KyrlHnLN; 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="J7lnKh4n"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KyrlHnLN" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NIYiTi1908879 for ; Mon, 23 Mar 2026 22:38:57 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=NKjWGmdRv65 20W4OaNXC1TctOioozKWeG4nDgD3XJX8=; b=J7lnKh4nKYwg/C/dKoq1iDK4klP uH3NhYoikvDD7U7jbGrDsgDrVWrKbazTt/YPIpAKDqvHeyZq1XM/V7baRCMmnLPq cQX171n3fLvCDld42tgJq1RAcLzYjV+JR//bS7nuQ3LZ/UyCChzE074Bn8qv08Zx +lAp398U5xH4WqfpB50HHqcNuIP2hBPmMPHTOG7GW0XcY8Y1Ftl/ccm4oIxZxnT/ YLiOcf4FpM2bWcQxtKeq7sVBJJI7dBagBE8nPVJRwQloG781lpvshsJI8n7hpUxA WH17Ba8wjHIyNU77G1rUIY4qp1npKHzRSMH5LA5uhYpFAY3s0N0VGR4rmkA== Received: from mail-qv1-f71.google.com (mail-qv1-f71.google.com [209.85.219.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d3awyrnrv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:38:57 +0000 (GMT) Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-89c56a7e610so38728686d6.0 for ; Mon, 23 Mar 2026 15:38:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305536; x=1774910336; 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=NKjWGmdRv6520W4OaNXC1TctOioozKWeG4nDgD3XJX8=; b=KyrlHnLNk4b8qcnHnbG51iDVabw4Tr9v1GQXpWyVSss7weeKnK42KGqYZbC/0FRKzg sEOy4REtH/Biu5l2vj0gSZHG8mhNA6C+CQODpm1AkwA79Q7W+DzR/7ztOUIPhwjx9q/n QWZJup1IZ9wF96tFeFH/t/Bma40BIo1xISDslaRSAilAF8CATqEoe2KaAbI215efUaA1 3KuMjzPRInMM+dtvD5seD8PojS9ouMLH9bgLWT4+rrYwTvJj/3DhfbLlt2KorWGdK0+G Ppq825ssQl/73PHVAcW2IwUxJ/aWFilOuej1OAAXS5NTVW8d6GOroNrr6JwitIxhlwrj pEfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305536; x=1774910336; 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=NKjWGmdRv6520W4OaNXC1TctOioozKWeG4nDgD3XJX8=; b=Wyx2qOIGe2Ww8WgyO/OHi01GBPp99wKydSp4unywt67X1hEx8eTzVBY5VynRi9KKqL 5dYV+6vw76Gyq/ldvZRRznxxjsjATTxfd7rw8zq7T+EpT2BhXL76Px+3Yxh87c34BOFa UvaH6pVkRYAQFLzSoKTQajgyFqmDoZG0k6jI2ctlUUSaThXJVD8H5CKu2sES8otjs+YS mms6ZPDntY42e9wKfgzuR1Qv+92VKV0jIlpKbic2KzJILhPVwW1Gu5Doyo4cFqIxrnvM 4y9gQbifVq0ghsdHu2b7HS8pegiLPUgTJPfVnSavNHutq7s2DJuH/1lJI3dAMyLhr57M BNew== X-Forwarded-Encrypted: i=1; AJvYcCWOB77qZjVNJPywkxPimwfXOHNEvR80wn5cIo8tmo/Epe1KwDNca277QZSYa3Ebu2RUJ3wHaxl5bLII2qI=@vger.kernel.org X-Gm-Message-State: AOJu0YxgXtlbnWNh5V4koWqWHbu2ziCw/IrZS6aTXDmuFU5U1uv216qn pwKsGccw+NJcV3T+9J2Vl0icMsfyRl+CQjHeYHmTwzpX6Nnkss4W7W1qtZW+mxCbvCIzmstKW5/ g7lsc5qAz1KNJ84BqPDRngx7NVrYmE7lcm+TLffyeamN0EEXLAifT7IphJ+tMZwXWdOU= X-Gm-Gg: ATEYQzzfNlEfKZ/ALGA7AnItGLchKELEd82jodXTaMS2DUq2PDtJnJPhktjhe8cYL1D /4foaN3vbB33ryNRPFS258a69ZGxHapPPeCwaE748W26PK8q0BarmOoJGbBF3OAFSPuFTtPwP5v bCxx5eZo+tEdBPPISpPUQgcSeUQHpo+s4SW2yAGSwNVBNyGu85cNhJfCJVn1rcmMRf/WfRWYIEl T0xVygwFjQowNta1MTsnqAjbMC92+XvQ7PmYXUkrh5p2uECnkjQ+oLC3iYzl/eXvfQl3L6toWVg saMdFbOILEKl6bh0hDZNUXFCQWBTtx2zInJPcw+5aKSLrYjSX+Hwef1mXUdeNL7R6mBmPt+U9PN 64X/ZfLd/tC+E+/jSkD+KqXviKoUZeleBEZmBEduskr+bac3KwnwY85I= X-Received: by 2002:a05:622a:7c8f:b0:509:11c6:d689 with SMTP id d75a77b69052e-50b373eb1d9mr136215321cf.25.1774305536267; Mon, 23 Mar 2026 15:38:56 -0700 (PDT) X-Received: by 2002:a05:622a:7c8f:b0:509:11c6:d689 with SMTP id d75a77b69052e-50b373eb1d9mr136215021cf.25.1774305535804; Mon, 23 Mar 2026 15:38:55 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b64715539sm33320351f8f.33.2026.03.23.15.38.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:38:55 -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 01/13] ASoC: qcom: q6apm: move component registration to unmanaged version Date: Mon, 23 Mar 2026 22:38:33 +0000 Message-ID: <20260323223845.2126142-2-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-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX7+68I7Rgphv5 CABJVQeKdy3EO9Ivc1fw6YVg5fXPN1bfqef+a3mWKmt86+tUfXpBh1LDpFSqi0JxzVZtAZCMK4e 1ZvTsx/6SBPwtpUsdgBwSYkAR9N6adR9MoES2s8QzNrmUqjEJ5pviUtE0aUqxezK40/2nBgEKcy ny+1OUoBswAydKUASw0PrCmRmNsQ2HcJmbrhyJC6z7tiogNsUOA3CuiEd7ZFyLfHcENV03ncX5s eMlfc+HhSH1eH42zgX6RILxsZqslRKBN2X1gYghLqNvEwQqKUT+vsAIvE4WshS4TjqNwF9gcpUu UlpNk0sVqILupbGF+Yxu+4VpWdGK8+xxZokH7C8new6IWMQEnrPp7z28h4bx+T9KyXQhHg5onpc VAFiBuXaCOWKGHkwy93P1Fw0L2sEPHb6eQjISG73Qo9z0u9fyH4VzTRR90wvtF4Gdv4wmADhHbW 4QKuflOn98BMo3J3jKg== X-Proofpoint-ORIG-GUID: 7ZueU7guRhpz3Y-UZpUIKaNWBaFLO8CE X-Authority-Analysis: v=2.4 cv=KuhAGGWN c=1 sm=1 tr=0 ts=69c1c101 cx=c_pps a=UgVkIMxJMSkC9lv97toC5g==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=ZjLH_7kMUelE1Q3ziugA:9 a=1HOtulTD9v-eNWfpl4qZ:22 X-Proofpoint-GUID: 7ZueU7guRhpz3Y-UZpUIKaNWBaFLO8CE 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 bulkscore=0 malwarescore=0 phishscore=0 priorityscore=1501 impostorscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 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" q6apm component registers dais dynamically from ASoC toplology, which are allocated using device managed version apis. Allocating both component and dynamic dais using managed version could lead to incorrect free ordering, dai will be freed while component still holding references to it. Fix this issue by moving component to unmanged version so that the dai pointers are only freeded after the component is removed. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D BUG: KASAN: slab-use-after-free in snd_soc_del_component_unlocked+0x3d4/0x4= 00 [snd_soc_core] Read of size 8 at addr ffff00084493a6e8 by task kworker/u48:0/3426 Tainted: [W]=3DWARN Hardware name: LENOVO 21N2ZC5PUS/21N2ZC5PUS, BIOS N42ET57W (1.31 ) 08/08/20= 24 Workqueue: pdr_notifier_wq pdr_notifier_work [pdr_interface] Call trace: show_stack+0x28/0x7c (C) dump_stack_lvl+0x60/0x80 print_report+0x160/0x4b4 kasan_report+0xac/0xfc __asan_report_load8_noabort+0x20/0x34 snd_soc_del_component_unlocked+0x3d4/0x400 [snd_soc_core] snd_soc_unregister_component_by_driver+0x50/0x88 [snd_soc_core] devm_component_release+0x30/0x5c [snd_soc_core] devres_release_all+0x13c/0x210 device_unbind_cleanup+0x20/0x190 device_release_driver_internal+0x350/0x468 device_release_driver+0x18/0x30 bus_remove_device+0x1a0/0x35c device_del+0x314/0x7f0 device_unregister+0x20/0xbc apr_remove_device+0x5c/0x7c [apr] device_for_each_child+0xd8/0x160 apr_pd_status+0x7c/0xa8 [apr] pdr_notifier_work+0x114/0x240 [pdr_interface] process_one_work+0x500/0xb70 worker_thread+0x630/0xfb0 kthread+0x370/0x6c0 ret_from_fork+0x10/0x20 Allocated by task 77: kasan_save_stack+0x40/0x68 kasan_save_track+0x20/0x40 kasan_save_alloc_info+0x44/0x58 __kasan_kmalloc+0xbc/0xdc __kmalloc_node_track_caller_noprof+0x1f4/0x620 devm_kmalloc+0x7c/0x1c8 snd_soc_register_dai+0x50/0x4f0 [snd_soc_core] soc_tplg_pcm_elems_load+0x55c/0x1eb8 [snd_soc_core] snd_soc_tplg_component_load+0x4f8/0xb60 [snd_soc_core] audioreach_tplg_init+0x124/0x1fc [snd_q6apm] q6apm_audio_probe+0x10/0x1c [snd_q6apm] snd_soc_component_probe+0x5c/0x118 [snd_soc_core] soc_probe_component+0x44c/0xaf0 [snd_soc_core] snd_soc_bind_card+0xad0/0x2370 [snd_soc_core] snd_soc_register_card+0x3b0/0x4c0 [snd_soc_core] devm_snd_soc_register_card+0x50/0xc8 [snd_soc_core] x1e80100_platform_probe+0x208/0x368 [snd_soc_x1e80100] platform_probe+0xc0/0x188 really_probe+0x188/0x804 __driver_probe_device+0x158/0x358 driver_probe_device+0x60/0x190 __device_attach_driver+0x16c/0x2a8 bus_for_each_drv+0x100/0x194 __device_attach+0x174/0x380 device_initial_probe+0x14/0x20 bus_probe_device+0x124/0x154 deferred_probe_work_func+0x140/0x220 process_one_work+0x500/0xb70 worker_thread+0x630/0xfb0 kthread+0x370/0x6c0 ret_from_fork+0x10/0x20 Freed by task 3426: kasan_save_stack+0x40/0x68 kasan_save_track+0x20/0x40 __kasan_save_free_info+0x4c/0x80 __kasan_slab_free+0x78/0xa0 kfree+0x100/0x4a4 devres_release_all+0x144/0x210 device_unbind_cleanup+0x20/0x190 device_release_driver_internal+0x350/0x468 device_release_driver+0x18/0x30 bus_remove_device+0x1a0/0x35c device_del+0x314/0x7f0 device_unregister+0x20/0xbc apr_remove_device+0x5c/0x7c [apr] device_for_each_child+0xd8/0x160 apr_pd_status+0x7c/0xa8 [apr] pdr_notifier_work+0x114/0x240 [pdr_interface] process_one_work+0x500/0xb70 worker_thread+0x630/0xfb0 kthread+0x370/0x6c0 ret_from_fork+0x10/0x20 Fixes: 5477518b8a0e ("ASoC: qdsp6: audioreach: add q6apm support") Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c index 970b08c89bb3..fece0e3def23 100644 --- a/sound/soc/qcom/qdsp6/q6apm.c +++ b/sound/soc/qcom/qdsp6/q6apm.c @@ -747,7 +747,7 @@ static int apm_probe(gpr_device_t *gdev) =20 q6apm_get_apm_state(apm); =20 - ret =3D devm_snd_soc_register_component(dev, &q6apm_audio_component, NULL= , 0); + ret =3D snd_soc_register_component(dev, &q6apm_audio_component, NULL, 0); if (ret < 0) { dev_err(dev, "failed to register q6apm: %d\n", ret); return ret; @@ -756,6 +756,11 @@ static int apm_probe(gpr_device_t *gdev) return of_platform_populate(dev->of_node, NULL, NULL, dev); } =20 +static void apm_remove(gpr_device_t *gdev) +{ + snd_soc_unregister_component(&gdev->dev); +} + struct audioreach_module *q6apm_find_module_by_mid(struct q6apm_graph *gra= ph, uint32_t mid) { struct audioreach_graph_info *info =3D graph->info; @@ -820,6 +825,7 @@ MODULE_DEVICE_TABLE(of, apm_device_id); =20 static gpr_driver_t apm_driver =3D { .probe =3D apm_probe, + .remove =3D apm_remove, .gpr_callback =3D apm_callback, .driver =3D { .name =3D "qcom-apm", --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 3F047382363 for ; Mon, 23 Mar 2026 22:39:00 +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=1774305541; cv=none; b=YABWtgyOimpI9hPw6ZdPkx+vLIMImkd4h95jbG1SM0SXWaOegMfOAb+e1jwWP47+qgNhCdqpcvm7Q/oSz6Cj9jAthmo0pP6LH3n+CegSBFZQkoa+SyYaLd1v0PZFsC6EK0eFq/OJDQuFvfblPjBhoUBi41tOGnG++Y8ViSDe+Hs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305541; c=relaxed/simple; bh=sxyYbj3zxGyfRpI3tYXCbVwGVDNatdwD9Ux1a88/YYo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SAW1QMQ744xddU4h63o6PF+Hn3z+Gxbs2y6fdUmVTOSPC6qRAVF9f9Xqml3HVsuZZJgoevMzW8XaOMeyJ9POsAohNGoKcijj4dIvpGsohjZai27s/BbcknJimRwSM7TVKhpRKoNGr7QqBBUHD2eMpOSmZe3wqjcT6uFv8xaRWZA= 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=lV8xFN9/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YptF6tRk; 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="lV8xFN9/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YptF6tRk" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NHr8j5618876 for ; Mon, 23 Mar 2026 22:38:59 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=oI+beZBCKKS Zpk28i+hefm0WpeZ3W9cTVjnimZxiaSY=; b=lV8xFN9/TBAjLhYgdfMNI+bKSB2 QMU9jSC21p0V9CmIVqHuf0fkwMeDgVooN5ACBDkl+867BOWlYh/bGQSxzYBZrGbH e4XGmxE5bWCcYF4FzFU7hGEtzbDDH/PdudpOfCKV1jsceQJKMmwurSm73Bgze7jN y5eLOQ2vznshyrfLbfnDjinmXWZdetHrnsCHiBKXrpb27L3L7KeMhDotKj21XQG/ EHb7deJuyqdes2uGIueJgmpSrLRdrm3N5/9DfbacG1YYExHUTy1pNVqdcZ+GIjeE JCY3JWlLtG6HcrgmCMeJpcQ7ijfZq1JMDRxz7IWKaLh2VGwYjGVnEgmFgeQ== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d31jgjyry-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:38:59 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-5091327215dso185941291cf.1 for ; Mon, 23 Mar 2026 15:38:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305538; x=1774910338; 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=oI+beZBCKKSZpk28i+hefm0WpeZ3W9cTVjnimZxiaSY=; b=YptF6tRk4dyRhrmBB8GcwfQ8kiVJmaOE5WiMBTUpLdX6o7cCpo0bqWLdzNZxWCzuG2 u7JRgo5vucy2id+c+QITl5OHNjSCqMe7hEDCglBq/8GR9W3Oau77mDtv7XCxL9jYXBJ4 M4fjUtCeE53PsH9QtlEldelbpEBG1Le5DxQfGb8UA2sU1DMFKl/praM14Hz08iswNPU5 DQ99FpcwG+5p5wQEGM61ApOotgPCWGRuwq6rvS4TT1ROPUknar1GDKfiYXd5H57Ge1P8 cRkvSJfOw/P5YRzQV8bEV1Ag3qmnCxoiSll8u9P+sFhVzWusMggJ1lRvB5Jagxg0UUps j7PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305538; x=1774910338; 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=oI+beZBCKKSZpk28i+hefm0WpeZ3W9cTVjnimZxiaSY=; b=qOUYXaJX5VCYyYNRaUuT6idC+gXwddAX1Nuh/dhz3gBwfVSpqMFHQnnzsnUcoEz3WI POj4kPwT+sZUynaZDubZr/spaZ7WvnrRmrCHDvzsfxlxWSE0sjkZZ8Uyqjc8Z3etjx62 vS5aBXBhnT3pMfDxamwvmDckJ6HZ/xnpNdxPWSzkws2AwUeTke6DI+q29VlhJ0JeHMi9 QoOZHNz9y04wTXnRSGHBws9aqSxPhLafyBLPxZtjwm5ykzZzU8qUMs8ItRzugMn0L3T8 jo++wlp/X52FixYWxk33RsT6M4ch5S5L/0ueDqLiGmKPVCgdbecock5v2j99vouiZBMz I3wg== X-Forwarded-Encrypted: i=1; AJvYcCXPpJZZ5r0YYmlOBSBDFC3xEY2UiPHsbpUEBVmx2DobOne/g7oCbwsAssYc0X1YgOC6rhZa+cO0g/8U4No=@vger.kernel.org X-Gm-Message-State: AOJu0YyZnIVdmB7WA85VvwWwz1yB5u6ntZhTeOEIo96NANdSVhhJNmRI hVlUAIFblWFh43m81XXzbgVWUSlMoVNxdkpSD+ovCPFjJaLEElF5iasgm0ZUfq85HeCNnt8ez7g AY9bK+v8OpIQuXwaA7ksq9PB6DEG81CGFlMIcrRbK9RI4pnxtSYYKK4tsCXy/cm8ctcE= X-Gm-Gg: ATEYQzztW45Rni3ecfFt3lqlB0CngsB6EqVsuTp6nhjjSi0dZvcU08lUWtM226i2R5X Oh5vGcKYQScmgGAFoNzfQz4nhYPLtrHqWnLpu6LewKwX9z9IVEdvG/e23mns9P+Jnog3xgGS3g2 dxw3KtYa5rrNXdC7bHS4Bm7N4nawdCy1Z5/tKA8Fr9Pw1DFbVS4ZZekq8cNvOxpb2iD1u8RZWBS lm3UdrOzcUc9asFWlUul6W66MObWjW+W6RJ0LxJxGSHEfMjudzYhfgVzgsHNMCpgTSf8QrR4fKI GuERkWEtEbiE40+NaicUOEVBd0bSAWKZ2/FB+pEAX9WZXyJPSU1MZUAvgbpUoQkxJpjrHlOOwG3 1JkduXTnvG/kLj9af4FlIZu+Qsel2e36QQZKwhWScVHDEm2mReuql1Bo= X-Received: by 2002:a05:622a:154:b0:50b:51e9:2e8b with SMTP id d75a77b69052e-50b51e9310emr116997301cf.11.1774305538503; Mon, 23 Mar 2026 15:38:58 -0700 (PDT) X-Received: by 2002:a05:622a:154:b0:50b:51e9:2e8b with SMTP id d75a77b69052e-50b51e9310emr116996401cf.11.1774305537179; Mon, 23 Mar 2026 15:38:57 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b64715539sm33320351f8f.33.2026.03.23.15.38.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:38:56 -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 02/13] ASoC: qcom: q6apm: remove child devices when apm is removed Date: Mon, 23 Mar 2026 22:38:34 +0000 Message-ID: <20260323223845.2126142-3-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: oNtDjC3Onny21EfpWjt7liysVqkkaFd6 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX2Mgts3MNsGB/ fY1oa1mDiiNxfnPMQqWkUuaHSdJ4MadjqfsTPqaJR0u/FGlk8qH/tiz6zj69lr23WPWJvdMlKz+ tFreEDatD51Cn5XapAf1a6TbGHwjuObYn3zwsejbaRqz+71lS7xP2wUEY5b8RKwXrX3MD33w0WE HQeP0KhOBcrw5aKsCKWDgAtRgixW+9twLEsVdr0GnOwOqZXAjfsnH9BxdwWAnEw1+n5M+oInEv7 A5uQkBOQhJm/48O+5apre1x4GyQV+XFbpe+ahSOFO5JkhGtAQBC08IiRm/Qgr03J1vDh1eh94Tp ddGwKZkAy36oNZSvqZJo8S1JwEU8se/zlRmpyypIujTYoFQOO/Mp/cAeA0YYkxWAmAdz6+7j2S6 tSi3lzpGz/pRofFQdreqNbF8XOC0XeuADdLD9kUwYqhq2xaxZO/Vu3hzuUwpKZpcVE/zDnCPUN1 wOu85U8+ttebOCtiUIQ== X-Authority-Analysis: v=2.4 cv=CMInnBrD c=1 sm=1 tr=0 ts=69c1c103 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=WbEMVPVtDBSXEMPt_8MA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-ORIG-GUID: oNtDjC3Onny21EfpWjt7liysVqkkaFd6 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 bulkscore=0 clxscore=1015 malwarescore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 spamscore=0 phishscore=0 impostorscore=0 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" looks like q6apm driver does not remove the child driver q6apm-dai and q6apm-bedais when the this driver is removed. Fix this by using a manage version of of_platfom_populate. With this change when the dsp is shutdown all the devices associated with q6apm will now be removed. Fixes: 5477518b8a0e ("ASoC: qdsp6: audioreach: add q6apm support") Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c index fece0e3def23..1fbcbbf3123d 100644 --- a/sound/soc/qcom/qdsp6/q6apm.c +++ b/sound/soc/qcom/qdsp6/q6apm.c @@ -753,7 +753,7 @@ static int apm_probe(gpr_device_t *gdev) return ret; } =20 - return of_platform_populate(dev->of_node, NULL, NULL, dev); + return devm_of_platform_populate(dev); } =20 static void apm_remove(gpr_device_t *gdev) --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 C61A1383C60 for ; Mon, 23 Mar 2026 22:39:01 +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=1774305543; cv=none; b=moOG+tDU0Hv1uiOpv8CS5oRFHILnpu8EAYYPBiBcarzv0paaQKYcJXXoJM8byGQnyFsD/MIotq90LRY5a6vKiYnZvCis8tI/NmQ1yWfv91xjUNWlVdZdLxbe31bd+IW8lYbRRJTRxfSfzXC3LOz63hyAncW43PLE971+wGZJ8R4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305543; c=relaxed/simple; bh=6jShP5otc7Z/xglFZY5mqaUqDhEckaI1JOm+jwe6kcI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LXR9voeYXj0rl3SQMPEaEyHuulX8cED5RkWiOYaVVS6pphQhDHfE0AdU9BASqpD7l9Yj4SIIKz/GxXsAWoWTe2jkh2X1aqvwLPPyGSoWTXpZDgFlZGpMN4yvIK5e+5eknZdJzQv5p/BuGXf/j6t//oCWmPS4FmtUbpTNUi+T7UQ= 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=FPNH7VQ4; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Hap2eZjr; 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="FPNH7VQ4"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Hap2eZjr" 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 62NHquhj2832908 for ; Mon, 23 Mar 2026 22:39:01 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=xKWL+GAYqNp +tTujHQMkzR7HCGoYVVs3sPVjIKR0hiY=; b=FPNH7VQ4erEtxC/8Mwb9Y3Nnj8l i1ArmT01rOSlVdzYTbM5M6OWLFeaFg8Ggw5QfvHa8l1H6EkePTMuRKoBhs7H0wwH G4PxmzgO6RLe4n/LTDf2B6cz7nLfUOXsy3rOZOcwihssgxCXJAjRHaeBSLFWLRtI zW1zDsJdcMo+x7nORRXlFhS3yDUjYzjrk0HBOKASRppW4A3xI6nXGRLqCmxgu6C8 D+gktW00VUTxY3rcY0B0xFQaorr5gbsTTFaDoH/xXICbExT+lxLzkpSYODVj9rL7 UlqAPY9Mj42OpfptyXXLiVQ5Ghy7Dr4hb50iBtSai+01SF17L8Yvm5ZVU7Q== 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 4d364jsvfu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:01 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50b469e5543so7322541cf.1 for ; Mon, 23 Mar 2026 15:39:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305540; x=1774910340; 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=xKWL+GAYqNp+tTujHQMkzR7HCGoYVVs3sPVjIKR0hiY=; b=Hap2eZjr9fptovNS3B6uIFH2F/ZQOv2pdHfMf4JAmXGxJU1o59kHLCG5M9Aqt5H7hV Ie8o3BeExlozARIuAdCA5zf8+XFvmQs1/Au09JnXJEpXxxDCsUef5U3sRYLnvO3K5D6X BSID7eKUMoFBXYV5zfe24ik+FyDzvToJXcCBSzVmmdjyQGMjBlIQpUf7ZUA+oFYY6w2L Gq7d+yB9e+jBricWlakCvzzPcl3plKhBrWIZ2Z47i0uCdHPhzWUez/NG3AhsIzulL/ed NFt94wUfuPtUojJPPQqxRxr5qPcDBN/aaVhSHxUpoHkjH6pQ4iBzLHnvoEqp5ceNN7fd cRsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305540; x=1774910340; 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=xKWL+GAYqNp+tTujHQMkzR7HCGoYVVs3sPVjIKR0hiY=; b=EtNdVsn6E+Ml7+f87xte0QeAMaPODAVPPxlxcV5M8vyhkrKFvnaWF9ccqDKbulXCPM cZRt38hgoKCM40fFrS7NH7m8zI9h39JTpxXAzleZT4lZc+UsTrafu3rjk8MnBcwwhtOg uHljt3B3Wm+iqV5/NJ4N76irIXbSBFD7ODGx+WFX8WLW4tpggOJIRwUHZ/SsnkgrnfxU uVJ1MfLVWygB+iGwG2HZiY/Z3/XK+Ehh7cvPAnionKr+LAY9so/yPQWZ/ms+mzgJbeEr u1xqRQy9y8fEht52gjqjTE0ci6t0skCdAj0HeLNfoqzWJhEl0TyA8aB+eduDWJMkbYUE 4Mzg== X-Forwarded-Encrypted: i=1; AJvYcCXBXuQwA5Hg84A98HIa5LGnrkKh5tcJwSdA+A41UvK295TGNcGUUFZB9VcI1MHF8fOqWGgDjqHWWmzUzto=@vger.kernel.org X-Gm-Message-State: AOJu0Yxk/xw+zh/pJZSuqZlAveBWCBth/xO6LisCySNormmvz1tTLec4 8JpOwDj+2d56S98D4hh8nrou/+mhMi1c5DcyX0grH+Ot7DoIV0CgwBRsV10eScoXJGticcaN/M7 hjVA5MQQ7b9xpwxov0UoqGCV+otlQSL41AhiAC6IwIxnDuUKdaoxq9Z8vWLKoqm+X5v0= X-Gm-Gg: ATEYQzzUNuw62Cq3H/kjq8xNjJPqO2IP0QOnO89oQ1OTGxfktVP8HO/wzE9Fw/Pw301 +i5HFsJweYXW/FgZNhkjyLzWa17ZhWyKcOnoNxmSJz9jubp9WLp/uyRkZdQLZ4btYAI8bDNNec+ 9Gi3pfpvUvwgH7TTwxawDRltRuFFyFqvZzeyHs1/ZBjrO+AnfSPSFxuV2NFb8avt6wMMnckPxc3 9UIn3GbckW8Xvr/bcZQkpVcVOy3aCnGSWmDLHYHJDG9cSSeX/q+xpc2lmxKqNR0HgqUG3yXdPDx Zq3SddqXNtkyGgJ2XLl9HONpHVBXElQviiPtwOPJDdkTsnqP/uzMYCjzyiWi10MxVDZ+JmSdp/v u4VD9nVRN7iYaUisiyd7jA9pMK3zyyCuSkj78Ab0p5jyzXvXzh0OizF4= X-Received: by 2002:a05:622a:6116:b0:4f1:ba0b:90 with SMTP id d75a77b69052e-50b373d08b8mr192255141cf.8.1774305540067; Mon, 23 Mar 2026 15:39:00 -0700 (PDT) X-Received: by 2002:a05:622a:6116:b0:4f1:ba0b:90 with SMTP id d75a77b69052e-50b373d08b8mr192254861cf.8.1774305539641; Mon, 23 Mar 2026 15:38:59 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b64715539sm33320351f8f.33.2026.03.23.15.38.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:38:57 -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 03/13] ASoC: qcom: qdsp6: topology: check widget type before accessing data Date: Mon, 23 Mar 2026 22:38:35 +0000 Message-ID: <20260323223845.2126142-4-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: zxXMNC69OVMNnAl8qdfDhwQ9N6C8MQsl X-Proofpoint-ORIG-GUID: zxXMNC69OVMNnAl8qdfDhwQ9N6C8MQsl X-Authority-Analysis: v=2.4 cv=JcaxbEKV c=1 sm=1 tr=0 ts=69c1c105 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=5HTw2GpdgXbBP0wXRk4A:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX3U0FoLncOT80 9GV6b6fXyJhf+5mAgN0KMk0M6dxYQBtuNDnvmab3GV+I5/NYacBO3PBr1RrHBmuA2sUicgHWHlc yPsY5/bG4/4CJ8TVNECc//wH09B5q/s6WNerjAbxdyrkOTvraW3U7moIlFQVlfaQTBm6k3+TShu JiRPIrI9fVOhkb+r4PCDseXlCBvJ7wh3TLlf96JJCDPXZ5s+dZjZKOiotw5jCyxj45Hs4b2EBBK Yu3lOMuRgqsPPmvFdqR7lfX86AG91R33yKbGvLazuFfHYehFqCZ3yzLi0RxCBVRE2ruYZKHd/UT t7KCkbv0Ucjg6/ofzAN19PLPn2h/Wa0mwG8ZQdVi5iQN0dRVGKiY23lIG/jzM3bLDV5ro0rIP0s gIbQSCk+UiGYRHyvRBnNdbqPmdRHYxzvEM8JDJMSBvtNnVXpxbvcN3tBLhHly0KeVLZ/bnXCgWN Ovku+tyqG9lrxyU2afg== 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" Check widget type before accessing the private data, as this could a virtual widget which is no associated with a dsp graph, container and module. Accessing witout check could lead to incorrect memory access. Fixes: 36ad9bf1d93d ("ASoC: qdsp6: audioreach: add topology support") Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/topology.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sound/soc/qcom/qdsp6/topology.c b/sound/soc/qcom/qdsp6/topolog= y.c index e732fac9b8ca..1f69fba6de26 100644 --- a/sound/soc/qcom/qdsp6/topology.c +++ b/sound/soc/qcom/qdsp6/topology.c @@ -952,9 +952,6 @@ static int audioreach_widget_unload(struct snd_soc_comp= onent *scomp, struct audioreach_container *cont; struct audioreach_module *mod; =20 - mod =3D dobj->private; - cont =3D mod->container; - if (w->id =3D=3D snd_soc_dapm_mixer) { /* virtual widget */ struct snd_ar_control *scontrol =3D dobj->private; @@ -963,6 +960,11 @@ static int audioreach_widget_unload(struct snd_soc_com= ponent *scomp, kfree(scontrol); return 0; } + mod =3D dobj->private; + if (!mod) + return 0; + + cont =3D mod->container; =20 mutex_lock(&apm->lock); idr_remove(&apm->modules_idr, mod->instance_id); --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 C4157383C99 for ; Mon, 23 Mar 2026 22:39:03 +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=1774305545; cv=none; b=Xm6jWnUQ0alAMZqEd8VRexxNb6lKUT3pzgHQaPiwIdiQROoad/YN8lHzTPLmODSM1BwMldK8fuhlotR3v6umev1S4Bks5UsxCMKhkdBZgJIUlmVPrZVARk5c6Dd1/AmLkv4vn9XYuzeoeclK78hbBdzNU1yewKGcsdxm/KNbJE0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305545; c=relaxed/simple; bh=Nn5W6j2KgfG3MXrQpHQ1hcxXhxv/yUbhKAiv5Knj23A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eVG4R3vs+nzAPa+cU34GZIt53+1LsV+t4aP4NnXDHFieXn/lcf3yaz/LofWYd/CEkt09S6DbnySJhizTCeidwwl30VfV53V2vZVvmO8XdAiHylLGmDf3WeFvnIoGJiTgCu/Z29JokqUrLvwphMyDkkBL5GT2vrmc8vsUFn9jm+Y= 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=QHbJWsIx; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gSxYg5FJ; 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="QHbJWsIx"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gSxYg5FJ" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NIYiTj1908879 for ; Mon, 23 Mar 2026 22:39:03 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=it+OAEpYU8v 0MR39X1WR6T1UKdIHL61i+TcaqL8baj4=; b=QHbJWsIx/8lLLj6n3P/BeISv0aQ kBaTFMKLD+cxAyz55BUhVzExBgrs1cgJiYNojyZnCC30x68+kVZQnUGvcA91hvNH CdOu4Dt3MncJkU2NlH//PlKCKSxfgoIGhVeF7hC9N3trUtDWcyqm7CV7ai3T3Zql DGHOlqB1c+T9ZTxmhm//WsOlc/hFc+sRghEtJUs3endX3fg7XeHUMitHUHx/E3JU QWj06u13jBrbiLLbGd2qxJ8mkOT2Ux2Hq2nT4nKhInbYhBROWXaQl4BtZ0RjJb4s XtYkpGWEYq3fpELYZ6gJiXG+Vc4/PMO9WvCblHBrSIyDYDd7xAcMS1jnlBg== 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 4d3awyrns7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:03 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5094ba09affso39043181cf.2 for ; Mon, 23 Mar 2026 15:39:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305542; x=1774910342; 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=it+OAEpYU8v0MR39X1WR6T1UKdIHL61i+TcaqL8baj4=; b=gSxYg5FJvmJUWNNPuyFqPVTw8NXuJDjIWJNPOETNL/QXuLed5zx8ISFcFOlOPo5XtE NahxU2a8HRjN/6k3WByFBJMHsBhB/R1rMbNrau+bpJ4Rf72Jl3uZV8++u+bp4n5HrOkN TsM8inZeN5VTpyBShdFkyWoVMgSbhJx2WVuQ0lJlbSfbpT6sgeQZKuudIs8eL9qm0oLA QNbFfC7wJToeRViSvhOCW2xWOOK8ZSxfUeGw5WBxQxdGSVDASNfAlfSHQ48AALCHLtif oZUAbCfYOzQ6FznZlMiFLKAfJEDtqVckrJoxSRxID1yTOeopgvye5w8oqX1z6cuSWIM1 tLUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305542; x=1774910342; 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=it+OAEpYU8v0MR39X1WR6T1UKdIHL61i+TcaqL8baj4=; b=of0tmmPv7MQb05KAfoCLZSH5ZevNwOjGXVpyybEQYze61Wpep7gPqJyIJF2Kl+FBpo H46rAJGm6+dr7ktSaIgofFW2p9v62FJiKXNChnq7picB1erQiGbnRjIAE/0VEFz+bQzd J5hJnDpwMLKMwKInhqV5IuW0qi8D+Yw3nP3jv5D08koQY6wbYxgz7vwYZK9E0D/D+4Bf c5OzqcdUv3ESBbQiNlpkJR0qW1BzI4qglCyBQVsuGnxRBRAgN7ggLiFjFW1aUuNaLhEn n4kWWZlDnWKVr4red6B9m8khHcvABQNSJ/D5xWZZWfQ8gb3Z8CfVu2l0245Efgv3hjrh jxjg== X-Forwarded-Encrypted: i=1; AJvYcCVP/v0ozHoBspmVW9rFqoRuqlJL/az73SBUon5Vly8EEUQ0StQQRCtPQNyHr6qOsK8qQ8MqGd9OcPMtYJc=@vger.kernel.org X-Gm-Message-State: AOJu0YyX+fnwqOCqQSvEyD5AKUiVZ1caVCCrxoyWdo6yF5wN92VAgxW9 kiD4ETwatiZJODUDuYAgQFJYMQjAwJqvcUt0hCt/PoGDreti2oKtt2huaQY0usfNdGqahvS3Xxg er7mFOs8p4zyUiZEPcdq0Le0XakYZn2q7uiN8ByyYFD4a2V7SSsESda6q6DG0fCNYg7w= X-Gm-Gg: ATEYQzzBC5BWCLw5FFIMXFF+uUDLgR2MQL77IS7Tp4y0MAZYe2ZvzJphdYA6YVP+8GF YkOTf1z7Mf7bicF5dV9aq0E2eZ+yPP8Pttnq29Nh3O9yVvJ8MIXT8m7L5a8rF5Yw1OL9nfy0G+/ gqPDkWEgPLu4qcnjro+uV5cmtNGMiC8n62LQj82GuVPm7Ik/LEjsUqs6r0ygOPZX4NlLsk4Lm1g 5I2gO4yJl3yzP0MkAVOo0juBv9bKukNus6/YU/oan8ECyK2kB57ewZ0Xy39qhslmlWmJjkq3fkJ LYuRbgaTQ/SVPYvwZbLpLLJ+istmJYJbGkHQPFSqUangbL0jwCcpcyGkW338FTIeu1G8nBYog56 INONdnhWoGWHfbch+mzx8tp4j5OdmHfvVL3sQ0rVAeYJWlwKBF8YojVg= X-Received: by 2002:a05:622a:5d0b:b0:50b:2eee:4b38 with SMTP id d75a77b69052e-50b373a041dmr159959031cf.8.1774305542228; Mon, 23 Mar 2026 15:39:02 -0700 (PDT) X-Received: by 2002:a05:622a:5d0b:b0:50b:2eee:4b38 with SMTP id d75a77b69052e-50b373a041dmr159958711cf.8.1774305541822; Mon, 23 Mar 2026 15:39:01 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b64715539sm33320351f8f.33.2026.03.23.15.38.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:01 -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 , Stable@vger.kernel.org Subject: [PATCH v7 04/13] ASoC: qcom: q6apm-lpass-dai: Fix multiple graph opens Date: Mon, 23 Mar 2026 22:38:36 +0000 Message-ID: <20260323223845.2126142-5-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-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX1sCwucQnOse4 88K3OfYBcl2p3Ii2pQ7hLB6OpL8MCGJpGN7T9wxy3V1CxPam+0vxL735KnN/znjS7RrqYYf9P77 gSHLcreZkgQ9QXpHUn0Z8u6duIaL4kGYrKndR5p566e72FiupYW9Ta0nr7tL7YkkarnApFdZfgJ jJjdzabEmbiit/B8j+weB11VEDHEN8YANnlx4MDPvOAbCrXmk242dS2SXARjdqASo0iFNSAqh1I PkS/HSgkp4VE1Zr1qSF7jKPqryCgUuUgvc/t8JHLjuJjulGbSCeqU2wBb0h1mUSEY/AiFa341++ uhWqZvWMoSbVIVv87AwwzIKVGyePg5aK5fqBX+3LaIHu8802Ox3uI841LHAmXaNbD2DHqfaaMRA VPGoOBjuOueipfG2YI4HK9/Af3GAj11jvoC6H2d6dv01OMxG6pf6/SXGPKlJTv0vEoTYnvAvseE d62M40rdbHdWHAEB04w== X-Proofpoint-ORIG-GUID: jS4Lklr1zzsm16AKIlrQCXiEBeYge-Z- X-Authority-Analysis: v=2.4 cv=KuhAGGWN c=1 sm=1 tr=0 ts=69c1c107 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=YMgV9FUhrdKAYTUUvYB2:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=M_mAHeyD2EURj3i0m2kA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: jS4Lklr1zzsm16AKIlrQCXiEBeYge-Z- 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 bulkscore=0 malwarescore=0 phishscore=0 priorityscore=1501 impostorscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 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" As prepare can be called mulitple times, this can result in multiple graph opens for playback path. This will result in a memory leaks, fix this by adding a check before opening. Fixes: be1fae62cf25 ("ASoC: q6apm-lpass-dai: close graph on prepare errors") Cc: Stable@vger.kernel.org Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c b/sound/soc/qcom/qdsp6= /q6apm-lpass-dais.c index 5be37eeea329..ba64117b8cfe 100644 --- a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +++ b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c @@ -181,7 +181,7 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_subst= ream *substream, struct s * It is recommend to load DSP with source graph first and then sink * graph, so sequence for playback and capture will be different */ - if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) { + if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK && dai_data->graph= [dai->id] =3D=3D NULL) { graph =3D q6apm_graph_open(dai->dev, NULL, dai->dev, graph_id); if (IS_ERR(graph)) { dev_err(dai->dev, "Failed to open graph (%d)\n", graph_id); --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 3647E384233 for ; Mon, 23 Mar 2026 22:39:05 +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=1774305546; cv=none; b=HletsMTOsy9jRUaMKwpzcoQ8z5UNyYeSrflNNHgjBr5oFTKvVDNmHCy2HSe1FVU3uxybGpMhcyS1Mqk3xLJgcLL0XZYgWd1+rq+PExS8EEVLynas8DQNImQqwcQ8gOs08BuaAT0+8t8AjFUkl1l6L0R2Mvb82Ynkx0lK+KrtqXU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305546; c=relaxed/simple; bh=uSbPbbEF96iO4/jDf1d3kH2TPon+s7DHfw5HFTuRwdk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ovwGTvRWIH9kjMc7q2GhwfchBlB8eCCug5iu9gQHaTollC2d0vmR0FHToq8SeQJNfhCUieVAwiHauHmfxW1HUUAdyOGRNutHBDSNGjAyg77Wq/ANZRtPlf8pwrgPiL+TResISGnQVqk6OtGyXkKaJse7nb8tAyUa7C/eLC/WW4g= 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=UXFPfg4P; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BEcDTOH0; 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="UXFPfg4P"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BEcDTOH0" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NHqYsJ2971814 for ; Mon, 23 Mar 2026 22:39:04 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=/jKQw8dGxLC 6/wkqCmrBcQV0wz2LZBd3Fby8QVjVQNY=; b=UXFPfg4Pc+yf2grujnyk+iEix6P EGl0Ezy9IKDWfnTcxfEvfXpvaAJFq3lHhyjbh1jzAZQGY3JYxrksAaCIj7p/pgZE hfMNe1sd+/7jkyqC58m32NZMcXODN0demDCsiK8ZELr/k1er/+R+WMIZhN+/GTte FcUfTV/TEqls7IDe5JLBacuUYH1InGq1t1lqX2JVbM/EUafhNTnQs1+7ZZ2INz1J w7cSpJLpbyq7wl4cbGBt4x1FaZZ1mB+iEHMkiaXvt0fuBG1oBTX1IcLpHR3/pBZh 9Y9Qbstm4o0EtvMhrI33AwKNTU3OAv6Ir0mqyBfdf3+zNI5gxdF1/hZ7mQg== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d31jc309j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:04 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-509219f94b0so61547151cf.3 for ; Mon, 23 Mar 2026 15:39:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305544; x=1774910344; 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=/jKQw8dGxLC6/wkqCmrBcQV0wz2LZBd3Fby8QVjVQNY=; b=BEcDTOH0KlM6asJ6wnjVNKvGXIuXK3CTdxPmHy+FQO7Qf+LoayBeqMpW2xMwoB4AZj E3dmeSUelNXffw+oTXQAx28xlIoaanZ1k3w7LICnb2tEz43DNQspMDqR3g/5Hi7mpMkC 1C810/nO+dCc9x+q/aydtWdIBOsvn/hFKPnlgf3aq0uJ7mEFWfOv2D5OBRm9a4AX2QZP BhYJPboIZliifUk0bnC5WV/nOnMu9AOkdsvDYe+FCqsA08ObqPQj7tU5NRZQvjJ3QDfo jAOjfXeTFfvKzbyTw4kgwto1vpn/xkEO4cNptVgE+kxy8K/zhhuIuw7dno8RyaHtA8J/ 0T0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305544; x=1774910344; 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=/jKQw8dGxLC6/wkqCmrBcQV0wz2LZBd3Fby8QVjVQNY=; b=Re2Q9obj7va99BhRyDubbqgp+WdFYx5Adt6vCUoTBkPF0P8QmeMQIL/sPBi4gaD3+9 dEqnyNFmuOPDmamu5xxMokk6qOAk69uIHeFR75zuMpZd57kmOkj3oLWL/v0JePScT0Sc jx/YiNDvbga4gU4rvb39mZ5SsuLRKuvko1BcPLCcnq5E3nRzu4AeaC5s+mmGLPWIiuCB ofVOXrgcOPCJrs/Sn8MhWIQ6zfkW66O4tbnf2yKZsx2XkiZ59bqctam/Z/I+vcYRe4hn +32Pf3ZdyZj8VYTqSLWctrsF82kOGac0wslhgm+XAWeOvVdaLqsa68G3JjEnQlS0J+kK UWxA== X-Forwarded-Encrypted: i=1; AJvYcCV6ETgyFPM1sVO4A7RWnFrR30OeTf32K1Gj6HYYpdDOpexH8s03hUQ/JiQPS1EpBfKK9lTKIEpofSoOFB0=@vger.kernel.org X-Gm-Message-State: AOJu0Yz6eob7bbcwhmM90t5OXi/oWYyzkYEaGAWZx2tKQwarEn8ebl/9 SNYiVtcSVATschcwSUsbqzv4NpJdZstmyly9WHwrXhwsAtEunz8LDomVo1DEhSkH4mLNz9B5Fxv wGaOBYGRwnm5odzjxAP1UcBUD6UAb4xqiTTu/1eVxpE5fAKthEEpyr6sRFWfBHpaGtnE= X-Gm-Gg: ATEYQzx8NmSO+wsXcjTm4sW8v5Wus2V80UwGEvhYFfO6h9F06GhQ1lyWA0Uye/++p4a VtDTLx6Cl47yudEJNqCiEl6YjX+vOar2QqNWwfe59kCyManVIWsq3zut9Py4nREJI50SCbu9pbf j+Lxu6RHdETC1V8cFc7BQFi05wsKBUYfA6scYbWRPaPh4BoZXhPOsgKC5PeyNVX+c/D8846T0B8 q4yJuDGyX/f/ARK4KJzDJuVoaScWQnwhkn4hncZds9yt01P4g2400iO7Z+6Rha+8S4YBuWRQA0h O+G4k+p9ffCYDwJlZjTidIjtkfICkTQbfXVHnV037/XNG3xR+s5kmTdwvK+0dQo24S/XOQ5IIYc 3PmTG6nVZoertiWdlBN/zG2mRsjIyHXGSAwt35q4zbUi4CTtbUyqgDX8= X-Received: by 2002:a05:622a:154:b0:50b:6fb2:fe1a with SMTP id d75a77b69052e-50b6fb30404mr14837221cf.42.1774305543679; Mon, 23 Mar 2026 15:39:03 -0700 (PDT) X-Received: by 2002:a05:622a:154:b0:50b:6fb2:fe1a with SMTP id d75a77b69052e-50b6fb30404mr14837011cf.42.1774305543137; Mon, 23 Mar 2026 15:39:03 -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.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:02 -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 , Stable@vger.kernel.org Subject: [PATCH v7 05/13] ASoC: qcom: q6apm-dai: reset queue ptr on trigger stop Date: Mon, 23 Mar 2026 22:38:37 +0000 Message-ID: <20260323223845.2126142-6-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-Authority-Analysis: v=2.4 cv=fKc0HJae c=1 sm=1 tr=0 ts=69c1c108 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=w9bA4Yi6UXS1dLCTJJEA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: 19ggoeukccoNC6L13hzESstmgldIeGfG X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX7PEkdXQCLf0n oLJWECsA4qugl/5gnK68BzmnmS9U3ahyD/Z3QDmCqDajKp3QqQBbhPoR0uiZbLdOdmJdrii56r6 txZRCMaJhcvIjCMZScQ7cMUUQ/wygc/jLtwkLzRYuLrT6AdDjA0z2qsqSrWrpS8x4Hqg4LhC9ze 2jHnNr502v10XeIQEDY2SI8KkGpzK11CDqmUgMBcaGBivTaFJ2CI5B7bs0ISJ1wBGkWamwXQ/3x y57CojUmE89w6yptMRayNhPPW8HSqjLTpXmwV4RA4/q52P7Ctdou3/8xSK58hUc9JHN0uh8WeSN zRS2KgHXirXYzMTWopfXVCqKTLQvlzgGJ8DAsqKxk3EpCSF1XRekXWLlbLLUbZXhK4eGukfj5DE dFYZGIQTo5UcjF4jmsvnRva9oea5fabs0qYuNnA/hQNFBUKHggNlN45rqdeeLzsBtcB8vM4cebf rLXJmpv8LUx9N9XEX/w== X-Proofpoint-ORIG-GUID: 19ggoeukccoNC6L13hzESstmgldIeGfG 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 impostorscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 adultscore=0 bulkscore=0 spamscore=0 suspectscore=0 malwarescore=0 clxscore=1015 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" Reset queue pointer on SNDRV_PCM_TRIGGER_STOP event to be inline with resetting appl_ptr. Without this we will end up with a queue_ptr out of sync and driver could try to send data that is not ready yet. Fix this by resetting the queue_ptr. Fixes: 3d4a4411aa8bb ("ASoC: q6apm-dai: schedule all available frames to av= oid dsp under-runs") Cc: Stable@vger.kernel.org Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm-dai.c | 1 + sound/soc/qcom/qdsp6/q6apm.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/sound/soc/qcom/qdsp6/q6apm-dai.c b/sound/soc/qcom/qdsp6/q6apm-= dai.c index 306e928e7b49..292be457764f 100644 --- a/sound/soc/qcom/qdsp6/q6apm-dai.c +++ b/sound/soc/qcom/qdsp6/q6apm-dai.c @@ -317,6 +317,7 @@ static int q6apm_dai_trigger(struct snd_soc_component *= component, case SNDRV_PCM_TRIGGER_STOP: /* TODO support be handled via SoftPause Module */ prtd->state =3D Q6APM_STREAM_STOPPED; + prtd->queue_ptr =3D 0; break; case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c index 1fbcbbf3123d..9d4cbe29cf94 100644 --- a/sound/soc/qcom/qdsp6/q6apm.c +++ b/sound/soc/qcom/qdsp6/q6apm.c @@ -215,6 +215,8 @@ int q6apm_map_memory_regions(struct q6apm_graph *graph,= unsigned int dir, phys_a =20 mutex_lock(&graph->lock); =20 + data->dsp_buf =3D 0; + if (data->buf) { mutex_unlock(&graph->lock); return 0; --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 83C94382F21 for ; Mon, 23 Mar 2026 22:39:07 +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=1774305551; cv=none; b=b7sgccqViXatOHhsEvl3MRnT/lrIDDf58/fslAE71Np+1kD1DQc7Owq4wi9JXDGZ4Vf9Nq+vI0DTx7bYGWuV4RXs53sAaDhYvjEmq4qoJ7luNEoc7YR9xS9UbjOgw2HpDholxNoeYSrWd7Tm5otr+GNrjYF+2dPlOKo7NWhaRJQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305551; c=relaxed/simple; bh=UZ+5z9w9M74tpzVL8QkykGNl8XDOPEb0MSDzyxWPUz8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ViC2U4UblG2GypmxZHGSHDOc8WxIrUPXSJJnywMh4F6UlYoR2efyx4JYcDv7WrJD0wUFZU14/5BBvEw5T9LrPnuHqGQS1QYOPq2FN24bwcHA2pl3u+Qdit/F+6iwZUIDsIVQhNnK1DBJE0CWlztbMTnPz5X4eio6VPg/xKVF0/A= 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=ZiVQExZU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=StIdLYY3; 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="ZiVQExZU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="StIdLYY3" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NIZbbZ1910825 for ; Mon, 23 Mar 2026 22:39:07 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=Z0SMcOHJkzd ixiTszIUCToSc68Rmc9ZxZaPMuZtsp78=; b=ZiVQExZU1enGt0QJtVH3pBGfkz7 AfZcWpcNZ1MFuBqIH56MA8oQ0jvA3Fa5BVDD3cw32MGreuVJdKCnE/9pXrAc96bA S5NiMfNR4w/MaRiCgkcQUqHk9uXcfPwxwg+eZK3qbR80aXTz0b3QtOUGlrmb+qLk AVlFoShZJVkoYrFzCxqzEGzkJqaQDX07+Oy+Miz6m/AKj7V6Auh3J5rEVjD3OC38 sXDtvAlcCeWmg7WAIBR/fM4lUdB0eMSuA613oqW5sJteWRy9igPtsPZMJStp5dXM MNvbGI4bUgl8Lzi/DWzTMO0BHOkI3xf9B98Ffjmjami8yX5c3ki5TuPQ2wA== 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 4d3awyrnsj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:06 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50b5f675be9so133530131cf.0 for ; Mon, 23 Mar 2026 15:39:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305546; x=1774910346; 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=Z0SMcOHJkzdixiTszIUCToSc68Rmc9ZxZaPMuZtsp78=; b=StIdLYY3+IUst2PNg0r/dFHDYqIl1a/nt4g9TRcz0V+ZNmJ3wsNjJhEM/xKYd9aLeZ GefPsVGN22b3t9e/38Fjbdcj132CaMLPK0jb8x+PC2CQwhkF4mEWvWb5kVrU74RqQ808 mGKbiSjZUdQi586bDyuW2lteW1ysY69CemMcK5MGz0r9vrY2rhzV2sb1leaiTKu1CW3s Vms34URiYKmZiXvRk69RLHpOeGEIScmyRplvmoG1x2FVNFzkMavxNaK/PMX4mtOfRMAH OlnuQYl19k0nePKe98+FA8VQW4MJbXFWx5rUe2Y1UyIEhFZ8PEyy/gkMvT8Lzh2jmHev hg8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305546; x=1774910346; 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=Z0SMcOHJkzdixiTszIUCToSc68Rmc9ZxZaPMuZtsp78=; b=rfb/e6tb7WMgCnOiNrQVhT3Uu6fewVkol72bWtdZndFGbZ4KjyfR4lsw7Exroj52EZ jvsMXf2cEjkG4fvwmG2+ban/DlCEqR05SihfD5oT4ALOmQCWwtrwtR2DPJXu088Cp1NE az/CxxoFCV8OrtVpiXlBcUgSAowGvd6HmXKkt3fqOvs7Ch2Xpr9pGkIA37edHHoQL4tN HAOMjG3QgxmCwfVIgidVFgzOpEdYsdmcciOYFd8Z6CfL98MNqXP6EWVNJo7HTfPSOuZQ rmC18hoY+A19CyGoXeKKCRNJhYqwAba+AvpaIIQ200m33JRSXLrQ01ZqHVR4nXahHu3O RSRQ== X-Forwarded-Encrypted: i=1; AJvYcCXg7WK8uw8v1lpeEaoJKc4HrPK7F/xUrwhmEwLRB+KqppCY5cVdZXayMQdKbh9vnscORfPp+dN2KjZ3N5I=@vger.kernel.org X-Gm-Message-State: AOJu0YzHVmpbOBM3axs9gn6lp0vjj9bJF2crM2+qMuYrUjjvZz2ICH4S j81BmveOILjxJ+mM6+18dmGT+07Y225EaNbTzTnszPzDwcIcfZmGYAW6gD888Wu1UzC1Oczx/Vf CvgqXU/3eML9fqqT/Wsrm7mirPmaoEyeEflisWQ6iSiem46fhjqRlKg3BQ1gYdbS9qWk= X-Gm-Gg: ATEYQzzfdDxi95ASbALQs99VG+1x/VTxvSXhUABFNh/HpqYySZ5sIMSviqXM+I7HxWo 6+l1pQ2Hc0B2cZdn+nHx3pEwXZ0EMUOHqrn6CLkgE33J7az+7QDLje9TJVbphLQ6P53T+9ZjVnR IAdN4JseC4vpKFv2enx0Bq4dY1JuN7YNOM71smmiVzhGDb/RoNLp0OY7A1ESixWxlTG4wFhyqef AkC2/kLX9evBEx5EoirNEGbPS0JYKI97Aury+ZiyCB9UmIW7ZQf/uUgKDi+fIVNZhe0NzoELnN8 jvJg+zZqD2/c72CDXY3D42jfC+/Tg1gNx7FPTIFNqO2ln9bjOi4ALNDTYyWAFqmWbJ16dBPfKO/ IYuDhslb1Ptt+XIUjdID4IpwW9wuisleI0GbFOMLYA5fzSm2xqcC+LrA= X-Received: by 2002:ac8:5d4c:0:b0:50b:4001:ae11 with SMTP id d75a77b69052e-50b4001af81mr186283991cf.57.1774305545739; Mon, 23 Mar 2026 15:39:05 -0700 (PDT) X-Received: by 2002:ac8:5d4c:0:b0:50b:4001:ae11 with SMTP id d75a77b69052e-50b4001af81mr186283741cf.57.1774305545284; Mon, 23 Mar 2026 15:39:05 -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.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:03 -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 , Krzysztof Kozlowski Subject: [PATCH v7 06/13] ASoC: dt-bindings: qcom: add LPASS LPI MI2S dai ids Date: Mon, 23 Mar 2026 22:38:38 +0000 Message-ID: <20260323223845.2126142-7-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-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX2dqNBM540to4 jyAwj4LXPVE7fblIbq3O72ZRITXTilPlcHHVfjqGhvd4EO5D5N6xvrQVoorboBdwVkdjM5QmcaW CIgyer9g3aHdyCjuKfbGPB5hmm1IFYbzAaabjIRQ4joXNuFz2S3Sq7CjfR2K4bb9GG8ZHlAzY6s 2zU4ylG8tPRWh/vOqx1WZyp8zPR3gZbbE9O3bJi7bQT+qEKqTG7UJ+cgBfg58cH726N2oOXNn43 xSpiY0eCZkAw4qPj18jxJRsUyPUjDgvp0iHJ+YYz1lCDNbT6+5auA5DxKnml9Egn480yAld+AyT IDEWTakHrFesK6xQm8NuaTisWkh/WkxBrNo3tHIsNmCEEzgPGeXiZZexRqHXA9DXYt79K0fKvuJ SQmRa7S1BpFoZ6Ofh+uex/H2YqKs1uoYa9qVToYMOsowH7GRyucXvMHGGHs3GjlFFVfx7L0pJ4N VcnKx2/Vj0t1R4FxMRQ== X-Proofpoint-ORIG-GUID: gzEx54UxIzXBRo3-rAKJJ9A1vPOSql97 X-Authority-Analysis: v=2.4 cv=KuhAGGWN c=1 sm=1 tr=0 ts=69c1c10a 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=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=6P8UuP444nAwg2htitIA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: gzEx54UxIzXBRo3-rAKJJ9A1vPOSql97 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 bulkscore=0 malwarescore=0 phishscore=0 priorityscore=1501 impostorscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 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" Add new dai ids entries for LPASS LPI MI2S and SENARY MI2S audio lines. Co-developed-by: Mohammad Rafi Shaik Signed-off-by: Mohammad Rafi Shaik Signed-off-by: Srinivas Kandagatla Reviewed-by: Krzysztof Kozlowski --- .../bindings/sound/qcom,q6dsp-lpass-ports.yaml | 5 ++++- include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-ports= .yaml b/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-ports.yaml index 08c618e7e428..2b27d6c8f58f 100644 --- a/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-ports.yaml +++ b/Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-ports.yaml @@ -126,13 +126,16 @@ patternProperties: reg: contains: # MI2S DAI ID range PRIMARY_MI2S_RX - QUATERNARY_MI2S_TX a= nd - # QUINARY_MI2S_RX - QUINARY_MI2S_TX + # QUINARY_MI2S_RX - QUINARY_MI2S_TX and + # LPI_MI2S_RX_0 - SENARY_MI2S_TX items: oneOf: - minimum: 16 maximum: 23 - minimum: 127 maximum: 128 + - minimum: 137 + maximum: 148 then: required: - qcom,sd-lines diff --git a/include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h b/include/d= t-bindings/sound/qcom,q6dsp-lpass-ports.h index 6d1ce7f5da51..45850f2d4342 100644 --- a/include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h +++ b/include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h @@ -140,6 +140,18 @@ #define DISPLAY_PORT_RX_6 134 #define DISPLAY_PORT_RX_7 135 #define USB_RX 136 +#define LPI_MI2S_RX_0 137 +#define LPI_MI2S_TX_0 138 +#define LPI_MI2S_RX_1 139 +#define LPI_MI2S_TX_1 140 +#define LPI_MI2S_RX_2 141 +#define LPI_MI2S_TX_2 142 +#define LPI_MI2S_RX_3 143 +#define LPI_MI2S_TX_3 144 +#define LPI_MI2S_RX_4 145 +#define LPI_MI2S_TX_4 146 +#define SENARY_MI2S_RX 147 +#define SENARY_MI2S_TX 148 =20 #define LPASS_CLK_ID_PRI_MI2S_IBIT 1 #define LPASS_CLK_ID_PRI_MI2S_EBIT 2 --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 7C43638422D for ; Mon, 23 Mar 2026 22:39:10 +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=1774305554; cv=none; b=EfKLsIuJuQRVBY5shDuq2QWNbBKhzWpk6pFHqSpUR5D5Vm5SvD7NCgN+e7SuGYJoG8/+MBoaTUIRLPnMq5O5mVw5JRoMpd08cokZ9/9gelu8liGwktYxNP05BeloUxpL5TPez0V2/spbFwFN371CLW+cHlWY1wwvswjXB+P6L1Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305554; c=relaxed/simple; bh=1AGWMMo+ZQ2MpMqgndQclqL9hoOIddPn00jRigW1KUQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kfpsw0TBkzD8ULV+wy4T9FyissE6CgIOU9E33r968OEKa+K3uzf5kQORooc6Ctzjg1mRTOI1ObaX68m0b3hLZKFqXw1wud/HNhiUjGWZZaR/CBjJDzvsYrNwy53wGpHV3zwIQ0lWSaW5iHiHJJY7OLf3sH9xOoQJSqNW4cOEePQ= 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=Dq2fpmPG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=i8xtVjUI; 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="Dq2fpmPG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="i8xtVjUI" 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 62NHqe5P2831944 for ; Mon, 23 Mar 2026 22:39:10 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=2UA23pg+dGV Ambwz2ppXfyVdk6xlbVmq70z85L7JFXQ=; b=Dq2fpmPGHg+XusYXLCZhkgCSRfn kvjCg0IXB+NQdAA7kMA+Aee/E/2oNxlbSXEuDXaLGCYPaXqEOEBxroblOLvrpCIx vGu/WQjXhDTxO7+iBHLABOgIQFqDPtnSoCktXyKYFzrN7dON0MxnCpCHmejZBbPN paDTbsLyGctmT/8TvKZ5GzQ+QH7xGM76i8KtToMv/3yKminwlNDQwHkytnOkg6Wn 2CC/o6NXtJzdZjAKuT5R1UN0BNfbQc7xSu7g6uMiCQC9J9ffIHIY3E97zf3Mx37u bZgXx+s95ELkg3k10ANG9hJh97qSUBnUH793Q72ESaQXu5iNeSdstptg7HA== 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 4d364jsvgg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:09 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b3544bc7bso10164481cf.2 for ; Mon, 23 Mar 2026 15:39:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305549; x=1774910349; 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=2UA23pg+dGVAmbwz2ppXfyVdk6xlbVmq70z85L7JFXQ=; b=i8xtVjUI1yoEZ2akBMOmS7JN5PSlNhqZktDb9RVa50WImxvnva2eblp9a88+LWVx5M 2Tu1DWtFuNRJyGuvvPJVBK6J+8hWaiFCFn27QYFDgQFo5heoVne3WNt4QFoZvoz30/ZE KluOvRB/o9R8nHDarFL8TD2ffxfKx5L+BbomJFh4zSpHj100Ui0qI+1f1pGYz4QOmQMS XcsTVbAim5rVCivnEnKC6qzxErovGZBX7rKlIgPz+eu9fED2D20zIqy3FHTgB7yBxhIV Pc1Dy1ap2K7UFzWpKUhRfGhPxR/BPNd1pYmd/oJOA8JAOot5hTu/izn0jM6GoqIjNfoF DmAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305549; x=1774910349; 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=2UA23pg+dGVAmbwz2ppXfyVdk6xlbVmq70z85L7JFXQ=; b=d0BnCcmfNk+ra3ZwTDJnu0qR6ig+foV45K4/esdkeP+Z8rIqs7SlaFAZeaYqn+FzPA YtEEwSi2z3VSJoqQ2JlcR1kNzph/Z9esAPRVD2uobce6Vn0ehpkeRht90V4Adgbc1l2v uo/xVecRR4IzRyjZDZtCFgzekzYhoKr149ofLulgECpTPU0u3Vj3NXA7L09TkY2sSiEC NQlly9PMnZw+aEYHcfkfxLUEuwUKqOLSnP2dWaFJka1l56hpJbTtHu47Rx3wBmxD3fEa dZYMTNROChV8PkJqhRd4LyxrOy2/3dyKtpUSmsruRxePLk+YJyHgL3wPtx8VjJR/4kyZ /NEQ== X-Forwarded-Encrypted: i=1; AJvYcCUF1edDYFPYolS3fRF1zfockC6u3VAA+s6MEGp+Xiz1G4RSqpXMwUiZ9rUObXtDcbSD83++ZC9nsxUT6bk=@vger.kernel.org X-Gm-Message-State: AOJu0Yzix5kS2k0xM51A/NglYoXW91RMFXMCHa+ikZcv+/boCjevbCJm rlbNvMImRezsM2MRw9eIhIAdAz1/JBI19OOIV6e03hMUG4HVfSP25vp5+Rf8SEySDHyP63sWgwQ brU1acnA48yxlxL04qiDPMO+p0BgzkNmBTLuhh+9B8HkZ0uyjVvIBzikxUci4H2LkwcA= X-Gm-Gg: ATEYQzz3MKwCRDXi3vz3jKxZSwqtH9swT02VHnD3DZMJiuMlpiEa2Bb8Bwy35tYJwjV zDKmNxQGb7TDqnrXSSg/s4iO3mUninPDFxd/qZBO20ekBwIwz0s+Fn4Vh33HsKoySQzHXxCMIp0 veqqhOCSklWs0hWFjO7xetxUVuGXomi2QWDCuEgV4J/r1LDGrAcCnd8nAFzKSag9YrcmHIVPNB/ OQLeDz6jteHmPQTGxKUMAbRNtraBlVYhiNkzVCCxKLYnxHzPrKznQq0xqf1hVh2HoRQ2TrBN9jb K8QJP4vCP1DpNY4oeA7975rf75ufL+V5nqNMP/U2PKKcNFXOeAKTvM1R/GSEae8gEhEbzRth9DD 3IpRfRlMjrq2cfnvQYtBdWQ5xVn9X32FuKwyx6IiQtPZ2TPHBrpdn5hY= X-Received: by 2002:ac8:5f52:0:b0:50b:6a80:ec17 with SMTP id d75a77b69052e-50b6a80ef20mr43577971cf.40.1774305548814; Mon, 23 Mar 2026 15:39:08 -0700 (PDT) X-Received: by 2002:ac8:5f52:0:b0:50b:6a80:ec17 with SMTP id d75a77b69052e-50b6a80ef20mr43577571cf.40.1774305548257; Mon, 23 Mar 2026 15:39:08 -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.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:06 -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 07/13] ASoC: qcom: qdsp6: lpass-ports: add support for LPASS LPI MI2S dais Date: Mon, 23 Mar 2026 22:38:39 +0000 Message-ID: <20260323223845.2126142-8-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: pBYvw_upnSd-Lm6domLcQ61euD5JOsx3 X-Proofpoint-ORIG-GUID: pBYvw_upnSd-Lm6domLcQ61euD5JOsx3 X-Authority-Analysis: v=2.4 cv=JcaxbEKV c=1 sm=1 tr=0 ts=69c1c10d 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=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=nvRDalaNTaWZAukup-IA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX8A6z7Og9B+R+ vjXTGdazBlIV06dKKJmaHtpikK5XazJtd2HDMzjqRx7plrqykzmOpXQaMgCTrrZOf5vBlIhhDVH w5cgtjXQaMZ9oCoQDwPoUsm1UQ7bP9F/lTDASjEzvDfjm1PZCoKpSqxkYgeqh1ARbX+V2a/PF3+ O+jTSUHhRZIjOyJQF8qPEDWA0rdA+2drx9MhFWqbE7OflZDYqhGo/YwDYAMtK7gmUj2hgF8ihFC bF282h4HQhmU629IN6FocDxjELGw9G3WZtMwq8Cri9MaY1s8rkK8DCilBKQD8ijFGXaZ2rbNIVB /ZbivJmITVT91VXsBJt/wYn3vnOO0CJfR+mcINkNwCichywQzDFC81Df0C1FQSwi4KY2fQxXkf0 Ze460VId238NyhkPpLK74F9jUvzsDPDsLbsBNw8dkBis18gfEEZhKa/5xwsAznH0fcj6Nbd5AwF FnoufXEx+kbGeeBTFfg== 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" Add support for LPASS LPI MI2S dais in the dai-driver, these dais are used in Monaco based platform devices. Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 47 ++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c b/sound/soc/qcom/qdsp= 6/q6dsp-lpass-ports.c index 4eed54b071a5..d31388ed3ccf 100644 --- a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c +++ b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c @@ -96,6 +96,42 @@ .id =3D did, \ } =20 +#define Q6AFE_MI2S_RX_DAI(pre, did) { \ + .playback =3D { \ + .stream_name =3D pre" MI2S Playback", \ + .rates =3D SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\ + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\ + SNDRV_PCM_RATE_176400, \ + .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 176400, \ + }, \ + .name =3D #did, \ + .id =3D did, \ + } + +#define Q6AFE_MI2S_TX_DAI(pre, did) { \ + .capture =3D { \ + .stream_name =3D pre" MI2S Capture", \ + .rates =3D SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\ + SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\ + SNDRV_PCM_RATE_176400, \ + .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 176400, \ + }, \ + .name =3D #did, \ + .id =3D did, \ + } + static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] =3D { { .playback =3D { @@ -484,6 +520,16 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[]= =3D { .id =3D QUINARY_MI2S_TX, .name =3D "QUIN_MI2S_TX", }, + Q6AFE_MI2S_RX_DAI("LPI RX0", LPI_MI2S_RX_0), + Q6AFE_MI2S_RX_DAI("LPI RX1", LPI_MI2S_RX_1), + Q6AFE_MI2S_RX_DAI("LPI RX2", LPI_MI2S_RX_2), + Q6AFE_MI2S_RX_DAI("LPI RX3", LPI_MI2S_RX_3), + Q6AFE_MI2S_RX_DAI("LPI RX4", LPI_MI2S_RX_4), + Q6AFE_MI2S_TX_DAI("LPI TX0", LPI_MI2S_TX_0), + Q6AFE_MI2S_TX_DAI("LPI TX1", LPI_MI2S_TX_1), + Q6AFE_MI2S_TX_DAI("LPI TX2", LPI_MI2S_TX_2), + Q6AFE_MI2S_TX_DAI("LPI TX3", LPI_MI2S_TX_3), + Q6AFE_MI2S_TX_DAI("LPI TX4", LPI_MI2S_TX_4), Q6AFE_TDM_PB_DAI("Primary", 0, PRIMARY_TDM_RX_0), Q6AFE_TDM_PB_DAI("Primary", 1, PRIMARY_TDM_RX_1), Q6AFE_TDM_PB_DAI("Primary", 2, PRIMARY_TDM_RX_2), @@ -636,6 +682,7 @@ struct snd_soc_dai_driver *q6dsp_audio_ports_set_config= (struct device *dev, break; case QUINARY_MI2S_RX ... QUINARY_MI2S_TX: case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX: + case LPI_MI2S_RX_0 ... LPI_MI2S_TX_4: q6dsp_audio_fe_dais[i].ops =3D cfg->q6i2s_ops; break; case PRIMARY_TDM_RX_0 ... QUINARY_TDM_TX_7: --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 From nobody Sun Apr 5 16:48:06 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 18328382F22 for ; Mon, 23 Mar 2026 22:39:13 +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=1774305554; cv=none; b=on8tR2WLYd6AUgiB5zFgXP+42Sl9LafmQR00GCm1ZnHSntibEkcBu09YlM3ih2clz5Vr4u1LG9qDF1FSiG2JkF9GEnedz7SGv2sxW1ccg0IAhcHI/UgzP8E3VxnTij60kPEI9+bQGh6+u5noZKKicZY4wWFURfAKR9zNM9POf3A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305554; c=relaxed/simple; bh=CrLGv5edH+UZPIk9+prSCn/qT8iVjWiDSBnsGzRqcxE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O66lsupeQ33N8e1NThTOhckMPBLQm8GuO28xNA1Pd5xSgcePtSuaiTJwxJ1T/getMj3i04mRS6IsDis1PBct6N9s5LcUOEROXzEaRVYUxHwNHY2MVzi85ZxQwonO5D8FyUjoVPWQBdFXkhYmJNY7X9rsI2IInfoLBoDICgrRMPw= 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=QJ2kD7eZ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=e1/1+YHI; 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="QJ2kD7eZ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="e1/1+YHI" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NHqgvC3170992 for ; Mon, 23 Mar 2026 22:39:12 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=aiejSc4X5A/ gorkmczOj6dnKqerAsQHN9lH+LChbOlI=; b=QJ2kD7eZ+YvhmGGDHuQEChlMndd qZF3loald53N2NcXT6vW9/EIvM7p/kO+WVi7L7bbIlBje0U/MvBy51rvZM5Bselm FIxmGe7iJhc4GXI8TO2KhtCNVtDrDyGWZO6eEfnsyEF1eUiZRUUPu9W4OgL9OAVZ 4cfSPa1+isqeLKsNTavLPjXt4lPWpE8yn/s66vUJQadXAIhFIXHdfOwahAchGEnK ZDulcbFK/SRhEHyMIlaefS0IwlbUg5r4VriDvXoZl3Zaep/W1Ntnjie0FjNWjc9w EdP6/iDYsz8kK8Tp6CYEgSh1ISU3gl6OYcUFR2K36ezP5zoSGDkCBbtlAWw== 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 4d35r21y6h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:12 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b4fe4ff7bso200307471cf.0 for ; Mon, 23 Mar 2026 15:39:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305551; x=1774910351; 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=aiejSc4X5A/gorkmczOj6dnKqerAsQHN9lH+LChbOlI=; b=e1/1+YHItIeN0aQZU4D+BMxMGmcEdlfIVO8++/21OhE3VslO0B0IxzYF/UiBdaY9c3 taY2rH9sVlanD0OcoG3JV9wNkUIPQzVMr81RFzYLTIMU0jmqvSqIbSRU16fK9qnvL1Qs C/sWcVG3LkxoWSwAbT9xHtd2GH6BwdkH7eNcjNAKcTFziTT5emBsc/w8BlWgcq89r/RW aUZBJ9WhjEzWTBi1DEvlSXp9cPacDZYBV6bb5GI9iWMQuVqs/iCldhfgInRi8UnPp+01 WsWdpGijmSSLq/QlBx5oJbTQh9adpfzZyYZdJzyeaZF/YIfMJoBl5YspFp2Zcp/wrKk4 ZR2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305551; x=1774910351; 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=aiejSc4X5A/gorkmczOj6dnKqerAsQHN9lH+LChbOlI=; b=i5JsSZRUJ6ilWMAwqRd0M4m218wLUydaYBo/MmB9sjxUmek4cP4OaKGqYuPILySoNi N1c1YAbtAm5Q/pMwoHZ/UdZBri3LjBUTvpKJd2flmDaxFFQh2DvRgqnuWyE4Hdzi2P09 UciGUsT1TYmu1Tw3rrd0/X23uqj8F1ofCyTvjwflNcIRxfULjWsIeglmbDI0ih5+Ef1a Jok7bus5muPoc0r+ko7nUuo+SVVbIAeYdKgIXGy44nzNPy+vOIJwTdL+5Xl0OQobzNFE NK+QLsQU/5T6A4wq5jF46T7x/DyFPitDD9/ERcUdk7agVKf+BYGzOhST0B7+Wcl7dQUz 3TzQ== X-Forwarded-Encrypted: i=1; AJvYcCXxGvO2+5awunDEL9T5PEw6E+Ul5J6N6r+gW8Bwq6SJhANrRc1p5bc+5dILbPL+jG/harSaslR7yaR0E0k=@vger.kernel.org X-Gm-Message-State: AOJu0Yy1/Bp/wpGA8JPx/fq40G1URCEJSCfMj6GLib5YJFiWvN1fNDbg tWIlcWIwa3ut7Wr0gv5b5xzV0LdazBXhJa83onGhR3tAWorPNMBGbfJSlK0Vjgb8XdRRq4yllg3 F+dmQeEO4Rq4DniqbIN5AhK49w1pyc8oKv+wyDaYAH851IltCTiKWWvKggKtSOt75618= X-Gm-Gg: ATEYQzwHu1iqiXFeRbcmZWaFvtstUiqgW+m7ZDypXXradreb9gd1GUFmZRYV6d2XqI0 K/tFmCHn1RL+u2c83qtkghUJ4b5oky1Tj9AQUR/+M7DeBYWKd/K9U2X38ANhmJ32ZSHAJumL2v/ qNhoKtp7zkhRhswTIJw+VM3yN2xCLEVB1amkRBkI6LGULhIKf6b6/WHz48Lepga1n9QnXDla33O URqksPDC7NGqSkObTakV8rbI/kuh8iG0798t5Adgfca+YFw5czjyuCShloBBo9d4Qh58x8cxv0Z +Wh0J+FMTCH7FTB3FjxU/GOvAsTiGkdvzBVnpT7tgi3AjG2O+rWKPlrfWnj0ljw10+40mu2MYnU ckYfVnPyZVGizyNWxO4KbKbrp/msrvK+WHsksTnre9r28JMBIf/losSw= X-Received: by 2002:ac8:714b:0:b0:509:1b5c:fe25 with SMTP id d75a77b69052e-50b6ee5ccc1mr16161591cf.23.1774305551419; Mon, 23 Mar 2026 15:39:11 -0700 (PDT) X-Received: by 2002:ac8:714b:0:b0:509:1b5c:fe25 with SMTP id d75a77b69052e-50b6ee5ccc1mr16161301cf.23.1774305550963; Mon, 23 Mar 2026 15:39:10 -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.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:10 -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 09/13] ASoC: qcom: common: validate cpu dai id during parsing Date: Mon, 23 Mar 2026 22:38:41 +0000 Message-ID: <20260323223845.2126142-10-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-Authority-Analysis: v=2.4 cv=VvUuwu2n c=1 sm=1 tr=0 ts=69c1c110 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=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=FTFSxu1yF2iZ1NjiFwcA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: IvWVXvZUdtn-0g8UvIOrcw0C1eFtLwT9 X-Proofpoint-ORIG-GUID: IvWVXvZUdtn-0g8UvIOrcw0C1eFtLwT9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfXx6+gT7hXfgYW r4w/xsfjfqXnpRSyIB8GcdSV7070YhOSZxltSGYZBJ6vEEcqUvuTiZX+nMfUu8L/QKWfBLkLs8C eMz3TQE9p4WAR0LxFr4SRyt6qp4fHvwsI3/aEV8WNO3Ql3v/TD2WgpcqI3PhJQ/W6XQAxxr4+fk rYmSLh5zl2GXs5V1vM+sKiBXGNEXp0sNK9M7ufHxq73rkSBxYkNxj5B4m95m2FEsZZgX45kRspo N9PJfKVnjQQmIkMwYZRolrkJZmchgvlFX2vOzd5bWO0jf7H4Edakq9cpRP0NQDefPw4wBSrx6lR jUu4+t1Iid4nIWF7+Z4HiRIgxnbI4rEkjIZNUV3LGF9sDYK0lX8Wl2XTFjP+iDJ8gSR5hzo3c+a YB39FlMDF9UJu3SRke+9LpHyUw7YauQCYhpvu7gKqzVzlr5wjL1Gk1Eu2YH0HcuGK+rs4UTpluB a/cDGiHHIqRLhMjczOQ== 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 phishscore=0 malwarescore=0 spamscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 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" lpass ports numbers have been added but the afe/apm driver never got updated with new max port value that it uses to store dai specific data. There are more than one places these values are cached and always become out of sync. This will result in array out of bounds and weird driver behaviour. To catch such issues, first add a single place where we can define max port and second add a check in common parsing code which can error out before corrupting the memory with out of bounds array access. This should help both avoid and catch these type of mistakes in future. Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/common.c | 6 ++++++ sound/soc/qcom/common.h | 3 +++ sound/soc/qcom/lpass.h | 3 ++- sound/soc/qcom/qdsp6/q6afe.h | 3 ++- sound/soc/qcom/qdsp6/q6apm.h | 3 ++- 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/sound/soc/qcom/common.c b/sound/soc/qcom/common.c index 7ee60a58a336..cf1f3a767cee 100644 --- a/sound/soc/qcom/common.c +++ b/sound/soc/qcom/common.c @@ -120,6 +120,12 @@ int qcom_snd_parse_of(struct snd_soc_card *card) =20 link->id =3D args.args[0]; =20 + if (link->id >=3D LPASS_MAX_PORT) { + dev_err(dev, "%s: Invalid cpu dai id %d\n", link->name, link->id); + ret =3D -EINVAL; + goto err; + } + if (platform) { link->platforms->of_node =3D of_parse_phandle(platform, "sound-dai", diff --git a/sound/soc/qcom/common.h b/sound/soc/qcom/common.h index 1b8d3f90bffa..ee6662885593 100644 --- a/sound/soc/qcom/common.h +++ b/sound/soc/qcom/common.h @@ -4,8 +4,11 @@ #ifndef __QCOM_SND_COMMON_H__ #define __QCOM_SND_COMMON_H__ =20 +#include #include =20 +#define LPASS_MAX_PORT (SENARY_MI2S_TX + 1) + int qcom_snd_parse_of(struct snd_soc_card *card); int qcom_snd_wcd_jack_setup(struct snd_soc_pcm_runtime *rtd, struct snd_soc_jack *jack, bool *jack_setup); diff --git a/sound/soc/qcom/lpass.h b/sound/soc/qcom/lpass.h index de3ec6f594c1..68b71039b981 100644 --- a/sound/soc/qcom/lpass.h +++ b/sound/soc/qcom/lpass.h @@ -14,10 +14,11 @@ #include #include #include +#include "common.h" #include "lpass-hdmi.h" =20 #define LPASS_AHBIX_CLOCK_FREQUENCY 131072000 -#define LPASS_MAX_PORTS (DISPLAY_PORT_RX_7 + 1) +#define LPASS_MAX_PORTS (LPASS_MAX_PORT) #define LPASS_MAX_MI2S_PORTS (8) #define LPASS_MAX_DMA_CHANNELS (8) #define LPASS_MAX_HDMI_DMA_CHANNELS (4) diff --git a/sound/soc/qcom/qdsp6/q6afe.h b/sound/soc/qcom/qdsp6/q6afe.h index a29abe4ce436..0b8c3ec1315c 100644 --- a/sound/soc/qcom/qdsp6/q6afe.h +++ b/sound/soc/qcom/qdsp6/q6afe.h @@ -2,8 +2,9 @@ =20 #ifndef __Q6AFE_H__ #define __Q6AFE_H__ +#include "../common.h" =20 -#define AFE_PORT_MAX 137 +#define AFE_PORT_MAX (LPASS_MAX_PORT) =20 #define MSM_AFE_PORT_TYPE_RX 0 #define MSM_AFE_PORT_TYPE_TX 1 diff --git a/sound/soc/qcom/qdsp6/q6apm.h b/sound/soc/qcom/qdsp6/q6apm.h index 7ce08b401e31..5cf538397841 100644 --- a/sound/soc/qcom/qdsp6/q6apm.h +++ b/sound/soc/qcom/qdsp6/q6apm.h @@ -14,9 +14,10 @@ #include #include #include +#include "../common.h" #include "audioreach.h" =20 -#define APM_PORT_MAX 127 +#define APM_PORT_MAX LPASS_MAX_PORT #define APM_PORT_MAX_AUDIO_CHAN_CNT 8 #define PCM_CHANNEL_NULL 0 #define PCM_CHANNEL_FL 1 /* Front left channel. */ --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 86BD3383C86 for ; Mon, 23 Mar 2026 22:39:14 +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=1774305557; cv=none; b=mv8cJaru1t6m0/vDZhj4pu+qB3T56tllt+yKLt5fTEkW2VAwSoVK8WH6q9CVHiFBFIpvFjn6TPwDajByD5nDoPLn5lu0QAX4+8xpvTUxyyiRxopyX6WmygElt4ZV2sdILhEMBbgXBeOIJ0hQaYGRKjPT+j22EI4wsMIPtuIiL5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305557; c=relaxed/simple; bh=Fl/z/x1vRgiwJd1pRAYk5uDKCPsjPZHEyO/+LZ3AuNE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=We+LCf8tspm54Kkq0kGHMy69FXEL70oCVQQvQ09abuQTcW1ZBfKJKb7pFTjsdzpyxiCuLuZ9PCIhpJO/G4rQwRAh30aEHBiK/Uj/gNRb7o04zelvqrTDzSLCfLJ7otz4DZ1V/uTQKD9NW4uqkqaOAI6Y7YObURe7CNdbVQnEGiE= 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=l9ZXlE/k; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ND4auYep; 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="l9ZXlE/k"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ND4auYep" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NHqiRX3634389 for ; Mon, 23 Mar 2026 22:39:14 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=ngH86D4QhHS BBEnIjfBcEjvZR9eSdOdxegad2SenX0M=; b=l9ZXlE/ktkebioi4FzAUZ02ej34 pgAeldTbg2NoSIWwvGTH5otD3KdRozbqoZYzulw6KTsX2GlWc/ef4DkOMW+gHqgk RLPZDEib9+8twMergcK/ESCfG3iOs2HIuPNCJDTKI9sug0Z1uEq3U0NUrXsM7sO/ hVgxxVDMH1TVFt3FvRgttsvPgd+2JDRBplnezT7w+JaHOol3ALsb8zw/SVJxKRW3 mqRHdkMO2JkJe6mw4GpaapCL6kYGUbriosAcuxf/0JazNNSO1GuX/ErbXcrbaTyz dIfeKZN7cdeiB1MVgrBC61tzagHCKvMQCyUc3Q7VjwAHs4LLtq+xpuq14zg== 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 4d34k4j9kt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:13 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-5093787e2fdso156654721cf.2 for ; Mon, 23 Mar 2026 15:39:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305553; x=1774910353; 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=ngH86D4QhHSBBEnIjfBcEjvZR9eSdOdxegad2SenX0M=; b=ND4auYepQkmMZJbjA3zjL75Ogk0hcZyeqXmyyQ7oGABy4vEmfmF9K9lKkp0vFnFgLD gmc2l0ySavG7nNC2xtos4gTO2jbxeO9BWfLTxtfEYUbYdfoaGgn1mmlthDts4DaBg+0p z3HEYwVNqL1SShRzhbCjeZ201Mx1NVIFk+bY0MU/c/VIMdQRrBuTXU5IMhDXkA9eijPg FYqIm3pRLCATJeCmCAvy7vNt8QzgRCdMNa5GmJesn5F5bP1JOiTHvnXhpBeez7+qhdCb K9gKh7QG6xPbxUNX98kKpq4jLQnvDRqsSbEbT6iAK5slx7608XtvIDIGKXBZ+sCazg+P vstA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305553; x=1774910353; 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=ngH86D4QhHSBBEnIjfBcEjvZR9eSdOdxegad2SenX0M=; b=bcmt1VsN5Sg6z2ki+s96o1oIhhITMjaTGMoQYadN3CFQ236oSTjHHrjxII96XcxPNp yc/U30m1d/e3GfJwE4WYrqBc8xtMZ9e4O473GPHzazFu3muU21PIIMmYcS9qeEq+Ax8C 4lcUvJ6Z5A5TMDVukIVeBiEAi1v/6/4N0Qzxj/6PTDN3gFw5UUhJQR3xUEG6OFC1z1NA 1NqlH6DmGS93vLqLE1Fi9MxrAir3HYCdeC8IaHyn4p96RwcZaGmAhiTr3E4PTY6mPQcx mSKhi6C97ZwOFzAuRw/+nnZawBEZqoMK/8EE3fzpLEYpilc+simraGkqcHI4uxaISPza eKDQ== X-Forwarded-Encrypted: i=1; AJvYcCWpzbk8pQryU9J8+QEskwFmSATOj20FkdEdH9mBOKk5blcOvIxE+xnh8iXdmATP0BXwQNmUJBjqcLJQVmA=@vger.kernel.org X-Gm-Message-State: AOJu0Yyvw4eIdHKOwdqF9WCke/7klMCgVZ4O0lUz94aJeCdwBk0Z3EA8 LqCfZYzGW49B9moIHH1dFtnLbWqMTRzs249dAO06cQLOVh4nu8GSjiHoPoPqY5ezI4FsQf4LM7Q M51FiEtbFJyMrG1p2yunR82GPnLqfld637yTlkY57BTE9ILv06IvWLyZKXPGDFfZnBbM= X-Gm-Gg: ATEYQzwmtH0k87H7f6/vQjTqDPklch3ZhgS1f9kp8c4QMZ494nqo43ngcwsqyBBVouN gX4h4mR0bMlYafuXmD00s04VPjXIgtqV5Xpgzu1aYpW5yibECo9/M9rrNVuC9ewqTFoCpiQQ44/ X/1k/5UnleAT/7pScSaU+kByg9V8/4Yos++67Lp49V/PLLHd14SkxG14jASyrTlezdVBL4w3QnJ pEhjpuA6SsrBFwR25OhLi9xiSlHvxnS/wuqwfcq0UbirEYy6vRolkkJ16ZxHHJqx34RJXanIEKR i3Ls58vbl9bnccBzeq1dpplHnzaH49MY8c2tqPtMJvDnUsGLw9uCsvmv5XbG8E/K1YvMBh3M9XG J5aW87rp1XN38lbKZ4S3zEQk555k89y1EPGp5aSE9b9JTHgbqVbawqiw= X-Received: by 2002:a05:622a:1f08:b0:50b:496c:baba with SMTP id d75a77b69052e-50b496cc8c4mr150377411cf.57.1774305552894; Mon, 23 Mar 2026 15:39:12 -0700 (PDT) X-Received: by 2002:a05:622a:1f08:b0:50b:496c:baba with SMTP id d75a77b69052e-50b496cc8c4mr150377131cf.57.1774305552516; Mon, 23 Mar 2026 15:39:12 -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.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:11 -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 10/13] ASoC: qcom: qdapm-lpass-dai: correct the error message Date: Mon, 23 Mar 2026 22:38:42 +0000 Message-ID: <20260323223845.2126142-11-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: DsQxNqVTc3g2CcBfrSok4VX92Td1sORE X-Proofpoint-ORIG-GUID: DsQxNqVTc3g2CcBfrSok4VX92Td1sORE X-Authority-Analysis: v=2.4 cv=c+imgB9l c=1 sm=1 tr=0 ts=69c1c111 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=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=QkacBUY9L2qTTJrEq-kA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX8M7cnWHN5lJY HK15uVTicsPOI0mY9Uz8DeFuQS6Wl65/3DBnsCGG6bNyo1aDyXBmOjTqXCihnmGtaM1gwQ4VqmF ZIluccfJhFfECTQ5J+UDQfsbA8FLuJHF4XVii1SwZhPwDmpgDnrNvlcDV/cKV36uy3N4/cgRhyd 3B4OgftqFQgGEgK9++zMmcT1hSZzpJWNuMWeIcVbgHy5xTZXxd4aR2gfih65JGhEI6wEn1YU3jX 88PK/zGyjBvIIbxcCdte1YFqjz4n4EgTNJHuIkdd2lkGjwZO8lenRjbXG9nQu4S1/tzJULA3ieu 3VHlSVvirGxmVOF8P96+Y1QWPh4q3azUg6xq4a8ZAH0H+XUsflCknR0QW1SIRnfYE6pAcCgVMmI Oy2Hjps91CJTvfwWd3EGJ5flFXr2G7du341sWIUMo3+iGy8pRRPvTfk5yVLMkQ8YGqzpO8L2JnU tl795QvXI8N+vTNdxIw== 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 malwarescore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 spamscore=0 suspectscore=0 priorityscore=1501 bulkscore=0 adultscore=0 clxscore=1015 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" Fix the error message to reflect the actual graph stop error instead of graph close error. Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c b/sound/soc/qcom/qdsp6= /q6apm-lpass-dais.c index ba64117b8cfe..87f6db12003e 100644 --- a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +++ b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c @@ -150,7 +150,7 @@ static void q6apm_lpass_dai_shutdown(struct snd_pcm_sub= stream *substream, struct rc =3D q6apm_graph_stop(dai_data->graph[dai->id]); dai_data->is_port_started[dai->id] =3D false; if (rc < 0) - dev_err(dai->dev, "fail to close APM port (%d)\n", rc); + dev_err(dai->dev, "failed to stop APM port (%d)\n", rc); } =20 if (dai_data->graph[dai->id]) { --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 E53F9383C98 for ; Mon, 23 Mar 2026 22:39:19 +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=1774305563; cv=none; b=RaUSSdA5JSz2jPIdRf3RKyhA/mvsYEm09YV0QW4yY1P56npxHBaD7dJ1aygdGtnEyVZJNf0Poe5Et4SE+Y7IKWqw9vV/ZNLKn40TI8JuGOc0a9sO3KyIz8vR17K/6vBbriQnmt7Q0V7gTH9zjyyxvJIj35Rur4MVE4f4cX35KuY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305563; c=relaxed/simple; bh=HcBUaG07YHPkjw7AtCbbPauazCJLhtW0eS3T+3u2Oe8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OOFO4s+6NmFzGuYMQ1QcJd253YgBXc9VD7mmNPJKCxtqeZdLXopPT0fHkrQgi0Ro6x10/MghQHG62eJ/J3pw+NebmKBUY0pB93eBDHSHA8w4OFwqrmk4ageMVtePJxLMT7f+jFdugbb7pewGS4jjOlSNc4c6GJYlgwktnkc8Ijo= 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=BHx8J1yF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KDjCEIGh; 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="BHx8J1yF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KDjCEIGh" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NHqYcK3170682 for ; Mon, 23 Mar 2026 22:39:15 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=K2FJHPPcvdd DuyFi5b9Enk3oj2KWR4s1Mi0JeIXu8dk=; b=BHx8J1yFo1xpjzEhGJLyFEBTzA+ 4e4+U2PBPRvGdxTnwU8wAlqXVfOdn0YcfWXudGx8OZA7KiyoybX49eScXSEPHrkM 2RWnrVWPGDWJh4duBejRDDBYlajd2t+0yGIOIbG68up/F4HooOXoaPanvh/AjeF3 b3hlX+xMG6huaulHJZYLcfXj0pvgM/a8SD4KAIzgmysix/LjZce/gqzxA8e8ylYx rUZIiWvFQZUdbuqIL8vT6vexXt/uRSFV6vm02z8Qz/MwKU4+hSw+aJKf+Vton1aI YVaiu7UPpvKqtgkhrLgaDwPTtujEC//v0JnSp9atttFbMkechLjQxS1eXDw== 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 4d35r21y6n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:14 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5093787e2fdso156657231cf.2 for ; Mon, 23 Mar 2026 15:39:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305554; x=1774910354; 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=K2FJHPPcvddDuyFi5b9Enk3oj2KWR4s1Mi0JeIXu8dk=; b=KDjCEIGhoE/GwNWNnohLVPaN2oOmtVNTb76u4eGrymeNBku6ulxkmxZwoEeOpeY1Z3 nIUoRmQNw9cKXJTFIQ/1aivcSlrJ+aCVdPBMJdSNoe0S59aCyN5f38aFrkAtIL+8Hczd G0gBrcamke74cYyq8ZqV+ro5vihpJMJsnIUC8o2cYLrjt0LTErVkCtFMdYTwBwiMwSos UDyVvKeZq2Tbh+8dZO58csj4XYEe0M5JJmpL0UvZ3vmGj5gTAzMOsOTvvv9JxYwYS1ku /pQT1V0Zph+Js+13KDoJbCUseeohZ+YhoVW9iEqd6MWm/irkxEL6z6miFicwFzDG+AYK Vo7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305554; x=1774910354; 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=K2FJHPPcvddDuyFi5b9Enk3oj2KWR4s1Mi0JeIXu8dk=; b=LWJgcnMNKtFIaLJO7mUv3yaRi/0VCX8+RYS27x6G3r3yWns73NNt9XeT681xQubues 85lnggH8hnJbxxE6IZaSd5bVh4jjfv0ITreSKhfKqM1ovGs3ioe1fh+JFBBCjoraRtkL +F89eUAzDX0mUUE+bylucyG+ujJmrhsNo+DZNEOzhCRIOauowKpxB0BrZxV2ETdqXNw5 wAHeDaKfomskIrp+mc7xRg9oLt1BJgl0WUs120GMMXoOJgOWWIvcRy0V/4IMMr7QvoPP +rstASkITi2DMyZgz/jCWasHE9fWxPM3u6r/wFPgHfC44FMisgQ4/85Phfp1na4Riegj p66g== X-Forwarded-Encrypted: i=1; AJvYcCUYHsg2FyvLBeDb8zN2bYFnQEjXNAdRYQErOamyHT1kZqA9jEJOrqVkd10z58CaqtV4nCHn2BIpoHPbX68=@vger.kernel.org X-Gm-Message-State: AOJu0YzncEq6ACu+gT0N+kwVLpkCVsgPsZxBnjX96iiGd8023J72mJKH xOqJCsLlupoLKF3aoIzgrHUSPvNbOBXo7RbYu3hEB6FK8i9/GhReQwjJK8xmFgQAOuY/FhZ+T2h t23GrttQVcZiJopsk1riaFJ6o2Y7x0PekHpYd8NYPYB7kUzR5xamH49N4U53R3oACbkA= X-Gm-Gg: ATEYQzw7YXGLXQNKNBKSksNBOSH06jGcg8P47HUNhpeEZKJVW/Do0qYOQkvsiFkmZtI 6Yka4sbkF8CHAfQjS3sZa3aI+0CG/vAGf0Oc+XfU1zCq1NiDSXdR1jGtoY6IoS52H/Ytw2PoekT YYRrE/RfSHMDQ9pmQQBagagp5u42C3WCRNod/hoZeAxzjAbOuTBV+k/zdLxG4cX4Oe53UF0Zc/q dpb4Gn/4ctBBBUkcTsDHP2bUumLS7mO+iwjFSe6/725IlbIiUNT5XJaLq8YDcZVj6Q6Y9pnqsMV Np5fSPn6jzyT71OFOnEiJC/DzCC+1lDf8qkp6DP8+cyGAh+0fCTqItek2JbqLHJ8P6XHHqbLsDq 5tnofs7EFRnzZpTw/1j4FMtqd8Yok5vgx04+bgmqVL9RG5jG/tITLZ8k= X-Received: by 2002:a05:622a:1e0c:b0:50b:3ff3:f4a7 with SMTP id d75a77b69052e-50b3ff3f592mr191077331cf.35.1774305554332; Mon, 23 Mar 2026 15:39:14 -0700 (PDT) X-Received: by 2002:a05:622a:1e0c:b0:50b:3ff3:f4a7 with SMTP id d75a77b69052e-50b3ff3f592mr191077051cf.35.1774305553946; Mon, 23 Mar 2026 15:39:13 -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.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:13 -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 11/13] ASoC: qcom: q6apm-lpass-dai: move graph start to trigger Date: Mon, 23 Mar 2026 22:38:43 +0000 Message-ID: <20260323223845.2126142-12-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-Authority-Analysis: v=2.4 cv=VvUuwu2n c=1 sm=1 tr=0 ts=69c1c112 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=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=8udmP7N65bQo3KbB_RsA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: l-W2f12pLyIKoXkaG1amG89FjJZma0WC X-Proofpoint-ORIG-GUID: l-W2f12pLyIKoXkaG1amG89FjJZma0WC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX7nb6dcyRzJSZ Hkmft3vdkHVUietipSJSgtBVOY1TFjj+O2mdn4XksJ3J/8wdvEChQ1I84HjJYvMkokceh6RO+Zc pM0wblQoZ+IF2//C/lf5eOTN7Qsh7GcMD3NPV/nIaEz/WdiwaIuNv4RFvikHvUntHZup/jfktBM s05hVxGDI8BA3nca2GKip6fz3WN8fUYh0xJEN+d3RW+mqvvtPrhYGG1pWPBY8stodFFvGxkgYZt NUMtMP2H6NnUqfrI+08MUtt+Ctd0+n8AyrGqJBjpOF0TfcDVPAhhgUO3v/zrCJCNxcX+isEqAv2 ECbzp+V36UvxMBZMbDHlgUjomruajvAgLmKzqTgP++Kr06vvbVD73VI2NpAn+cjN88vfE7h6SgP PAdO05Uj5F13CxHhHG93Al30GjmDFIhEqVPMRgC8B5Xgl253LzQ4JGKVGnfmgMqymNw5rkcAvgA jS+2Hq3TAG7S8m/g3pQ== 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 phishscore=0 malwarescore=0 spamscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 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" Start the graph at trigger callback. Staring the graph at prepare does not make sense as there is no data transfer at this point. Moving this to trigger will also help cope situation where pipewire is not happy if display port is not connected during start. Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 40 +++++++++++++++++-------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c b/sound/soc/qcom/qdsp6= /q6apm-lpass-dais.c index 87f6db12003e..e904066484d5 100644 --- a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +++ b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c @@ -159,6 +159,31 @@ static void q6apm_lpass_dai_shutdown(struct snd_pcm_su= bstream *substream, struct } } =20 +static int q6apm_lpass_dai_trigger(struct snd_pcm_substream *substream, in= t cmd, + struct snd_soc_dai *dai) +{ + struct q6apm_lpass_dai_data *dai_data =3D dev_get_drvdata(dai->dev); + int ret =3D 0; + + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_RESUME: + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + if (!dai_data->is_port_started[dai->id]) { + ret =3D q6apm_graph_start(dai_data->graph[dai->id]); + if (ret < 0) + dev_err(dai->dev, "Failed to start APM port %d\n", dai->id); + else + dai_data->is_port_started[dai->id] =3D true; + } + break; + default: + break; + } + + return ret; +} + static int q6apm_lpass_dai_prepare(struct snd_pcm_substream *substream, st= ruct snd_soc_dai *dai) { struct q6apm_lpass_dai_data *dai_data =3D dev_get_drvdata(dai->dev); @@ -171,10 +196,6 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_subs= tream *substream, struct s q6apm_graph_stop(dai_data->graph[dai->id]); dai_data->is_port_started[dai->id] =3D false; =20 - if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) { - q6apm_graph_close(dai_data->graph[dai->id]); - dai_data->graph[dai->id] =3D NULL; - } } =20 /** @@ -203,14 +224,6 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_subs= tream *substream, struct s dev_err(dai->dev, "Failed to prepare Graph %d\n", rc); goto err; } - - rc =3D q6apm_graph_start(dai_data->graph[dai->id]); - if (rc < 0) { - dev_err(dai->dev, "Failed to start APM port %d\n", dai->id); - goto err; - } - dai_data->is_port_started[dai->id] =3D true; - return 0; err: if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) { @@ -254,6 +267,7 @@ static const struct snd_soc_dai_ops q6dma_ops =3D { .shutdown =3D q6apm_lpass_dai_shutdown, .set_channel_map =3D q6dma_set_channel_map, .hw_params =3D q6dma_hw_params, + .trigger =3D q6apm_lpass_dai_trigger, }; =20 static const struct snd_soc_dai_ops q6i2s_ops =3D { @@ -263,6 +277,7 @@ static const struct snd_soc_dai_ops q6i2s_ops =3D { .set_channel_map =3D q6dma_set_channel_map, .hw_params =3D q6dma_hw_params, .set_fmt =3D q6i2s_set_fmt, + .trigger =3D q6apm_lpass_dai_trigger, }; =20 static const struct snd_soc_dai_ops q6hdmi_ops =3D { @@ -271,6 +286,7 @@ static const struct snd_soc_dai_ops q6hdmi_ops =3D { .shutdown =3D q6apm_lpass_dai_shutdown, .hw_params =3D q6hdmi_hw_params, .set_fmt =3D q6i2s_set_fmt, + .trigger =3D q6apm_lpass_dai_trigger, }; =20 static const struct snd_soc_component_driver q6apm_lpass_dai_component =3D= { --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 CA94E3845C7 for ; Mon, 23 Mar 2026 22:39:18 +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=1774305561; cv=none; b=ZEb7uKDddsH0mWe6fcgF8T1yBgo3hZT3PNkyanLA8XzV0vVpijkQPfScYF43XloUBdsZ24iOBWCM3ohvLsQwOd3YWjVeNsBGaZa3aR9qNIhSd58ha+zLMqNsqb2SPW7iFQ9LhODokITzsdgrRQwwdiOiqrlWbTEuBsLE237bOSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305561; c=relaxed/simple; bh=PuJFamBh81bE/Zj8ZHvJy/U5gL5zjKCwi4dfSJ851vE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZSzr5qq63BulQAsjHiqpFu5koFb+KvisLV2s9dtfnarmilikWKS5247cTQEgT7oWq8LUg2ijapvMR7p1GmhfwUBjhGTaDTAHWsRGrTwuBVqfE51pwm16XUWwJTq43VZNA3mc3RxUl0iSBB9dbHqX1jv1KMH96n2fKpZuc4sAUOg= 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=k8uoxNSM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QWX8KDpc; 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="k8uoxNSM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QWX8KDpc" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NHqjI42681214 for ; Mon, 23 Mar 2026 22:39:18 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=fSPCBd3T5A0 bZHkS+KsyEWqVlhqEkiuzb7wl/h6xEi0=; b=k8uoxNSMU7vahl7ty1y7PsIVjy0 bUz8emvwcfiiy5VJ4nUMIG4yQzzVW+D0yl5PYy5SbBrNrCd/2NbG7ZYCg59Purdz 4+oxrhwTjp1UR8cQ+/h3DefyKriagCORWUsDjt0JcAiE/BvL506weLWq6R5Umj27 uw2msCxcVLtQP7w5D0G1DBiAi15QYZ2d0dutZt92gPTFp85JJPLSIdIWUOv9LrJc 3e/5+5CBKj7ZXxfHgH7oIFbs2LDAYppONCNaQ8G+XUX72LTOegJ08YCU4e6tzQO5 reMAL7DykwnCDpOrYuJaqgM+trdgdql5X26TKrsbk79R280V4x3i0Y6k4fA== 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 4d31p7axrb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:17 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-5090bc4823cso167388141cf.3 for ; Mon, 23 Mar 2026 15:39:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305557; x=1774910357; 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=fSPCBd3T5A0bZHkS+KsyEWqVlhqEkiuzb7wl/h6xEi0=; b=QWX8KDpc9x5c7/eM4/cDxHAaybH1LB2qDpAc1/Fw69mIQ6wTWWm9WGJu6cZgwT4bim DlESHwTWO/PXxq7Jk969bHP2Psn1GqDG/oHuo+ohNstf8JOOtHsi7OYSsu1yN0EBguST KhexXU67mvoQrThM8vESp1cqZRzieaQNDTmiPR6+S9sdpJaXLzCgM6n4eXnFOW3HYj5T Mehjigwbe8DKox7DVJ32Za/4zNaluyr76XTcEqfaFoxGJeowjAUQ7uaF2XXQg2zT0KM9 mxBqJ9yXMs/dEHkDpw1+krAEO1MuJaFvsvct8vdjJhI2glqPvVeGL52qY6VyDr3isG61 zYIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305557; x=1774910357; 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=fSPCBd3T5A0bZHkS+KsyEWqVlhqEkiuzb7wl/h6xEi0=; b=fbyfB3qjuqZVtol4MpBMImtKQcOlfWEpi83qoGW4VaNyy970ApC7nkYwh0S3NfcU7v 0vpOyMaX2jxhw8Awd4Jh0CrRpw4RpIjOUfpa5MO5lkZzP+9MTtQp52zwze6SpgB2U89H 3Pxp5/dHkkdRPr4E58Qz+ZEEbOkZz4S2MXsLbaexxe7+KyxsjNqobhOSfOIWtr8z1aBT FKmKkWqfVFdLeWu91VXpw/1TvWFIu3mHEfOOBQB4K0wntaaSdN/HPyqodvm5jFyQbh/5 g0fbvvzpvLerKsYYjZ+S3vE98ViNp/IJeb1ZdkieUWHzfbkh4VCgTsSt8DqVYPHOsjUJ gFjg== X-Forwarded-Encrypted: i=1; AJvYcCX1nRYePJUlAG4fzLrutb9qgHL0bKv8F6MUoLIXnxBSNv0E6iWvZShK7mmlOg5I/m3OkrZCv9ZIKpxZSC4=@vger.kernel.org X-Gm-Message-State: AOJu0YzLMUoLtnqAMdySXPsNMoePmRP32HiLObC4yEP+lljE8JeQJZjw lRaTvCqOfHjlgRE4B1eRHZAQpAPG9OMy2+g9B5A0lp1Y8fxqTcTdvde4B3rWvaqwAeU9+m/EjFy 9FLwjyvOb8nudD0VrlnxHQNa8rRJ6OJOqWX+4ePQTugMI5+wGbcua3ewz0MYpDEHlHaE= X-Gm-Gg: ATEYQzxfhu0XaJfAX4ICMlgfzliFiyaapgVKgYyqQTHqEoYlWz/Ol1Z2PT1J++des4A gw/S+rtn84bOdQMW/by/VeQ2PBWnWHaueynbvnPZ27Tgs+57G06Ur6Vz8Nmx1nzYAQ7m5r0ZLaM 2sVu0wZmvkWmruz5CcPlEuu32nnbvxUEwZleISNcU/c8lJtNk1OtW7z1f/DbkmxEOtVXNkvfmhm 9JSdJBTVSCxiIsth3RCpqrtU3+/wIV+kmgJaelESrJhMoce8lHBjcPI//DEB7fWs+Yb1n+tPHHS FHHNp7YhoDj0qEDEFCq49lDH8K5N9tFIl2p8jP+KnBnam0j9A/lbMsE0ssJxjVEf7F+xVVF7Xaz OUAmEUBI3P3UZPbXPmS90NJjJB6hEKxQsd5v62OvMnblCCg89cW6x0lg= X-Received: by 2002:a05:622a:1391:b0:50b:1e5d:9930 with SMTP id d75a77b69052e-50b375a89acmr211411271cf.58.1774305557248; Mon, 23 Mar 2026 15:39:17 -0700 (PDT) X-Received: by 2002:a05:622a:1391:b0:50b:1e5d:9930 with SMTP id d75a77b69052e-50b375a89acmr211411001cf.58.1774305556758; Mon, 23 Mar 2026 15:39:16 -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.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:15 -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 12/13] ASoC: qcom: qdsp6: remove search for module iid in hot path Date: Mon, 23 Mar 2026 22:38:44 +0000 Message-ID: <20260323223845.2126142-13-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-Authority-Analysis: v=2.4 cv=RMC+3oi+ c=1 sm=1 tr=0 ts=69c1c115 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=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=Ll4dbTg5roZnn8cDlSAA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-ORIG-GUID: 6Aexn4OGd_dUzDIF-wYt0f0dWYNYyFOO X-Proofpoint-GUID: 6Aexn4OGd_dUzDIF-wYt0f0dWYNYyFOO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX3rIGxMO10pJd GAu7antNYNyYKdDs1w/6PWOWOfxuCRgcIUclVTHhk+sqHhn+Xj5rHksqItpc5HjkLbAIdks1aS4 kYLimvMDJ6/OldM9h2ePEmaz1JH7NkvMbwSYHbcn1G/YfjMPjSw/mx2AFR4NWxfe/dQohvkKnlK L0e69kfVKIlrZTJxqsbzWRnETbnuIHoLddX84jC90FLPHcbfX9EYn/dx2kMeoYgFTrc7Ry7Om0x 2js8C7g1ywA0wlurvEYp+RH3XpOdPRNvCwOjvjeVePAPf24gS9P3mCu8EAjvbP7QHN83N3MebRy Opy3nWnj6dM3CxhOKf9kVafx4KfbgT73/7JlKYfFl8Uu4mNCZDAakbhquye+05g15jHYEwFfRqG oIbL81SfxumAMNir2WTJTkmVNGQGRsSfGWx1QureFrFqIL3/CiAxUoQm3c1CfGMlzYcKFw+Awag YEKyOQFb0s1XuJ3CwMw== 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 malwarescore=0 phishscore=0 lowpriorityscore=0 impostorscore=0 priorityscore=1501 bulkscore=0 spamscore=0 adultscore=0 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" Remove searching for Shared Memory module instance id on every read/write call, this is un-necessary if we can cache the shared memory module instance id per PCM graph. Add new member to graph struct to store shared memory module instance id to avoid searching for this in hot path. Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm-dai.c | 5 +++-- sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 4 ++-- sound/soc/qcom/qdsp6/q6apm.c | 14 +++++++++----- sound/soc/qcom/qdsp6/q6apm.h | 3 ++- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/sound/soc/qcom/qdsp6/q6apm-dai.c b/sound/soc/qcom/qdsp6/q6apm-= dai.c index 292be457764f..86d6438bd9fd 100644 --- a/sound/soc/qcom/qdsp6/q6apm-dai.c +++ b/sound/soc/qcom/qdsp6/q6apm-dai.c @@ -355,7 +355,7 @@ static int q6apm_dai_open(struct snd_soc_component *com= ponent, =20 spin_lock_init(&prtd->lock); prtd->substream =3D substream; - prtd->graph =3D q6apm_graph_open(dev, event_handler, prtd, graph_id); + prtd->graph =3D q6apm_graph_open(dev, event_handler, prtd, graph_id, subs= tream->stream); if (IS_ERR(prtd->graph)) { dev_err(dev, "%s: Could not allocate memory\n", __func__); ret =3D PTR_ERR(prtd->graph); @@ -496,7 +496,8 @@ static int q6apm_dai_compr_open(struct snd_soc_componen= t *component, return -ENOMEM; =20 prtd->cstream =3D stream; - prtd->graph =3D q6apm_graph_open(dev, event_handler_compr, prtd, graph_id= ); + prtd->graph =3D q6apm_graph_open(dev, event_handler_compr, prtd, graph_id, + SNDRV_PCM_STREAM_PLAYBACK); if (IS_ERR(prtd->graph)) { ret =3D PTR_ERR(prtd->graph); kfree(prtd); diff --git a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c b/sound/soc/qcom/qdsp6= /q6apm-lpass-dais.c index e904066484d5..006b283484d9 100644 --- a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +++ b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c @@ -203,7 +203,7 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_subst= ream *substream, struct s * graph, so sequence for playback and capture will be different */ if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK && dai_data->graph= [dai->id] =3D=3D NULL) { - graph =3D q6apm_graph_open(dai->dev, NULL, dai->dev, graph_id); + graph =3D q6apm_graph_open(dai->dev, NULL, dai->dev, graph_id, substream= ->stream); if (IS_ERR(graph)) { dev_err(dai->dev, "Failed to open graph (%d)\n", graph_id); rc =3D PTR_ERR(graph); @@ -240,7 +240,7 @@ static int q6apm_lpass_dai_startup(struct snd_pcm_subst= ream *substream, struct s int graph_id =3D dai->id; =20 if (substream->stream =3D=3D SNDRV_PCM_STREAM_CAPTURE) { - graph =3D q6apm_graph_open(dai->dev, NULL, dai->dev, graph_id); + graph =3D q6apm_graph_open(dai->dev, NULL, dai->dev, graph_id, substream= ->stream); if (IS_ERR(graph)) { dev_err(dai->dev, "Failed to open graph (%d)\n", graph_id); return PTR_ERR(graph); diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c index 9d4cbe29cf94..c874dae53163 100644 --- a/sound/soc/qcom/qdsp6/q6apm.c +++ b/sound/soc/qcom/qdsp6/q6apm.c @@ -411,12 +411,11 @@ int q6apm_write_async(struct q6apm_graph *graph, uint= 32_t len, uint32_t msw_ts, { struct apm_data_cmd_wr_sh_mem_ep_data_buffer_v2 *write_buffer; struct audio_buffer *ab; - int iid =3D q6apm_graph_get_rx_shmem_module_iid(graph); =20 struct gpr_pkt *pkt __free(kfree) =3D audioreach_alloc_pkt(sizeof(*write_= buffer), DATA_CMD_WR_SH_MEM_EP_DATA_BUFFER_V2, graph->rx_data.dsp_buf | (len << APM_WRITE_TOKEN_LEN_SHIFT), - graph->port->id, iid); + graph->port->id, graph->shm_iid); if (IS_ERR(pkt)) return PTR_ERR(pkt); =20 @@ -449,11 +448,10 @@ int q6apm_read(struct q6apm_graph *graph) struct data_cmd_rd_sh_mem_ep_data_buffer_v2 *read_buffer; struct audioreach_graph_data *port; struct audio_buffer *ab; - int iid =3D q6apm_graph_get_tx_shmem_module_iid(graph); =20 struct gpr_pkt *pkt __free(kfree) =3D audioreach_alloc_pkt(sizeof(*read_b= uffer), DATA_CMD_RD_SH_MEM_EP_DATA_BUFFER_V2, - graph->tx_data.dsp_buf, graph->port->id, iid); + graph->tx_data.dsp_buf, graph->port->id, graph->shm_iid); if (IS_ERR(pkt)) return PTR_ERR(pkt); =20 @@ -604,7 +602,7 @@ static int graph_callback(const struct gpr_resp_pkt *da= ta, void *priv, int op) } =20 struct q6apm_graph *q6apm_graph_open(struct device *dev, q6apm_cb cb, - void *priv, int graph_id) + void *priv, int graph_id, int dir) { struct q6apm *apm =3D dev_get_drvdata(dev->parent); struct audioreach_graph *ar_graph; @@ -631,6 +629,12 @@ struct q6apm_graph *q6apm_graph_open(struct device *de= v, q6apm_cb cb, graph->id =3D ar_graph->id; graph->dev =3D dev; =20 + if (dir =3D=3D SNDRV_PCM_STREAM_PLAYBACK) + graph->shm_iid =3D q6apm_graph_get_rx_shmem_module_iid(graph); + else + graph->shm_iid =3D q6apm_graph_get_tx_shmem_module_iid(graph); + + mutex_init(&graph->lock); init_waitqueue_head(&graph->cmd_wait); =20 diff --git a/sound/soc/qcom/qdsp6/q6apm.h b/sound/soc/qcom/qdsp6/q6apm.h index 5cf538397841..7c646ffcf956 100644 --- a/sound/soc/qcom/qdsp6/q6apm.h +++ b/sound/soc/qcom/qdsp6/q6apm.h @@ -99,6 +99,7 @@ struct q6apm_graph { void *priv; q6apm_cb cb; uint32_t id; + uint32_t shm_iid; struct device *dev; struct q6apm *apm; gpr_port_t *port; @@ -113,7 +114,7 @@ struct q6apm_graph { =20 /* Graph Operations */ struct q6apm_graph *q6apm_graph_open(struct device *dev, q6apm_cb cb, - void *priv, int graph_id); + void *priv, int graph_id, int dir); int q6apm_graph_close(struct q6apm_graph *graph); int q6apm_graph_prepare(struct q6apm_graph *graph); int q6apm_graph_start(struct q6apm_graph *graph); --=20 2.47.3 From nobody Sun Apr 5 16:48:06 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 A8BE73845D1 for ; Mon, 23 Mar 2026 22:39:20 +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=1774305568; cv=none; b=jx/RkTgsrIi6PjLknTlTqMQKMvwgMeLpnS7vcGtYrA5BHsdcVa3tpMmBR1ofCZ36/KMvXBGl0V8pM1VY08iC8KaHw7yMrG5bGY0mUIWK6pQHHZe8v+usq8ArH4Ehf3GsykqkiWWpPyra974fpEyyznlZYTm+X0lFcp+2Ef3Hdzs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305568; c=relaxed/simple; bh=i7xC8QwgKa/e7Tbxlrmvz+rJTCfxQ9AsYbFRZN9K44c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Q4V5D0PYsrW2XywyaycPSZ3H4i4CS8iX/+IDMZJ/CTR4hdjrjfV5mrwdVKI8GZqeLlipnAjgZ7ZizuiX9BhU6VAnS37a7ozj0MlGFJRD0hYHEKu/bUre4B/n/Z2+65zkwlqU5GiFW5Bw8EqkhqaNdljyKvv31WPV4gsLVnTD63o= 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=GZ8uCA0O; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZnFhIvQD; 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="GZ8uCA0O"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZnFhIvQD" 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 62NHqZCE943562 for ; Mon, 23 Mar 2026 22:39:19 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=b4BDjNCVk8p 9irzHcBYf7+HuKzr5jBjQdwW7M52p7pY=; b=GZ8uCA0OxmSR3rFjyNRcXd6MXnl UaQJ+EFw16CVC0raVsnVoE+Ag+K4DZQConhYvqKbuAj4f1p3BS3Fsuner9my23/p uDEBxY4x9aNZAt9v+xySuwqKStoVzkpD3s+LVyjhf9C04EHDtnGk8KubQacApkoX Sb9p5x/oJC0SzYbPJpwDIDr4YMttZNFp90kInWZe1nVdqfRTbfzosl9h9AKbkKN6 T5k60A24omcZqUX7Cfjg8RQno0PP0TkhFSlI0WLn3W+WSue5WauHi376O4FG7sU9 jdswmxbvxYhbtkldabysDzqK5uxZyvfSBgJ2kTKSqQ8ozn6UmBPzAY0bJ3w== 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 4d34vkt585-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:19 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b469e5543so7323951cf.1 for ; Mon, 23 Mar 2026 15:39:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305559; x=1774910359; 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=b4BDjNCVk8p9irzHcBYf7+HuKzr5jBjQdwW7M52p7pY=; b=ZnFhIvQD/p24UOghlcTI+ihl9p3y2sHeidW+M/mDa21eHtQYodk3dkqPr3O9Dcyr+v 8XUKbeMEWDQsno9RqtZV3ZHi2EGdHFClVT3ZmKtYeKqza0pjPWiH6KxqrDsbrVrmC+oE HBzUeD5sjiFRkhCm0OYlltrDjt5G+Ner6JNMmYaqnEuEuJFM9sGzELZwcssLOwzkoyvr AGBE7J1SDJuYKVZEUixyUCx6x4waOORp8SkQEjnWTHEBZC1chcCqgfLENBwg9Te9lTVG waBkWFqcEKLt19RFmvG9LxEPJAw1RFs2ilma+45mdtooc2g3QoEDpl4r9HX5CsVWKXGT ckgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305559; x=1774910359; 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=b4BDjNCVk8p9irzHcBYf7+HuKzr5jBjQdwW7M52p7pY=; b=okJpH86dWKKHa/niMuAHtiDOe2IMyh/Sob11bd88whhCUGkTrzJluDLKsdHLEOzntz M0iX6iHpbXec05652s+ROyZycK4ZDo3LKM9Awx6mQwt53gRJHauXgLHbRF2vBTverFUh N5JurwkvHkyFIWLgQyUnc2p6I7HBkVt0uELWExX3T76nbbltOzAnvWl1DY/YY3JP0GhH P1PEyLg+4MGvvsUNmLvr6NcUNuK9WXA0PKSP9mwWTwpiGm81MG58n6vM+n33kmHXgd7t QecD8RFmFhStcN1VN9zsVC9IHpO4OozScE8ZksCUvoS11P6vWwzB/n+oB9QFx/VgEhXT 8MGA== X-Forwarded-Encrypted: i=1; AJvYcCWPiOEEA9IsohG7wjeu4jzqz/VbiOYn9sm69FTzGe1VaZA3DiMKbAWl+0EBaq+QShTJIGyU+Oce3NaBDWI=@vger.kernel.org X-Gm-Message-State: AOJu0Yz/I4D36kEHhPKd08ewkhS25vDEQKVn/nlXOg3yOW5TSZOQZqZY ePJOiX5rxp1fGSN/vpSIwfL+LBfBMMC29Isxca/ni9QR4n4rFmqwwdUsMJ2Ym+5XrXxfWqaVEv2 HN0EA/68MPIpStPy3nFhfGV+lI1Xq9H8yE5ph9F57WRgtK+/6GElqdJHSjHxfcMgNGug= X-Gm-Gg: ATEYQzyMOjqIvmi0EGiC5ySXDIcTP2pKTX6dIcCs5Mo6fu9En3iFr8WoH9X+IRU5sxo C8d6hcMGcI+2E0PQgyIzzLAEf7KEFe8FKeVJSmdz52h4miaKvqcNatmAqDP1zjejeNRzLgSMm3F 159ZVPt+2isfSVabamOIEEjhUO/3GKijhDc69aZg8tDThITzOq+OCQJkDhKNopWKd6FhORkm/e8 jWNnAGGOMkRX6ffsxDJX4YoCb9s3SG1gGaidNDRzxJMwJrJogYLQIvROiUFc0Sl8sjnuDA5ITqp B5BYa/f34OTzAqwdkpTdCH8/0cOqNt4gN747fs1pmRDASpgQyaWuoIWYsE2fPDdVw+N8aK7xZry f0iJHTUpr5I8CE/wMgBsUQHYU5Y00v7mKISBopQQ7gJiP1+OxoFvtcqQ= X-Received: by 2002:a05:622a:14ca:b0:509:320:2de6 with SMTP id d75a77b69052e-50b374414c9mr208120491cf.25.1774305558807; Mon, 23 Mar 2026 15:39:18 -0700 (PDT) X-Received: by 2002:a05:622a:14ca:b0:509:320:2de6 with SMTP id d75a77b69052e-50b374414c9mr208120171cf.25.1774305558253; Mon, 23 Mar 2026 15:39:18 -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.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:17 -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 13/13] ASoC: qcom: q6apm: Add support for early buffer mapping on DSP Date: Mon, 23 Mar 2026 22:38:45 +0000 Message-ID: <20260323223845.2126142-14-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-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfXxqlRv7s5hPgy EYeAqhjdpQZzWdNsLStvxE9u3Clju6ffQAzBaGVm2aOncew1nEpRAjQgerRYXnWAKRUDLUt4Dff PnIuDST004WT6viKdxz3uIrLWa+NuOzENIXp9Z8dIg595+UA6WRNHwj0wu28thwJRL62yGWo0Qg /OUR70TI3GDGUFSkaUq7GdOSua3yINx0OrzjV+esCjTYHVTaxRKcMNp5nIsH7FXR3mnycrPQw03 ER4fZ3i30Rv1Y5qQYJKMukav1yvaYw5JtEm/r1OlW1yRY2B5fiJpjEbfsdODFv0LWNcggn7gh2q xBgoSEAp9lwwL6ctMS/cyuly5OsLtWbEKBcLNQZglGvDLSgWM19NVs2ghRhH7nsGQCycYQwnZh7 KCU2BxVcYUaGzmqCONLzF0LIrWYPRBp5eaRB/8kyl5NkmEVioVgn7+cFND+PJQjCkkqkKVV/Rno 6TIik/vSJ6BaZzVbI9w== X-Authority-Analysis: v=2.4 cv=eMoeTXp1 c=1 sm=1 tr=0 ts=69c1c117 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=KqBSpy-4UWhbKApt0wUA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: yeP55KmFzWcRfr29eplyXnVajGMIBtGC X-Proofpoint-ORIG-GUID: yeP55KmFzWcRfr29eplyXnVajGMIBtGC 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 malwarescore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 phishscore=0 spamscore=0 clxscore=1015 priorityscore=1501 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" Buffers are allocated on pcm_new and mapped in the dsp on every prepare call, which is inefficient and unnecessary. Add new functions q6apm_[un]map_memory_fixed_region to map it on to dsp only once after allocation. Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/audioreach.c | 60 ------------ sound/soc/qcom/qdsp6/audioreach.h | 5 +- sound/soc/qcom/qdsp6/q6apm-dai.c | 110 ++++++++++++++++++--- sound/soc/qcom/qdsp6/q6apm.c | 158 ++++++++++++++++++++---------- sound/soc/qcom/qdsp6/q6apm.h | 14 +-- 5 files changed, 212 insertions(+), 135 deletions(-) diff --git a/sound/soc/qcom/qdsp6/audioreach.c b/sound/soc/qcom/qdsp6/audio= reach.c index 241c3b4479c6..b2975eebab71 100644 --- a/sound/soc/qcom/qdsp6/audioreach.c +++ b/sound/soc/qcom/qdsp6/audioreach.c @@ -1396,66 +1396,6 @@ void audioreach_graph_free_buf(struct q6apm_graph *g= raph) } EXPORT_SYMBOL_GPL(audioreach_graph_free_buf); =20 -int audioreach_map_memory_regions(struct q6apm_graph *graph, unsigned int = dir, size_t period_sz, - unsigned int periods, bool is_contiguous) -{ - struct apm_shared_map_region_payload *mregions; - struct apm_cmd_shared_mem_map_regions *cmd; - uint32_t num_regions, buf_sz, payload_size; - struct audioreach_graph_data *data; - struct gpr_pkt *pkt __free(kfree) =3D NULL; - void *p; - int i; - - if (dir =3D=3D SNDRV_PCM_STREAM_PLAYBACK) - data =3D &graph->rx_data; - else - data =3D &graph->tx_data; - - if (is_contiguous) { - num_regions =3D 1; - buf_sz =3D period_sz * periods; - } else { - buf_sz =3D period_sz; - num_regions =3D periods; - } - - /* DSP expects size should be aligned to 4K */ - buf_sz =3D ALIGN(buf_sz, 4096); - - payload_size =3D sizeof(*cmd) + (sizeof(*mregions) * num_regions); - - pkt =3D audioreach_alloc_apm_pkt(payload_size, APM_CMD_SHARED_MEM_MAP_REG= IONS, dir, - graph->port->id); - if (IS_ERR(pkt)) - return PTR_ERR(pkt); - - p =3D (void *)pkt + GPR_HDR_SIZE; - cmd =3D p; - cmd->mem_pool_id =3D APM_MEMORY_MAP_SHMEM8_4K_POOL; - cmd->num_regions =3D num_regions; - - cmd->property_flag =3D 0x0; - - mregions =3D p + sizeof(*cmd); - - mutex_lock(&graph->lock); - - for (i =3D 0; i < num_regions; i++) { - struct audio_buffer *ab; - - ab =3D &data->buf[i]; - mregions->shm_addr_lsw =3D lower_32_bits(ab->phys); - mregions->shm_addr_msw =3D upper_32_bits(ab->phys); - mregions->mem_size_bytes =3D buf_sz; - ++mregions; - } - mutex_unlock(&graph->lock); - - return audioreach_graph_send_cmd_sync(graph, pkt, APM_CMD_RSP_SHARED_MEM_= MAP_REGIONS); -} -EXPORT_SYMBOL_GPL(audioreach_map_memory_regions); - int audioreach_shared_memory_send_eos(struct q6apm_graph *graph) { struct data_cmd_wr_sh_mem_ep_eos *eos; diff --git a/sound/soc/qcom/qdsp6/audioreach.h b/sound/soc/qcom/qdsp6/audio= reach.h index 89f172aab8c0..6ddc287f0fb4 100644 --- a/sound/soc/qcom/qdsp6/audioreach.h +++ b/sound/soc/qcom/qdsp6/audioreach.h @@ -722,6 +722,7 @@ struct audioreach_connection { =20 struct audioreach_graph_info { int id; + uint32_t mem_map_handle; uint32_t num_sub_graphs; struct list_head sg_list; /* DPCM connection from FE Graph to BE graph */ @@ -838,10 +839,6 @@ int audioreach_tplg_init(struct snd_soc_component *com= ponent); =20 /* Module specific */ void audioreach_graph_free_buf(struct q6apm_graph *graph); -int audioreach_map_memory_regions(struct q6apm_graph *graph, - unsigned int dir, size_t period_sz, - unsigned int periods, - bool is_contiguous); int audioreach_send_cmd_sync(struct device *dev, gpr_device_t *gdev, struc= t gpr_ibasic_rsp_result_t *result, struct mutex *cmd_lock, gpr_port_t *port, wait_queue_head_t *cmd_w= ait, struct gpr_pkt *pkt, uint32_t rsp_opcode); diff --git a/sound/soc/qcom/qdsp6/q6apm-dai.c b/sound/soc/qcom/qdsp6/q6apm-= dai.c index 86d6438bd9fd..ae5318e0aa3b 100644 --- a/sound/soc/qcom/qdsp6/q6apm-dai.c +++ b/sound/soc/qcom/qdsp6/q6apm-dai.c @@ -228,11 +228,10 @@ static int q6apm_dai_prepare(struct snd_soc_component= *component, cfg.bit_width =3D prtd->bits_per_sample; cfg.fmt =3D SND_AUDIOCODEC_PCM; audioreach_set_default_channel_mapping(cfg.channel_map, runtime->channels= ); - if (prtd->state) { /* clear the previous setup if any */ q6apm_graph_stop(prtd->graph); - q6apm_unmap_memory_regions(prtd->graph, substream->stream); + q6apm_free_fragments(prtd->graph, substream->stream); } =20 prtd->pcm_count =3D snd_pcm_lib_period_bytes(substream); @@ -247,8 +246,8 @@ static int q6apm_dai_prepare(struct snd_soc_component *= component, if (ret < 0) dev_err(dev, "%s: CMD Format block failed\n", __func__); =20 - ret =3D q6apm_map_memory_regions(prtd->graph, substream->stream, prtd->ph= ys, - (prtd->pcm_size / prtd->periods), prtd->periods); + ret =3D q6apm_alloc_fragments(prtd->graph, substream->stream, prtd->phys, + (prtd->pcm_size / prtd->periods), prtd->periods); =20 if (ret < 0) { dev_err(dev, "Audio Start: Buffer Allocation failed rc =3D %d\n", ret); @@ -416,9 +415,10 @@ static int q6apm_dai_close(struct snd_soc_component *c= omponent, struct snd_pcm_runtime *runtime =3D substream->runtime; struct q6apm_dai_rtd *prtd =3D runtime->private_data; =20 - if (prtd->state) { /* only stop graph that is started */ + if (prtd->state) { + /* only stop graph that is started */ q6apm_graph_stop(prtd->graph); - q6apm_unmap_memory_regions(prtd->graph, substream->stream); + q6apm_free_fragments(prtd->graph, substream->stream); } =20 q6apm_graph_close(prtd->graph); @@ -467,11 +467,97 @@ static int q6apm_dai_hw_params(struct snd_soc_compone= nt *component, return 0; } =20 +static int q6apm_dai_memory_map(struct snd_soc_component *component, + struct snd_pcm_substream *substream, int graph_id) +{ + struct q6apm_dai_data *pdata; + struct device *dev =3D component->dev; + phys_addr_t phys; + int ret; + + pdata =3D snd_soc_component_get_drvdata(component); + if (!pdata) { + dev_err(component->dev, "Drv data not found ..\n"); + return -EINVAL; + } + + if (pdata->sid < 0) + phys =3D substream->dma_buffer.addr; + else + phys =3D substream->dma_buffer.addr | (pdata->sid << 32); + + ret =3D q6apm_map_memory_fixed_region(dev, graph_id, phys, BUFFER_BYTES_M= AX); + if (ret < 0) + dev_err(dev, "Audio Start: Buffer Allocation failed rc =3D %d\n", ret); + + return ret; +} + static int q6apm_dai_pcm_new(struct snd_soc_component *component, struct s= nd_soc_pcm_runtime *rtd) { + struct snd_soc_dai *cpu_dai =3D snd_soc_rtd_to_cpu(rtd, 0); + struct snd_pcm *pcm =3D rtd->pcm; int size =3D BUFFER_BYTES_MAX; + int graph_id, ret; + struct snd_pcm_substream *substream; + + graph_id =3D cpu_dai->driver->id; + + ret =3D snd_pcm_set_fixed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV, component->= dev, size); + if (ret) + return ret; + + if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) { + substream =3D pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream; + ret =3D q6apm_dai_memory_map(component, substream, graph_id); + if (ret) + return ret; + } + + if (pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream) { + substream =3D pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream; + ret =3D q6apm_dai_memory_map(component, substream, graph_id); + if (ret) { + if (pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream) + q6apm_unmap_memory_fixed_region(component->dev, graph_id); + + return ret; + } + } + + return 0; +} + +static void q6apm_dai_memory_unmap(struct snd_soc_component *component, + struct snd_pcm_substream *substream) +{ + struct snd_soc_pcm_runtime *soc_prtd; + struct snd_soc_dai *cpu_dai; + int graph_id; + + soc_prtd =3D snd_soc_substream_to_rtd(substream); + if (!soc_prtd) + return; + + cpu_dai =3D snd_soc_rtd_to_cpu(soc_prtd, 0); + if (!cpu_dai) + return; + + graph_id =3D cpu_dai->driver->id; + q6apm_unmap_memory_fixed_region(component->dev, graph_id); +} + +static void q6apm_dai_pcm_free(struct snd_soc_component *component, struct= snd_pcm *pcm) +{ + struct snd_pcm_substream *substream; + + substream =3D pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream; + if (substream) + q6apm_dai_memory_unmap(component, substream); =20 - return snd_pcm_set_fixed_buffer_all(rtd->pcm, SNDRV_DMA_TYPE_DEV, compone= nt->dev, size); + substream =3D pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream; + if (substream) + q6apm_dai_memory_unmap(component, substream); } =20 static int q6apm_dai_compr_open(struct snd_soc_component *component, @@ -530,7 +616,8 @@ static int q6apm_dai_compr_free(struct snd_soc_componen= t *component, struct q6apm_dai_rtd *prtd =3D runtime->private_data; =20 q6apm_graph_stop(prtd->graph); - q6apm_unmap_memory_regions(prtd->graph, SNDRV_PCM_STREAM_PLAYBACK); + q6apm_free_fragments(prtd->graph, SNDRV_PCM_STREAM_PLAYBACK); + q6apm_unmap_memory_fixed_region(component->dev, prtd->graph->id); q6apm_graph_close(prtd->graph); snd_dma_free_pages(&prtd->dma_buffer); prtd->graph =3D NULL; @@ -679,9 +766,9 @@ static int q6apm_dai_compr_set_params(struct snd_soc_co= mponent *component, if (ret) return ret; =20 - ret =3D q6apm_map_memory_regions(prtd->graph, SNDRV_PCM_STREAM_PLAYBACK, - prtd->phys, (prtd->pcm_size / prtd->periods), - prtd->periods); + ret =3D q6apm_alloc_fragments(prtd->graph, SNDRV_PCM_STREAM_PLAYBACK, + prtd->phys, (prtd->pcm_size / prtd->periods), + prtd->periods); if (ret < 0) return -ENOMEM; =20 @@ -834,6 +921,7 @@ static const struct snd_soc_component_driver q6apm_fe_d= ai_component =3D { .close =3D q6apm_dai_close, .prepare =3D q6apm_dai_prepare, .pcm_new =3D q6apm_dai_pcm_new, + .pcm_free =3D q6apm_dai_pcm_free, .hw_params =3D q6apm_dai_hw_params, .pointer =3D q6apm_dai_pointer, .trigger =3D q6apm_dai_trigger, diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c index c874dae53163..1889d50df862 100644 --- a/sound/soc/qcom/qdsp6/q6apm.c +++ b/sound/soc/qcom/qdsp6/q6apm.c @@ -200,13 +200,53 @@ int q6apm_graph_media_format_shmem(struct q6apm_graph= *graph, } EXPORT_SYMBOL_GPL(q6apm_graph_media_format_shmem); =20 -int q6apm_map_memory_regions(struct q6apm_graph *graph, unsigned int dir, = phys_addr_t phys, - size_t period_sz, unsigned int periods) +int q6apm_map_memory_fixed_region(struct device *dev, unsigned int graph_i= d, phys_addr_t phys, + size_t sz) +{ + struct audioreach_graph_info *info; + struct q6apm *apm =3D dev_get_drvdata(dev->parent); + struct apm_shared_map_region_payload *mregions; + struct apm_cmd_shared_mem_map_regions *cmd; + int payload_size =3D sizeof(*cmd) + (sizeof(*mregions)); + uint32_t buf_sz; + void *p; + struct gpr_pkt *pkt __free(kfree) =3D audioreach_alloc_apm_cmd_pkt(payloa= d_size, + APM_CMD_SHARED_MEM_MAP_REGIONS, graph_id); + if (IS_ERR(pkt)) + return PTR_ERR(pkt); + + info =3D idr_find(&apm->graph_info_idr, graph_id); + if (!info) + return -ENODEV; + + if (info->mem_map_handle) + return 0; + + /* DSP expects size should be aligned to 4K */ + buf_sz =3D ALIGN(sz, 4096); + + p =3D (void *)pkt + GPR_HDR_SIZE; + cmd =3D p; + cmd->mem_pool_id =3D APM_MEMORY_MAP_SHMEM8_4K_POOL; + cmd->num_regions =3D 1; + cmd->property_flag =3D 0x0; + + mregions =3D p + sizeof(*cmd); + + mregions->shm_addr_lsw =3D lower_32_bits(phys); + mregions->shm_addr_msw =3D upper_32_bits(phys); + mregions->mem_size_bytes =3D buf_sz; + + return q6apm_send_cmd_sync(apm, pkt, APM_CMD_RSP_SHARED_MEM_MAP_REGIONS); +} +EXPORT_SYMBOL_GPL(q6apm_map_memory_fixed_region); + +int q6apm_alloc_fragments(struct q6apm_graph *graph, unsigned int dir, phy= s_addr_t phys, + size_t period_sz, unsigned int periods) { struct audioreach_graph_data *data; struct audio_buffer *buf; int cnt; - int rc; =20 if (dir =3D=3D SNDRV_PCM_STREAM_PLAYBACK) data =3D &graph->rx_data; @@ -248,46 +288,48 @@ int q6apm_map_memory_regions(struct q6apm_graph *grap= h, unsigned int dir, phys_a =20 mutex_unlock(&graph->lock); =20 - rc =3D audioreach_map_memory_regions(graph, dir, period_sz, periods, 1); - if (rc < 0) { - dev_err(graph->dev, "Memory_map_regions failed\n"); - audioreach_graph_free_buf(graph); - } - - return rc; + return 0; } -EXPORT_SYMBOL_GPL(q6apm_map_memory_regions); +EXPORT_SYMBOL_GPL(q6apm_alloc_fragments); =20 -int q6apm_unmap_memory_regions(struct q6apm_graph *graph, unsigned int dir) +int q6apm_unmap_memory_fixed_region(struct device *dev, unsigned int graph= _id) { struct apm_cmd_shared_mem_unmap_regions *cmd; - struct audioreach_graph_data *data; - int rc; + struct q6apm *apm =3D dev_get_drvdata(dev->parent); + struct audioreach_graph_info *info; + struct gpr_pkt *pkt __free(kfree) =3D audioreach_alloc_apm_cmd_pkt(sizeof= (*cmd), + APM_CMD_SHARED_MEM_UNMAP_REGIONS, graph_id); + if (IS_ERR(pkt)) + return PTR_ERR(pkt); =20 - if (dir =3D=3D SNDRV_PCM_STREAM_PLAYBACK) - data =3D &graph->rx_data; - else - data =3D &graph->tx_data; + info =3D idr_find(&apm->graph_info_idr, graph_id); + if (!info) + return -ENODEV; =20 - if (!data->mem_map_handle) + if (!info->mem_map_handle) return 0; =20 - struct gpr_pkt *pkt __free(kfree) =3D - audioreach_alloc_apm_pkt(sizeof(*cmd), APM_CMD_SHARED_MEM_UNMAP_REGIONS, - dir, graph->port->id); - if (IS_ERR(pkt)) - return PTR_ERR(pkt); - cmd =3D (void *)pkt + GPR_HDR_SIZE; - cmd->mem_map_handle =3D data->mem_map_handle; + cmd->mem_map_handle =3D info->mem_map_handle; + + return q6apm_send_cmd_sync(apm, pkt, APM_CMD_SHARED_MEM_UNMAP_REGIONS); +} +EXPORT_SYMBOL_GPL(q6apm_unmap_memory_fixed_region); =20 - rc =3D audioreach_graph_send_cmd_sync(graph, pkt, APM_CMD_SHARED_MEM_UNMA= P_REGIONS); +int q6apm_free_fragments(struct q6apm_graph *graph, unsigned int dir) +{ + struct audioreach_graph_data *data; + + if (dir =3D=3D SNDRV_PCM_STREAM_PLAYBACK) + data =3D &graph->rx_data; + else + data =3D &graph->tx_data; =20 audioreach_graph_free_buf(graph); =20 - return rc; + return 0; } -EXPORT_SYMBOL_GPL(q6apm_unmap_memory_regions); +EXPORT_SYMBOL_GPL(q6apm_free_fragments); =20 int q6apm_remove_initial_silence(struct device *dev, struct q6apm_graph *g= raph, uint32_t samples) { @@ -429,7 +471,7 @@ int q6apm_write_async(struct q6apm_graph *graph, uint32= _t len, uint32_t msw_ts, write_buffer->buf_size =3D len; write_buffer->timestamp_lsw =3D lsw_ts; write_buffer->timestamp_msw =3D msw_ts; - write_buffer->mem_map_handle =3D graph->rx_data.mem_map_handle; + write_buffer->mem_map_handle =3D graph->info->mem_map_handle; write_buffer->flags =3D wflags; =20 graph->rx_data.dsp_buf++; @@ -463,7 +505,7 @@ int q6apm_read(struct q6apm_graph *graph) =20 read_buffer->buf_addr_lsw =3D lower_32_bits(ab->phys); read_buffer->buf_addr_msw =3D upper_32_bits(ab->phys); - read_buffer->mem_map_handle =3D port->mem_map_handle; + read_buffer->mem_map_handle =3D graph->info->mem_map_handle; read_buffer->buf_size =3D ab->size; =20 port->dsp_buf++; @@ -494,7 +536,6 @@ static int graph_callback(const struct gpr_resp_pkt *da= ta, void *priv, int op) { struct data_cmd_rsp_rd_sh_mem_ep_data_buffer_done_v2 *rd_done; struct data_cmd_rsp_wr_sh_mem_ep_data_buffer_done_v2 *done; - struct apm_cmd_rsp_shared_mem_map_regions *rsp; const struct gpr_ibasic_rsp_result_t *result; struct q6apm_graph *graph =3D priv; const struct gpr_hdr *hdr =3D &data->hdr; @@ -529,18 +570,6 @@ static int graph_callback(const struct gpr_resp_pkt *d= ata, void *priv, int op) done->buf_addr_msw); } =20 - break; - case APM_CMD_RSP_SHARED_MEM_MAP_REGIONS: - graph->result.opcode =3D hdr->opcode; - graph->result.status =3D 0; - rsp =3D data->payload; - - if (hdr->token =3D=3D SNDRV_PCM_STREAM_PLAYBACK) - graph->rx_data.mem_map_handle =3D rsp->mem_map_handle; - else - graph->tx_data.mem_map_handle =3D rsp->mem_map_handle; - - wake_up(&graph->cmd_wait); break; case DATA_CMD_RSP_RD_SH_MEM_EP_DATA_BUFFER_V2: if (!graph->ar_graph) @@ -571,16 +600,6 @@ static int graph_callback(const struct gpr_resp_pkt *d= ata, void *priv, int op) break; case GPR_BASIC_RSP_RESULT: switch (result->opcode) { - case APM_CMD_SHARED_MEM_UNMAP_REGIONS: - graph->result.opcode =3D result->opcode; - graph->result.status =3D 0; - if (hdr->token =3D=3D SNDRV_PCM_STREAM_PLAYBACK) - graph->rx_data.mem_map_handle =3D 0; - else - graph->tx_data.mem_map_handle =3D 0; - - wake_up(&graph->cmd_wait); - break; case APM_CMD_SHARED_MEM_MAP_REGIONS: case DATA_CMD_WR_SH_MEM_EP_MEDIA_FORMAT: case APM_CMD_SET_CFG: @@ -779,7 +798,9 @@ struct audioreach_module *q6apm_find_module_by_mid(stru= ct q6apm_graph *graph, ui static int apm_callback(const struct gpr_resp_pkt *data, void *priv, int o= p) { gpr_device_t *gdev =3D priv; + struct audioreach_graph_info *info; struct q6apm *apm =3D dev_get_drvdata(&gdev->dev); + struct apm_cmd_rsp_shared_mem_map_regions *rsp; struct device *dev =3D &gdev->dev; struct gpr_ibasic_rsp_result_t *result; const struct gpr_hdr *hdr =3D &data->hdr; @@ -796,6 +817,7 @@ static int apm_callback(const struct gpr_resp_pkt *data= , void *priv, int op) break; case GPR_BASIC_RSP_RESULT: switch (result->opcode) { + case APM_CMD_SHARED_MEM_MAP_REGIONS: case APM_CMD_GRAPH_START: case APM_CMD_GRAPH_OPEN: case APM_CMD_GRAPH_PREPARE: @@ -810,10 +832,38 @@ static int apm_callback(const struct gpr_resp_pkt *da= ta, void *priv, int op) result->opcode); wake_up(&apm->wait); break; + case APM_CMD_SHARED_MEM_UNMAP_REGIONS: + apm->result.opcode =3D hdr->opcode; + apm->result.status =3D 0; + rsp =3D data->payload; + + info =3D idr_find(&apm->graph_info_idr, hdr->token); + if (info) + info->mem_map_handle =3D 0; + else + dev_err(dev, "Error (%d) Processing 0x%08x cmd\n", result->status, + result->opcode); + + wake_up(&apm->wait); + break; default: break; } break; + case APM_CMD_RSP_SHARED_MEM_MAP_REGIONS: + apm->result.opcode =3D hdr->opcode; + apm->result.status =3D 0; + rsp =3D data->payload; + + info =3D idr_find(&apm->graph_info_idr, hdr->token); + if (info) + info->mem_map_handle =3D rsp->mem_map_handle; + else + dev_err(dev, "Error (%d) Processing 0x%08x cmd\n", result->status, + result->opcode); + + wake_up(&apm->wait); + break; default: break; } diff --git a/sound/soc/qcom/qdsp6/q6apm.h b/sound/soc/qcom/qdsp6/q6apm.h index 7c646ffcf956..909fc337fd28 100644 --- a/sound/soc/qcom/qdsp6/q6apm.h +++ b/sound/soc/qcom/qdsp6/q6apm.h @@ -78,7 +78,6 @@ struct audioreach_graph_data { struct audio_buffer *buf; uint32_t num_periods; uint32_t dsp_buf; - uint32_t mem_map_handle; atomic_t hw_ptr; }; =20 @@ -134,11 +133,14 @@ int q6apm_write_async(struct q6apm_graph *graph, uint= 32_t len, uint32_t msw_ts, uint32_t lsw_ts, uint32_t wflags); =20 /* Memory Map related */ -int q6apm_map_memory_regions(struct q6apm_graph *graph, - unsigned int dir, phys_addr_t phys, - size_t period_sz, unsigned int periods); -int q6apm_unmap_memory_regions(struct q6apm_graph *graph, - unsigned int dir); +int q6apm_map_memory_fixed_region(struct device *dev, + unsigned int graph_id, phys_addr_t phys, + size_t sz); +int q6apm_alloc_fragments(struct q6apm_graph *graph, + unsigned int dir, phys_addr_t phys, + size_t period_sz, unsigned int periods); +int q6apm_free_fragments(struct q6apm_graph *graph, unsigned int dir); +int q6apm_unmap_memory_fixed_region(struct device *dev, unsigned int graph= _id); /* Helpers */ int q6apm_send_cmd_sync(struct q6apm *apm, struct gpr_pkt *pkt, uint32_t rsp_opcode); --=20 2.47.3