From nobody Thu Apr 2 00:15:10 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 14DCD3A9013 for ; Mon, 30 Mar 2026 08:21:38 +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=1774858900; cv=none; b=k1ZjZ81ASxWS3XhT3PpFzK1pxrsY6KoP9hv9fqqm3M2F7hlA4HPsXY+RnxwBXgjWn1wylAQHrP3BGmDlgwgIxV/n683MfKmcKDMrhjh6TK7nd9vubEIzLS7nOHvDSNE7/qbPxcX6j3c/B+mZySCykCbvi/pA7ldadV4n/upmKZA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858900; c=relaxed/simple; bh=V5T/qd3TANJw1qd6u6VahJ4dPBNJ8hf0QkxJzpbMCss=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=o0xZgIjhjYClKtHygOqiO7d6eqP0iKzhB+08B6NCbBfTDxIRoeei/SuwmpNqyhDErp8FMH9Rs/7f3m61MlBveIgLqIYCvu0ObH06epZx4/Yh55Pdr/ZGNs6Xlb/fNkJITvSHWe8ZTaTxEFz0+rLePhPi8NvBxaBbzh5hN+eKFfk= 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=mRGRe7Yi; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=epaBLvRE; 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="mRGRe7Yi"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="epaBLvRE" 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 62U3n4Jc2953401 for ; Mon, 30 Mar 2026 08:21:38 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=8DfOih8+t/M QOB/k+M2wMzlDBSpU8tbUdV4SGt46IdA=; b=mRGRe7YiXgCCuNTkk+nV04BvmtV pLzB9tPPu9ZrZUGpHPjNkhZ1W87+TFvF4kkcSqfHlSh94mQ10hZ29iCFUGl3e731 /TeGZ+C4sMDHhzVql34jI+qtBrk9tkqUvkDKuA7G7GuqlK2LdhuEWmkfj0BLkz5q Hb3RAtT+wmfHU8i47ZeVW+Sw5gy+6U0wTv1b9izNR37xFw9OSEInFyOrOSgSVsQV xWlMTE88T97kuZFNjKRRAs1sC+gxc8AuUcoZADoOzS3zQ9pcafjcaLvW3lAI5vHB b5RA8dXKVXvCgqk3a/hThmDOX+zqYtNRDYQxU4VVzHs/ZKw0cafNJjwdIPQ== 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 4d6wqek2e4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:38 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b220c72bbso156993951cf.1 for ; Mon, 30 Mar 2026 01:21:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858897; x=1775463697; 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=8DfOih8+t/MQOB/k+M2wMzlDBSpU8tbUdV4SGt46IdA=; b=epaBLvREA+91FjMjKfeefov4hgo57TEhLdplaCfu5HaWNNrUiQWx4r4RQ97COTOp0s ffEkRANCJkRQAEYsib12t6sttL2Wi2AbEzzBe/pXd7o7VBMkcTYdl+B5eeIFq993wkJp NeFXyr+sFXGDxOz6mXUkdZTD/5DvR+gXK3omKJ7sABnnkbqX9KvIS0rLh+v5ep06fXkC RiyBT1hK5lRcjHHNqFo12feoa46ITBzI+eibkQ2JRC+OjUP6TwqgDu6jqlyuvRpQR++Y I5HMKPpUKBLFrAtG9XaYitQzkrbT1DodV95GX3RfDrUo0Z37QdvCNllaREzxshNt2eh1 PtBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858897; x=1775463697; 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=8DfOih8+t/MQOB/k+M2wMzlDBSpU8tbUdV4SGt46IdA=; b=aIy8UPB/+7DpYkIBFRIljZlnuWPq+s8IYeZNbXKp0qpCJ8ExsQyCQ6a+qU+aB5HW24 1yGk0qfunMEzp+hGKPmCi+kjltNYnqcijt/1VsPAGdKmb5bJ0NTy3mST4OhbpJMalBJu 8BbdKLPhcoNrB7RV4Wvzsn/OFQ/rSMyiGeehQ/P131U9P7OOIVDLwSyyM8d3mWc86wxZ hSA8iHUXPjhuIpktIloy8A5dlHaQYFVwiDxcvltG3+crYeG4UurAcr59ROm2ISTwf7wb E1QFX4mKyzWC/nfRNQAKTBRk3aZDbzNxF1dTw59oX7qHOayrnIZ6t+cVbsENGaHCpCBf Or5w== X-Forwarded-Encrypted: i=1; AJvYcCVER9eyR5yfZEjGcwdrcDV5IuJpA4C7dL8S71bD+nSxvv23fBj6aOZLR9YL4Wq7hkR4VQQSnc921f05RbI=@vger.kernel.org X-Gm-Message-State: AOJu0YxCiULqz/XM1opUGgFInHplBIvYypXvydLxf8wgKxaUrUv1dZwh cJY8b+vXL236HISXSC7vmhql3iR2jUQcggfwivkoxI9wBWs0qzKPjvK9faf8fdhLSiuemR9i2RZ OgAhLrdcUYQ9OqcF/yxJfRS2NlTl44S0tDgHNY8IYKez0y0/tU4npEI+ldNrNXZVZaSs= X-Gm-Gg: ATEYQzyNTUtYby+mqcAaHul+X55lf73SjuSql8tdLCZTY9ISEoYyVBQOJBjOiWcO1hV RY1qnP4oF6a7iJORxRuLXvnKYZL+BD1KrGHNFV6A9LZS5RCHyLglI2LSaXUq4ROkglSrxQ1V296 FOmuoGBntB3Ox411N0rJbJiek5zZ3VhtqIV9hyJy9rWk/+Q4RKK+1HzOpZfdM69G6rjPbbPpm5Z gNMJcsvG1z1Pa4zPPpvA0HWC5E6nE/9oNPZw/juZ1INF2P6FmiEyKNnvFDNtyUDeZFaiT538BGg ws0Y6YjScWF1TQvyGSSVIYZ3qdSfe/6t2xYpOMHQNu8kZKuwYnTXjcTXQlVmYz8wHI2/ARRoTp6 lt+aI4mJa2sgdb8JIoF4mMLPLLiaCzh72X/+miQXtMUiFfDippYjMZ0c= X-Received: by 2002:a05:622a:345:b0:50b:286e:ae7c with SMTP id d75a77b69052e-50ba395ec1dmr165292171cf.65.1774858897398; Mon, 30 Mar 2026 01:21:37 -0700 (PDT) X-Received: by 2002:a05:622a:345:b0:50b:286e:ae7c with SMTP id d75a77b69052e-50ba395ec1dmr165292021cf.65.1774858896949; Mon, 30 Mar 2026 01:21:36 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:36 -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 v8 01/13] ASoC: qcom: q6apm: move component registration to unmanaged version Date: Mon, 30 Mar 2026 08:20:53 +0000 Message-ID: <20260330082105.278055-2-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-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=Jo78bc4C c=1 sm=1 tr=0 ts=69ca3292 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=ZjLH_7kMUelE1Q3ziugA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: j5I1hIVP8DLAQ7liizO_eTXmZi4LeRj9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX/ha1YvHZEpox cHeY+t/AwrxGbpSnvCiqfyZY/o6U2yROlwFg1yzUo4wrJ/U53ebmmGXvW5P87/EYb5SrSAbUaB4 JJDca2TtGQTDHhEx3EOYXZIkHW++JVeJDCz15FckP9ECL8shz5gxrLwLK4Mn7fObRo9chzA4nE+ LoQ6jm6yGbeqQLsC9qtr0CiuYh+n+Go1cb0cnbtnntR93Wtv9wXuLbtuhcDDRk2OafBi976oOZ/ pC68avN4CXqwOk9ZKtAKiAFU7pnKv3eEXT9BgQLaV968fIfgIcmAHJfa+Zxbn1lVZ92vR5ZpcCL ZKKT0eUXZHvXkpzDnpJJtNtMlExo9H0WJwGJfmVuiCZLhB6YMZcFljLiBdP5Zsa+mBM/a2TmozR zZR5UJZb/Y1udbTNsogqgaduzFX+4m+f/YkTvPz2ovDHXViRsTDIH534krkNEKIRYv/sIgXB4Xq 4Z+mzOZLXnoIhFPkIDA== X-Proofpoint-ORIG-GUID: j5I1hIVP8DLAQ7liizO_eTXmZi4LeRj9 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 bulkscore=0 malwarescore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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") Cc: Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c index 970b08c89bb3..069048db5367 100644 --- a/sound/soc/qcom/qdsp6/q6apm.c +++ b/sound/soc/qcom/qdsp6/q6apm.c @@ -747,13 +747,22 @@ 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; } =20 - return of_platform_populate(dev->of_node, NULL, NULL, dev); + ret =3D of_platform_populate(dev->of_node, NULL, NULL, dev); + if (ret) + snd_soc_unregister_component(dev); + + return ret; +} + +static void apm_remove(gpr_device_t *gdev) +{ + snd_soc_unregister_component(&gdev->dev); } =20 struct audioreach_module *q6apm_find_module_by_mid(struct q6apm_graph *gra= ph, uint32_t mid) @@ -820,6 +829,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 Thu Apr 2 00:15:10 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 3D42B4315F for ; Mon, 30 Mar 2026 08:21:40 +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=1774858901; cv=none; b=n2ycQywfc8jbqRvT9RXGgO2aahpOczgWkSGdB3UHRtsVUvf+Z7tOPLxeYmnaC+T3VtVwYQmUdO9rAYYnYFroNEt3w0oUt2yXGl2+KM6c5CpzdiRQHDKCSyiDALSXbq33NhKNRANq5c4YyrmuE7z6mY3zFNt+TPQLDMfvVIOosxI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858901; c=relaxed/simple; bh=BssiN8tl0qU1iQXG8+lB5lBZKyz1PiocGJtwp+eWGEw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hrrbfd0GCmlAUvo/wxKwR8oNVbrifQrzZWrci1EFuw8qkoO9J8MraJgQL6McAXLvUsoE8wUHx1Lk1uw/2e5Y54NEhtVApMymN+KUe3k8wGHFuDpJ5ZOEtzjaKyDPHfAbvVQabRt2W5CcvHj3T58K0GPmfYYYsFKazffbJfRn/Z0= 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=S4PbbO4a; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cXrpcbcd; 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="S4PbbO4a"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cXrpcbcd" 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 62U4dnGD581611 for ; Mon, 30 Mar 2026 08:21:39 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=eSDnacEmZXI 09UfS9vabkH7g9erGJLEY42mHV3XwiZ8=; b=S4PbbO4amhIVk0MU668ofluRjRu BnIk6RoHSZWFrF0RjJ2k8e+mBM70fnL64uTC1bDlgZudW9UQopH5EVG0pByj7TPa O7xAr9f58gzKLyQlNtpPCt8XgZXUmgD46nYaxKen5x/O0k8y9DbtmbCWszJgynHH PQKVZlvadTeWvxZ+XOy/BRBoqZqXlX4Uu9l4ZAsgCv6qYsa9epIFpN5UHAhArAuV rdXBn6EJy102IoE0hF0CnPGigECI2MgE1KlsPSYg7a3qh6EaB9VBXOs/7sKbpzUo xkxchu50O+S2kOkswhqiCc8MDKTXE4CXnqskFrSndyrmsFuZAXja/67O13A== 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 4d65xqnb4j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:39 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b220c72bbso156994371cf.1 for ; Mon, 30 Mar 2026 01:21:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858899; x=1775463699; 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=eSDnacEmZXI09UfS9vabkH7g9erGJLEY42mHV3XwiZ8=; b=cXrpcbcd/Aeg57NorRxGviXiIzyX54NhQvzli4vxMoYz2462fn5Qf5V8yAC/KJXThr dVASP9+s+qWXxR6isJMs9lLEqkyxmOsgjl8BikWwWSmH3R602QDZkp+eiOSQqMsQKfaL spb0x3GVVX9tuOi+P+EnZsUsbvTpb6GqyAS10WunXuG2TL+CIgnlcK7MxIF5albNrOC2 7fwascp2XAlMfSs1/PRUGOLZK96EocL3YW0oqK6TAgN86Nfhq+bvQigUz0eMTdpeRgzr m0ZpuG9gG4QFyPs3v2D/lbWiI2cMlzf6dmOCj7yJUPqycDQdbH+zSwjMS/gn75LB6wbN bDXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858899; x=1775463699; 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=eSDnacEmZXI09UfS9vabkH7g9erGJLEY42mHV3XwiZ8=; b=KQ+udQxq8zBj71Oo2D72yjf5tZCrlkdBZMNuqUEFwQypHth2+RCPlcJh9Je7PYHRxd Gge1jks804KntdqjktohrB0b95Rm8sRxsIAL0665a27UnBKAkaP8XAYcYrHJTivI1H8k l2LOC7zwdMDHHwFroYOAcS9btdIZ0ZHq2r/GX9GBgQCMrNB1enr6L6mbGVdxaViGeZSl OGX39bA6UIL+/YQOTZ0ipFdq39B1NNYEVHOwqK6ANL+xUdTp6Beq8sUlfoqgSITMNUTo MgBjgUjCEcyzkOgXmid/vUo3vGWG1WqFm1q9lyDntO1HG0RUmJ/aNhW0jBfjAZyIQqDz AKNQ== X-Forwarded-Encrypted: i=1; AJvYcCUKylfp6L+GUnT6qVODugBDMisXodJhHfL/bfLyKreIhJtlyWYepsyYg944DZwYkZKAmoQCoezB6ZwWVUA=@vger.kernel.org X-Gm-Message-State: AOJu0YwTjfQF7Z4BMCZAInJm6i11DkinU5cgQ8aAwoPrr7BiDYu9Merb NSYEGB77Jp4EJs7L1S3YTutY+zM0k1jQsSalFBopdIH3etx4feHTFcN01DGaNYl8IiovRMrxfmX AXXlePNT16I788lojJi9Z7u3k88Gdk8KH/3V57j8ZJOj4jLlkY+z+BhR0jUKKqAwHiqw= X-Gm-Gg: ATEYQzzALurOEoXUdKB80Zb3ppTL82P1ozbk13c/NJOvyqmOI3ty6XkqVYF/whJYifG f9b0nknw45u/doJLXrOctefEUiaS2N1HDjBVDDtoac0ZVqp/Ighz5J6JnlAJCJF5k0mDyWCHYFy XGKr7ROxS2AU39HfeItXSUEoKbkOGNVG5p+Gjfk0DMp+atk4ZY4+KhA9rUdkyUsLBlRFSmEDW4t ++kJSqwG2NzUT9j9DK30coq66NOlyFmNJfY+Rk7jxLQM7ZGSb6HAPbNO5nHKYTLOrPzkwnhRF4h 4qyqmaig8p7flljtmpWNDCUQax5Sl+P7CoV3bUk5fRU5ft8sd4tOL6ThS2V8+VH+7Vjkxd+vF7O +Y4pWEr8PWjglxFHHLlYeF8VVKhHqFhC8/May4ICPpP5+QCfmOd86fHI= X-Received: by 2002:a05:622a:53:b0:50b:2eee:4b3c with SMTP id d75a77b69052e-50ba37d1909mr165999791cf.15.1774858898710; Mon, 30 Mar 2026 01:21:38 -0700 (PDT) X-Received: by 2002:a05:622a:53:b0:50b:2eee:4b3c with SMTP id d75a77b69052e-50ba37d1909mr165999531cf.15.1774858898299; Mon, 30 Mar 2026 01:21:38 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:37 -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 v8 02/13] ASoC: qcom: q6apm: remove child devices when apm is removed Date: Mon, 30 Mar 2026 08:20:54 +0000 Message-ID: <20260330082105.278055-3-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: F1juK-aOc6D0laZEVC3Ybk8qsP_imbmR X-Proofpoint-GUID: F1juK-aOc6D0laZEVC3Ybk8qsP_imbmR X-Authority-Analysis: v=2.4 cv=evLSD4pX c=1 sm=1 tr=0 ts=69ca3293 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=Um2Pa8k9VHT-vaBCBUpS:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=WbEMVPVtDBSXEMPt_8MA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX3fzGZlq71nfh xdoIuN0GXMepsy9TjnJPANkFMpWQ2rcPNAwL9KUy+bBa0g3AuKPBdDpwuC7ySD43l17ri09tgQ0 b8imXhZP2FCUdzdQUyN+npDcCO2ORjK7YVyNiYnXoX2peEGbjHtOhWQuWkOngJHegSUAY+rySZR V/wdZcEN8A5J54i9N5xbtvxV6lXeWnoBqkzle3vHA0ImE/xvKKWg5h71rmXlMrSpi6UjlXWVLdD hn72OP5Li9ROTRzlkuQ39ofgaJOCsasmZxSjcx/yxTlvFFdSc1/OPCloLmi45Ev1848JNwu8YJh Ep5GX0c+xTTgXRZ/W5O4nfhe4Ce9hnaXn2jblQ/lPu4SKdw3/ntgPQpDEwYnopd9CxAsc5cmr+E 6Pg+N+DnUcGC65UNdrNnxKBma0/jU1TyazR4a27YU+zTiH7XAVpZbh4GFrBz8t+CxRiFvqdRXiS hiVLH3fhQDY64jdO0Uw== 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 depopulating them in remove callback. 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") Cc: Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/soc/qcom/qdsp6/q6apm.c b/sound/soc/qcom/qdsp6/q6apm.c index 069048db5367..2dc525c8be42 100644 --- a/sound/soc/qcom/qdsp6/q6apm.c +++ b/sound/soc/qcom/qdsp6/q6apm.c @@ -762,6 +762,7 @@ static int apm_probe(gpr_device_t *gdev) =20 static void apm_remove(gpr_device_t *gdev) { + of_platform_depopulate(&gdev->dev); snd_soc_unregister_component(&gdev->dev); } =20 --=20 2.47.3 From nobody Thu Apr 2 00:15:10 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 D95713ACEE9 for ; Mon, 30 Mar 2026 08:21:41 +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=1774858903; cv=none; b=eMFpGZrlJiJCGiBVFa5dlsj7DCocsFpnZB42g06PU9M7VdDmPcKr2j12NdRCNa5wao+VkAkF+QsGeFc9fI0xeps1cHlUlaLFoGQGeucIiWLQ+KER9zie/PmLzE3Id26wk4DXCnAOUVEr8sss6sDRwm7G3Y7oNGJOQCVXuI1baZA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858903; c=relaxed/simple; bh=Y2gMg9r9rY5Id6C816eYq1RewX5CB2zXG/L5mc3pjP4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ikBs3NBNsbYEvbBroes7Iw8WRVazLVyZtV1QUgjRQk8wpZM+ZcT3wGmR6/+Ue5LIw3gIlhwe2TtjJ2cyvLFNRNm3Sz7vJ+DRsn6uEZEulAwLx0skQ4FY5c4EsExBw5x+uDuX3KM3+HnfajF6YdyOzNeRy597uJ5GVBcBih9QqFc= 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=Jzn6VMyD; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=NnIZJKFN; 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="Jzn6VMyD"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="NnIZJKFN" 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 62U7ZAgE1246114 for ; Mon, 30 Mar 2026 08:21:41 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=7B75lNNFNuA Ypi9X+NzbIbx8p2NgysFuyaIXmAqO5Vs=; b=Jzn6VMyD/t72QhmbJmpDDhXFs48 Yh5GEsd+nAQ4nhJGc6i1wIlee03pm2x7L/BlTw4SPEDFdlmAdB2T5QsmFYccbL9v O1Zw4jG6vCr5GAZJqkx/OLjOel1RF3ZZQNwlKY469bh6twYAP4cguBXHoD0ZOKBV 86eoPuQd11CioifkD7zgu1MqOTXHYNNEVTFuUjd1/0YOiku3gaxu4mkHS9KtcG5c YKenPo5iBglxk/SRkJAmDLEb8/jhHoyTqoLIRpXDUw5T9IHGNgpvzU/PxFb+pw9C PD1wbskWyea6glHxsz+U31iHECwwpxaF6xPCVXgAKjhGiccnTf2RHGlkUuQ== 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 4d677155wp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:41 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50911c94db1so104382571cf.0 for ; Mon, 30 Mar 2026 01:21:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858900; x=1775463700; 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=7B75lNNFNuAYpi9X+NzbIbx8p2NgysFuyaIXmAqO5Vs=; b=NnIZJKFN2UK1MgoNG1UBIhSWAiBvBiutW3sohhdWihKdA1uEcjAufvjQhTA9j6Y95K 1LKd4ruHNqytfQHa+4OdMyxxAD3kcR+ljUe1mI4yIfiFsC1gjSPCgaqnwEDZBKn6kjwn DogMssGEMjO4Rpn/KkePvOxeNmHjvzFP+/yI7CuRJQvIwsgDNY7YY5CnIYC/GDkYS63d JE8y+GAg3BgWSU3F44QwfYjhEBdzYv4Sxa1Vo3vsRo01G+TQYYdh6v3D3pHTiCiozQ+d R3PvvhzMxGoguLbsJsSYqyjp5SKZGhn2WdavGZadP/AzqDzEDy8CDV6qQfeCPTqr01IJ U7SA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858900; x=1775463700; 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=7B75lNNFNuAYpi9X+NzbIbx8p2NgysFuyaIXmAqO5Vs=; b=YwqrpO38URLZFQ9mfZlSKgYU0GeV4xux+nqS6Ltr4XoZZ1EdpHT3JQPc/y2DpwVjzY IYM5d958MIP0VRpiQhafv8ILqwCuir1x8ggwLBlllyB2wHlAlUSvMiNPDZY0cPXLdgEt bZhyhRCFF3tIYxaevFaU4oKtldCcL+GHcqZJz1lCMCoud+QZ9vsonZU6sVUn5U4bAl2O zCP1pcOyYxnI09tGrnEd4O9loGOTC2yER6kyyrXkLwxHnTWC3tRsu/XA3TmTTsCg5w+u V0VjewD1HE1T4Kh8SCzwlWlNBpjOYdb1qCBCJ8j1wIDUTl0zcLIEJfxHdT0Cr0xx6scc elNw== X-Forwarded-Encrypted: i=1; AJvYcCXN7UGVeVg/3Frg/Ycxas4NfZx1mpIpBE4TaDKRunljSKoQrMFgLv8/ukt1bHk/gCtn6rFiD9hWsdy1fUk=@vger.kernel.org X-Gm-Message-State: AOJu0YxS7vUo9h39HmwVhcvXJG0zmaGtfjC6fSf2xLK2lHM2POaEnJyy uLESVBpas3t/Shi/zOz5f5RQwjT3dPdZP2G7OL/q8ezf3+z37TuFTlXt96kHXb0YJvQeQaq3KfB hwCJCA1oJ3Uj/M+bEGrAJmtxKNH0d/ahLsY3YwAK8JNrUwTBiPqwGurra3LIZFLsH9+M= X-Gm-Gg: ATEYQzyPUJCGvM2U6JjpMIav5q3OZTrwph4g8Zc6YFk21JG/PpJDgKkzkRyZX+dpZiw T4HXqDUlHBAQwnCiMk0eAbmNM/V20WWNBaHFTmFowkwa+pWvq6QWq34q90EUjZQhzfK6ZWgfbJA u47RvQ5bsnSxxM4vEyunlU7xg228dwtj3aQIQI0yLKpbzEFgJlDmVHDFGXpZglmADrwgJfil+Xd m9X4NZOhBplz4hPGaxFQAXpmCx5u6u4EyhbDaFn3xMT7e4rVtOLbNK+BfdJ8dJCA8/vLXSnBfNI NsQsNCAD1usPMClONyVFyGCRKYdcGLfenDR8b86ldkPIu2fnu8syrPvgf5RHl0KYFATGJYb8l1F PYc7OtDydG/VmTMd0WpnbBJ49bTLoe4X8bCvjk09NtB9MR5vA2dFvUMI= X-Received: by 2002:a05:622a:5e16:b0:50b:51a0:f744 with SMTP id d75a77b69052e-50ba3816a05mr155380121cf.17.1774858900183; Mon, 30 Mar 2026 01:21:40 -0700 (PDT) X-Received: by 2002:a05:622a:5e16:b0:50b:51a0:f744 with SMTP id d75a77b69052e-50ba3816a05mr155379951cf.17.1774858899803; Mon, 30 Mar 2026 01:21:39 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:38 -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 v8 03/13] ASoC: qcom: qdsp6: topology: check widget type before accessing data Date: Mon, 30 Mar 2026 08:20:55 +0000 Message-ID: <20260330082105.278055-4-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-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: RoMl3MsSOVAkqq2zbhUB__6gvIEASkKS X-Authority-Analysis: v=2.4 cv=efYwvrEH c=1 sm=1 tr=0 ts=69ca3295 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=yOCtJkima9RkubShWh1s:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=5HTw2GpdgXbBP0wXRk4A:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-ORIG-GUID: RoMl3MsSOVAkqq2zbhUB__6gvIEASkKS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX/8Vzl+8dGOiq jt0BCqUJWpcdHDr6bmEr+00u4ZvPnY5mMEMI84TdDhss9Ngv8dJKMPw41BvRd7wELiahVr0Pr0M JKZ6l2dLrGYEFt+qP9ND92yHb7fQpTGd0ysm7fxMynDi2kyoV7nLSYw9p7FoUTsrOnfoukbOVGN 7q4SSuUGm5jh7fbmxNNWrmRmoLMrC1/TO5gBpKjKzKghAYnHhBnN0HrUxpj2M7+2fcmMZ1/BXRa H3zzn5Uz/zAwVKEZ3QpeB29GPKh4plO0iSc8J3hNF2AQqx6mUVbVVEDXZvb6yzVbAe7MYtTQMA4 J2xh6TWulZCJUBXpcS6wcqJTv2lzSqaeOgsBV7rgQF7oNgrCXQS8CqABCFZb1cTzn4kHH6RVL3p oj2VmSC1zLoDPPanlqlziAXtkaJ5XDKEVq3K1WvgTaSb9cv+TasA6b2j0xhclf/D6pnxOWtzXda DLYL6Bthctq45efGroQ== 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 malwarescore=0 adultscore=0 clxscore=1015 spamscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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") Cc: 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 Thu Apr 2 00:15:10 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 A820B3AD531 for ; Mon, 30 Mar 2026 08:21:43 +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=1774858907; cv=none; b=oFaRorcf7D+Eq2ARz5yEzQyAmtCgzznAMDMRt0LPwKHF4yD9LbO5qtEqCZ9TMtW3kB8TrU+Kr/oZow/AxxQJQq/+PqKXLivZ17zKroFDcNIDiaqxMRImTbfr5a+IedsDYny7ul8UbHLwQN/+1L/jT9VNhDEAdfh3PLmtcDRf6Ak= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858907; c=relaxed/simple; bh=Nn5W6j2KgfG3MXrQpHQ1hcxXhxv/yUbhKAiv5Knj23A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rmYG1b6g8ZL+emuxlgxfY4UNKyYd1EBuA1LxK61fdZz4w0MSJh+hioPTUulxSQM779fnGIpp/+h/RTk+76waZSV4fVEQQmyfVZerZCxX/1WDv68vyDLWRv53iXqLNAdVesi3y/AWA6OdxZuYKx8JVvtNH0lT+4/y1liVD6/t+Ro= 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=ODVRXoP5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=TLhORz3T; 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="ODVRXoP5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="TLhORz3T" 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 62U7FRoA1931791 for ; Mon, 30 Mar 2026 08:21:43 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=ODVRXoP5DPzAOpeIcW0XRex9b9l CrEkwyNYBrFqKot1f6vuXl18YEpNr9OsG3mGouk+4ukkEjxlGVP0R6WSZLR5NSiT X2Q4yVm1Ewgj++zto+b0rLONXRoud0rVDYMwJ/65t+IHZ6XJzZrL2Cot8+Jt4W/8 iriy+Qp52rESuU1nxHZ/PiAcuOq4gMARmx4AqX74edlPxp9EmEEZwJtvHZTeCa4g FYRgAOmqgSaiWhhvZPBWE+8lQLHQ7V/0U5GHATajY+uzBTIX2MqGA9pzsYMfIjGp nKn2mUFy1IbGxOIGL0PBrAM7wWqVi4wmW5qRgWuhyZT0qa3txTrSk96AUpQ== 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 4d65xqnb53-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:42 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50b3544bc7bso57241861cf.2 for ; Mon, 30 Mar 2026 01:21:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858902; x=1775463702; 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=TLhORz3Te5ybLPk6+CW3DHK5CPoJZyeARZpyGTgeP+2hcStx0t/1QSZ+7qHMnZadaq PkRkL/2tfqIbCULRcvdjZfDlKay8AT7VTgnews4BWJjPw1XDCoWYCJaP7yt6XIfhCGuP i8Qa9guY0VlEASaIJUDXjnnopmdrq+YC7ZTMZFi4R0uZNiZ3EdAKdd/xq2tcJfr6uQxQ EhpWuE8uAH2bqnqwKAz/VUpNDvJq1cFPb6EAMmi1dZih2qvKBfayi3AMfaRkIpDKQu7S wtr6/9HwlitQAV5IPi7PKi+R3oTGT6AMduPu2i7VTxME1LEnjN+nF54Pj1kNW0BM4KQi 3BiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858902; x=1775463702; 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=PzXbGyE9z1i+RiwQZcqskcwb2Nu5ECxq6uD/q4UO2yZrms4hFkJMVQwqYQSiY0KSkY hX0ss8J3557QrG+3riw+UrfXLi4OQH1nVpwJTYUFLXDB1XZlArdx2J9bq2XymsY7oq2T 6v9UiMgR/pkkF403GB9fa1HDsYfhyYwwvgD3mSgSpaJPNsMDDYP+0VQ9Bt84EgYCRLoK jb/7n4gnzksN3FaVudjOva0ZhD5h+k1OnBJkOcIw0djfufURH7S1VDH2akjwJTZrPrSq 4xgKtbfhKMdEKaLizaHh+vX6uhxKixBdOjC9a1SxNr8ei/Ko28HM6NmKV5cilWZkfMS1 DEhw== X-Forwarded-Encrypted: i=1; AJvYcCVJmv0Ws6GIyPDRF2FMU2NkuLaUBM0Q1qaI5uK3KwyKJ/PXzkWhPrcZ0WyDuFcNQqO7dGOShV5WrpY6Ki4=@vger.kernel.org X-Gm-Message-State: AOJu0YwUiNlH7QJYApcCyEoh+l1KFnSTSJDYTdofnA0pQKdOBc6XLcKV 9eves4r+QEt9fV/H/PA4uDyiDdEUHxnmzgOwlN+WYCpdZ7GRSZpc1altRRuwSiQWe4a4ifuclja xAChWyftxMgKTb659V4uI8IhKn6tCJk3ljOEJ6cep0TUWVsZrE+V2A06D+0lIeUSGnZ/J7Oz/kb M= X-Gm-Gg: ATEYQzxQVPjbqGkJ5xVjfFzmIvooiSMIpDtvIJV32TX6H3o7ashMdABoEoAWvELMzY6 iWpeU5r0YR/gHUuw7Zk3UoqdGL18PE3ITwW38w9ZFVOCS0+7UxpoVXrRW8pVwZ9MZ2HoLlqI5sa g7t/uFVK1zub31WZQIsmH89dlDru4yI7d5xljB1B1sLD0HK5xUVANbrH0Zw2CjXK2i0pkH5LMoF hQ6OqzHuPvPmcSHid6f9ydCBD8u54AOQenNtwz4FyACQWuxXg3XYqf1aCeDb6eK/KUW5r1XQPB4 ekXhby6BvH3aKZsQWVarelYRrMI0nG+c0UZS7kBxtPlO+Nhc3l6SN3jxbMpXn6qdUHdpLuIJnWr earDK5kcAIcpnVekE7CArT585ES7e6GawbL7pe6E99jMiYhc32ldh+/A= X-Received: by 2002:a05:622a:5a87:b0:50b:40a6:29b5 with SMTP id d75a77b69052e-50ba39186acmr156494531cf.42.1774858901764; Mon, 30 Mar 2026 01:21:41 -0700 (PDT) X-Received: by 2002:a05:622a:5a87:b0:50b:40a6:29b5 with SMTP id d75a77b69052e-50ba39186acmr156494201cf.42.1774858901294; Mon, 30 Mar 2026 01:21:41 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:40 -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 v8 04/13] ASoC: qcom: q6apm-lpass-dai: Fix multiple graph opens Date: Mon, 30 Mar 2026 08:20:56 +0000 Message-ID: <20260330082105.278055-5-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: GTkX3j2D_4aiLJJFbBhnT0Mx-Rwdy1EM X-Proofpoint-GUID: GTkX3j2D_4aiLJJFbBhnT0Mx-Rwdy1EM X-Authority-Analysis: v=2.4 cv=evLSD4pX c=1 sm=1 tr=0 ts=69ca3297 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=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=M_mAHeyD2EURj3i0m2kA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX53cUqKlsEHk+ Q9XAEKK1lWIiDyS5M3KyZ1zTnM0ZSRkFXpXycMPucD7X4kIuWWtZJ60akKu+SRufHyIlikXOhwt Hd25K22YsDDILcyP0PWb28MmdKOZ9TS+wVF2bm111dtYbdXEPeVqv3nYEnQBEDV/fN2F1chFsHG 3TsRpvlg/a1mH+ljjCdpVQPJFzTAeQxubEr4G2Ayz6gt0UpiVod+EVRFIa4fJa9kWh7c04Og/Dd TKrKVDdkNcQg5bJDD+WZBYaQUkq4LJ1yXOti2LBMHrHZXVtsLbf7ktHqZNY3SzErsxos2TdaAf5 mXkCQmLqYQy5P45pwhUhZlxhs7mox4ODeNeeEDVNgTGnW/lKI29w7/SPjO09zw+exXWV87fk3Vh 241Lcgz3tv/gMCbauXVZGozTJWToRfY5pc/yWSJjsPy/0cp3VRCCZI0ooh9VHqyrHNiVZHd4tge iBFE5ktmONwQgvEhEAg== 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 bulkscore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 suspectscore=0 clxscore=1015 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 Thu Apr 2 00:15:10 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 B21213AE19D for ; Mon, 30 Mar 2026 08:21:44 +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=1774858906; cv=none; b=ADWSTVuZV4VwI1LBW3GOBv/Uy1omXYsFPTkLVgJjKABPeQOAeGYQMS68mhp14mN55LwvvBYO+1KjswSmZvouJr8KM8YTPuRgmn5TxY6aQ4Twv0ysQVLSimAERF9Xikb+9rxUcJaiahET8TuDQvlzZSuU1SezeobFVl24Trr1WlI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858906; c=relaxed/simple; bh=aiDV+ay9pDagfXi99dECc3+gFHUApEvFgcp/SMLLkOQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HRVCPe5W0lHoIopE3KdTyHMWQykluQpc0erdEZFxuZXBd5tORnx1CWIcFH5DB431mWLG2+u+rENWOpvqgyv281Z7CNa0ix10YHur2LGknKGi6fMAzhk+R40YW+xnrkj7uQjcLL1BCCAhUlSWBThvxXSG3BHZNTqgv6Xxhv6U3Y8= 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=Hm6gpN3u; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZKQJJmQE; 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="Hm6gpN3u"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZKQJJmQE" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62U7UHwm2413584 for ; Mon, 30 Mar 2026 08:21:44 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=yFv97piS34p vw8S7ZuPziYbAwBwFldQJ4NalWJR5jGw=; b=Hm6gpN3uVmzLfqZbkE992WozLU6 KTlx3d0Ta/UswVXL2uMYfrFOxDSjGPefz9hhlPz4WmUpSxZqCr5v4Sh3ikhA47R5 cEppGu7D75F/sE6jQ81Y/l18NdFsR2wsSVuh8iQVrkLLvQEUYSiAjjaEjV/59d1t nqrMhUpBQr/6Gk17tfIjYHLk+M+bGpBAM37Vq7hjc9rMaNya4pMiTZmEALRMbcVi /hLeBmhvlX9F/pPFQwHLjv4kXb7kZZ8ZJXyhM/kRd2NdRHzOB0w1i+9T8Z8Cszl4 kPWK+XBAEStBTam8vDUtdkoV9ShoAOUv1/kiZNTccacI6K3sJty9HkKL7sg== 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 4d685hd3rg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:44 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-509070bda13so134680651cf.1 for ; Mon, 30 Mar 2026 01:21:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858903; x=1775463703; 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=yFv97piS34pvw8S7ZuPziYbAwBwFldQJ4NalWJR5jGw=; b=ZKQJJmQEm3GAgJJHVW4ZkDp/RYowwV1iWJ7XFrMViFnBHDm0DSCBOkhisrsT56pVE+ qnTgupqcbXbyNssBjgy65sR2wv1nHIocux+QfAlqxRKTqHWhVaykTqdGJpg8ZSTlnQpH RpP6SNASkjUzRWmlKrdEXfE+j3DK12EyhcttDeSMsoTlri6/e71L57C7ReagTq5w8cpl m8kCExOKiQM+0aC/o7gejVY/Bkf4AuzMWiGgK97kjRmBU/59+/vqRr2T6hnmriXuI8sC TJqH+FFPhoQL2jkY9N5nuyxsy1HvC23D9nePcSUvrM6K6DLGGCcmR0oi7sGegdDuNXbv xy6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858903; x=1775463703; 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=yFv97piS34pvw8S7ZuPziYbAwBwFldQJ4NalWJR5jGw=; b=E9fRvaeh2pfSYRnzM5Dp9xphLp+rYnfMA7b/kTCmkYjFnoa80btngwvRSBEj4btXvE Lfb3sxU8XWoZeo9rEiRbIxxwJceXXGquZDHrcv17KZYD4ArFv7/4hJdRpgrfIyhMWa7I vSwy1XN5mdliODymgtdh2q01Dx7s0u5mbrYDR39gV85AIorI4p3FKc7JzFshCksvK20P /fkOz3JfRKbHJ3ll8/e9n5qUxTNun9b2OB3A93J1u4bf1JwghLKJxwGYBD0t73IU/7H2 GKkHzKWv5paPlXkQPtIueizCM4L3mZ1IIzA5S2ZAEpR8u4nhOIGN9Oj16RZaYyQYfQ3j v2LA== X-Forwarded-Encrypted: i=1; AJvYcCWmCAnx63tN3PQBr2V7v1U/vxo15newKTDdprz/84oC9qh811kqDr2/P30pokiSrQwhlFZgQyap6NkHxYA=@vger.kernel.org X-Gm-Message-State: AOJu0YwbvGpzO0ODjbsvwVlVHTIjrIeJZnLyLiFNrb0oju/t8jivZsbx bVplsfemMoMV0pg5JoGDldwAg86NI1IybblikWakyF41KO1R8bITYWQyY0bQ3AN1k/0AbdikJ3L nTCIaqC3SNO8GDgyPJlC1vNGayrVKo8muDeFE0/ieYa9eBmxJCPnE8hheChsXTZN2h78= X-Gm-Gg: ATEYQzwIu8lEhTuUKqPjvGhG7/xbhbxewh0uD9yV4liL44oJ7XQZgRIKxRslpDCUL3I L3TkydcgtgaCBWp97Lb6fVgKffxQFLqcdJ1FLpGOD85TUuyiTIfmlmrM4icp1Rys2fZiIBMR8w/ uZ6LSmmwyXxfw20ZIL6HkIDwWQt4xypoyWuXLVzgn/Go9oJko4Z0POybQaefM/NvsuDhQX7sMDo ua2THOnyMySTReNq6blqmsLmPd/F1++e8NNZui9AUdzJBKkvwEC+yPnDUIKnjfC9+6CbriXXvS7 i8icyOh1Dql58+NnzzLIhZJxe/z9CQzfk5OyHJTLJ67uklsAOo52pdOfuD+iM8J3T/KhD3axMpG dt4zW26YcdKKdu22AMOaXmySqdhCvpc4oUV12tM/nbFh7yJP/2eyYT8Y= X-Received: by 2002:a05:622a:ce:b0:509:16fd:ac37 with SMTP id d75a77b69052e-50b9950036fmr188614481cf.29.1774858903164; Mon, 30 Mar 2026 01:21:43 -0700 (PDT) X-Received: by 2002:a05:622a:ce:b0:509:16fd:ac37 with SMTP id d75a77b69052e-50b9950036fmr188614371cf.29.1774858902706; Mon, 30 Mar 2026 01:21:42 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:42 -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 v8 05/13] ASoC: qcom: q6apm-dai: reset queue ptr on trigger stop Date: Mon, 30 Mar 2026 08:20:57 +0000 Message-ID: <20260330082105.278055-6-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-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=csKWUl4i c=1 sm=1 tr=0 ts=69ca3298 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=DJpcGTmdVt4CTyJn9g5Z:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=w9bA4Yi6UXS1dLCTJJEA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX2ZsDI5zUPY6r BDQsDR1OYvvtGYnQ3gTw412mGyYQQGcHULVqKzmx9xwWf5edl5xhBbxP3k6x97WHaKAQD6PohX9 p3NnbjIwlDUTwH/nUJkm506peyJn10c5lQ9gN82NBnPz7TE8SMyg89WOo83hAZkvA3rDamcffym hDsG1yYRYtEJS5khDXUQramfoeoVCDOqsq5f7PNF2axnN72j3pYrCQl2+KrUvM4+yMFXOaEMMyl 0MeSsTLf04OHEeX9DxDeaCiLci7C5E36ZnP4R410cQe8Lp82DW9+lafumXVbkuhxZ4RmLylKEfT IbooxTOQ1x09D+NJphde3g3Ma0baEl1HeFRLSQZNlOxKG2baXFDjplvug1KuqnBoKxCRd/Phzrj lKVKW0uJPDf1OYv55B5G7LhTpAbGci242u0+p97OBogIVUXMutXRiq7U84wIvll4GnQIWrtoYYc etnbhUMwXhFlczaudPg== X-Proofpoint-ORIG-GUID: LEMAnPcxPGZZmWjLRA0cDaUEEHvkMhIK X-Proofpoint-GUID: LEMAnPcxPGZZmWjLRA0cDaUEEHvkMhIK 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 2dc525c8be42..5751e80b3b92 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 Thu Apr 2 00:15:10 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 10C7E3AE6FA for ; Mon, 30 Mar 2026 08:21:46 +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=1774858907; cv=none; b=fg6R6Lge/p91FOWDgCuEivpR5Vc6TkIGnKlWUl9psAGbxGVZ3SDvNqmVraH/n81RxYUMJyQIYCvzvXGBdMGskm+TR1zfOfMbuDf19lJvbmhWWbpEIhonHWdF0B9/+9rl0QecSz9LiFLDXTRyqdHRazqQTQCBJldbP305eDpluC8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858907; c=relaxed/simple; bh=UZ+5z9w9M74tpzVL8QkykGNl8XDOPEb0MSDzyxWPUz8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gHuJ/jeYYSFoJ6d9AbU2K5xo+HlRW9j5fc5rr3ULCoC+dNX3U78RIKWKSolazLlgc9M2I4Xb7eazmuLmQfv66XwrldRHGKx+eMjfj5v2l86ba8yGtY/RmrlU9uUoWmr47dot3B7nYkv/Oo6/Cnu74BddsE0ULcit4JChyq3gWfA= 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=bBJxIgiW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FNGYBBlg; 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="bBJxIgiW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FNGYBBlg" 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 62U4e7an3931726 for ; Mon, 30 Mar 2026 08:21:45 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=bBJxIgiWhw9krC4Dx8ufPb9ig9a qp3vC5/F4b3fskGEMxlLFsXvkWsp1wFbB9ir/ZVEG6Xb230fmit0w676OQ2ubig8 CjP105qk8zlKx3nRJH+VrU944lH3nZx5z3vjOnKG0dRvfF9DMo6Lq4IEsLxxw2q6 RU+0t71PokMWCPTX27VMDVCiWqz4sqd4cXKRRS8uAIDeJQupbNEHkx63oF+IcWGc eQ7l7MGEKzjGBRFgeVpKNfuoPmKTUaDM1ZteeLqa+1C3RKh6heZMmKwcuh+OFSZK YCGePhEYPsYfclqR0mW2qhETRg7qQVmATNhxl+t+F+h115Pb/K+MxKncP+Q== 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 4d64pddh0r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:45 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50911c94db1so104383651cf.0 for ; Mon, 30 Mar 2026 01:21:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858904; x=1775463704; 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=FNGYBBlgtNc1ftLMhxJGyhjORLar8eFH5lIyXrgWCGdXhnUyruyNRIoSTNsJ4NE2QZ c1bY5Lp4AlxHDq+ttbIhs9g2Z5yZz05wKV2nKVzVYSA738UZqdAcDzW7jA9tr/T6k9ls THvL66Lo6FVFwa5wJpvqWkcgTno1Xqop6/55e/82YjbfhW9GnrAZLrqfeiqhMlQzt762 anQhG4VIOGmd2fBH/326xC7OMIp838zjATgxksBIXJHErKZgLtA2ygC5TnjDYmQW27NK 2fSBuK+lEWyvKjPWW6+9R8BgdK82NznbXtLH8QwmM/Qboqpsgj7UXOnecyNu5dbeQKGu Tcyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858904; x=1775463704; 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=LYo3zBV/i+7pM9ttn6MDJXOb2CPSNoQor4Q5q9m6MjECF2t5ZPT90c3FXDSDZRWCcQ rK8BhzYZqzhY9KfZjSpgtUnnWmM2+9ERPjB+kItE1IqXVDJqZrbvv3nslXEFHAau0IBu 9KivbVZQTxbQECBrQArw7qPMf/+Wj6OzGYhYh0Rh0Z04oOS7nbwRtYGTm999JIETjOJn w1uoElGnTydPWKLJT7Ulx4O8VN9yFD9Gxm0qSFs67G9jtxGpIiACN76sCJSPIr7gdFIC 8UfmozkPs6vcPvRQzZe9FGN0iB/6G8nxyyRiv5At4vhbTMq7qPQKXyhcVYAIu+0gYKka U5Rw== X-Forwarded-Encrypted: i=1; AJvYcCWWANdRgz2omo3jblqp9sl2BqgsL7ZZq4MyQOFoCBHic5Oh0xQLO2N+EMLVd08T5E8Ypif3WCOsPZfMNsU=@vger.kernel.org X-Gm-Message-State: AOJu0Yx15IV6FDNVPqQHUaK8iYQSs/YpNIysNSzbBOOqWCncPcK7KHbD EKM5Zu5301ROUHu6pN5lgiJBRkMhIEIK0+ccBr3JU8+UHk1SfAJklUl53Qw+Zx8qJgYhp372ZJU kqODV3d8E+gBDKGrLhJJwvYNgwSbrLY5AfQVLCk1fSk7iltj6u0WYEzb4AP/OaxJ6CLw= X-Gm-Gg: ATEYQzwb0FsYNsVXJowAbYzyAtKROCcxIqLnMGtno/q9x5hCDadjPBAYs+4ZVB6WJuw s0oiN0e5S5M3Hb6TulT2hAJkQqDb6HzidxKq6dMLNIpXqiGLwRlzSZ7EoY/4th/P8d3/Xex3TsZ hCjO7VMkrTUlKCJfYeL7Js4Pt0JwjDu7mtg3EBBn8UEVNV4LyT6fBY51WSzqB0soqwtd2qh79m/ NaEiklIkC9hAr9jPaL4zdgkWYxp1yzaLvr+/pq9zUGOd/1Vp/jzsDOJ4XzOCth2pWlpaI079zQI kVpGv281N8Tt/zYmp62omUtV5POPaePG5cv9k5OXyfcjBU89lYPRxLCOHqz4i+kBdYhNaY8Cxoa /11YR5IpNxaCtijwfQqBeboQTDtzsqBECZB9p+lAOsH00EWh/ak7ECY0= X-Received: by 2002:a05:622a:2d6:b0:50b:3705:c0af with SMTP id d75a77b69052e-50ba394948fmr161577321cf.53.1774858904527; Mon, 30 Mar 2026 01:21:44 -0700 (PDT) X-Received: by 2002:a05:622a:2d6:b0:50b:3705:c0af with SMTP id d75a77b69052e-50ba394948fmr161577141cf.53.1774858904069; Mon, 30 Mar 2026 01:21:44 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:43 -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 v8 06/13] ASoC: dt-bindings: qcom: add LPASS LPI MI2S dai ids Date: Mon, 30 Mar 2026 08:20:58 +0000 Message-ID: <20260330082105.278055-7-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: JILq63-eLxWnEXJ8f51MjSrT3OgxS2fh X-Authority-Analysis: v=2.4 cv=UZpciaSN c=1 sm=1 tr=0 ts=69ca3299 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=6P8UuP444nAwg2htitIA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: JILq63-eLxWnEXJ8f51MjSrT3OgxS2fh X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX77JLYZruhAXl jWR0gxQ/pgfq+4LecZSJj9dF7dXYZmjLzFhAxJVafyTmOkvo7AgtgdfZXjbzBH9L8sVDza94iaE U6sWAm20Nqq31+r/sHNRNoQsaVx4qUyUIqXQIRvUUGHV/x8sAe7R9Q42Qhmm2t6p3ki0CfcuVTX J/CfHGipziSUmQdYEMpRM2+Y38oHHLaI6cvcG17gPmRdVhobyn+w92kOT37LxiTUuSry9aa/Zgt ZJT/SheQoXtn67KzM4VlerZwi+JjcJAwMq4FxPYKtESFkli2TgMYJf0YEUasq07ZapldSPirQkT CruyM5qECL2Lu3rsO+xhZ8sZygwJ275oqPaWLIORm0xuee7Ww4Ii0GNdc31avq5PbFwN8+Ootcn NHbvJVAU8ULOy6O7j4GozRjyyslk/W7LHEk8tXG5oUdEF96ImEDVH1biVOXgpbB/tNLczEq/B/5 BeY7YsTzGfotXsk0Gow== 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 adultscore=0 spamscore=0 malwarescore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 Thu Apr 2 00:15:10 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 7700C3AEF42 for ; Mon, 30 Mar 2026 08:21:47 +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=1774858908; cv=none; b=F6IIReUKgVzmlxrNNW/GcRHJx8BZAY50sma3t/DJh6rR+Ok3VQBDYbNjgT6OuRwZg2bWLdgdT6uAF4+UX8u1d2a7+W6rppsZ/NJdFHlEyw+WQwyaumXv/WcAYdVGNqSUb4YaI9UVzc6+GukSHh1WrZhM39uSibio7j3+LGCLz64= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858908; c=relaxed/simple; bh=1AGWMMo+ZQ2MpMqgndQclqL9hoOIddPn00jRigW1KUQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TosnB9mon6a8ycV2SFmwtqbxdxcw5VhuyCJlPuGI7p+RxIFW+19xvJxC76ZTjeijT9uU+QvNZ+m7qnvZmWgCDWkzkzXErgMmGDaC6LzSBqx8BNC5qwWrkuPMzIlWD8E2M/Tmy/Qt6yo56fjzLLXvEfo/ufKGHcFxf7L4lat11Zw= 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=DVUW6reX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=C5Fus72o; 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="DVUW6reX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="C5Fus72o" 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 62U4UpaH3031490 for ; Mon, 30 Mar 2026 08:21:47 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=DVUW6reXA+rkVOIiwtFQcayQ5xg cRLFqNyfpc1LVi4UE7siNqwYKSv158h/wJMMpEr9Mhg6ymgdICmtGMwZN9BSJfB/ 4KQfZsKjNBpgDc7RUzQDmNBNINjRxmaZwxspNiOmMTF+w03gaHBzoFMDFWv0P/wL nFeWgVMTOumDK2tcgWZkO1z1LB81hTUE5dyWV1Jaqfa7tRQo+43Q1qv0kcOTi9JV dnWbvssHgWmBy+lRqrGvNR2+LSsCjQb0RI8IL2WgoGxnslvDMdjRRHPn+XwGLlDQ JoBT8YGo/3Q6/wwVs/jwYz54jrtC0XTWVS4kH3Ew6Fd3PL+LPxuadsVzQNQ== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d6wqek2f4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:46 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50b31cff27fso39044051cf.3 for ; Mon, 30 Mar 2026 01:21:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858906; x=1775463706; 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=C5Fus72ondUh48RdASfrC8iqUOEfv/5pU8A5evS7lF7iHQjA6cp0g6VnxPVY2aLk2s Mtsngf8uQE+rgxv4Szys21C+8Jj201Tkwor80fVH1fWtjTtvlLETdCG6khWSEk8wLEc8 5kiY72SH6dQGLYVgv1wJDUWdjlcnTnqrAaXVkDmiShR7GkR0NAVS15rARpT/GT15W9+4 w9BWLgdsCkX8lEgNyELDqFelqMtLOYdPiI8anPsIy7fFJ/nVAx6txaEUI9QKGJ8JcT1/ uIM5eh8uyjKI6bR4IyMHFYJJ6yWPO7X/pF37Kbyc/YTnro0fdFIjfa6mEOwlp17yqo4g MhxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858906; x=1775463706; 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=MZm2EpImm9J+Y6sYq92eOiElisWlww2WV0i+EACeocWFG5vUWdMUZdCsY2WRW7HsSn Z51raMs1QVKwNbfSgAVdNmjBpBBNlxWNZGqxAO9dQsensjJ1cQ0lv+hmR7abEE58Pbw7 Txk5d/THXghaS5t7OBz+sGhZ9j5A9HRE+tzL/slgOrue1AComXYjBVaPLJfGVG3PEkfA YwNuJGAWnJKR23K0lJzL3r+lO0d5BCod58ghwYa4U1DflV+0S4Xv3Zt2fDl5vpi9/ZP0 A8UUqe6DL5H0JUjEOACwvnlDc5Ko6cLvVQOiqr04aIFRp5ThfpugkCEYMWsf2R2700UV rY4A== X-Forwarded-Encrypted: i=1; AJvYcCXyVmhQXsJD2y9/pxqrshbZrobrIEZ5suf3kfU7NdSLG+DoffeK5xGWy6Y4i8FM+DEA7xZ18yczMxvsVVw=@vger.kernel.org X-Gm-Message-State: AOJu0YwZ17V+o1ioDrv7hWNGWNwXOdIutf+5ZwxXVH+klEA1Un/jsv05 WXdrv1URAwPZgZZhn0kTmeaWMcVZ+W/FFyfimmcUthXolunHF7FYKb2vDdbXs8SVQFTz1xq1tYB KyGWrURKIjrDYCqoRbzAOAmEWTgnEIHa1vRuZ+ewvLCqJVLdzuiIZZKbLYWgrsVks1D4= X-Gm-Gg: ATEYQzxdL1S1ymbh+HdxZ01OaAYJiuTsvk5su86OD1g/Oi96yTbZEeLoQxEdDZ4Suxp 1aja7lGLwv8FXElgFJDo+SWu/Uh7zJJgOf1U6QzpABaVzyvBbDPIY1aGhyMuSgEdUaZsS4SQDqe Lk9rZ+kLTFEv1DOkKaILD6XnmW/vORGYwgL4pecIxdcqX25QjzVAxREQsis2VOXU3CMM9tGZ5a8 gvI3wFUVqz064u3t2YrzB+DG9dxPbrMeK3HZIbnvJSsRr9sNQeZE35ysveYx3KZ4BsiZUlPQzGc TeTrnyos4w0gV4KjSop1Z9q7G2ADIN5IDTKIcAmhghc06pzBvPnjq2FuNuQos7QiKwCer2xWFth TUBtImOdF7ifsj0dG8Dnf/nXeBJFKkky9L+0i1ovics56yjYXJVNcgMk= X-Received: by 2002:ac8:7d4b:0:b0:50b:3895:fac4 with SMTP id d75a77b69052e-50ba397a624mr142938701cf.62.1774858905819; Mon, 30 Mar 2026 01:21:45 -0700 (PDT) X-Received: by 2002:ac8:7d4b:0:b0:50b:3895:fac4 with SMTP id d75a77b69052e-50ba397a624mr142938321cf.62.1774858905379; Mon, 30 Mar 2026 01:21:45 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:44 -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 v8 07/13] ASoC: qcom: qdsp6: lpass-ports: add support for LPASS LPI MI2S dais Date: Mon, 30 Mar 2026 08:20:59 +0000 Message-ID: <20260330082105.278055-8-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-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=Jo78bc4C c=1 sm=1 tr=0 ts=69ca329a cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==: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=nvRDalaNTaWZAukup-IA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: 92kVhReu7cum8e0LlnoOwn5Sk3svaQvE X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX0LYbtIHSkuRs E+DDFeS64GPQIedgSWnRcIvWi8byBOrtP9713LH2yGF6+/Rw2xz4Gj5030Ip3xZCfJdIZjRzulC +vxjfiUp/Q4Jtw6PQUzRzuLP8kEFsWvWQiVdRIOTQRg0HhuXLz35G1jjQCCABJoPf2OqjiMvoBo QZltVX08ZjKGPuLxADh9lXZZAbIPjlLkpGViFh6dxB68dcoSXIuF9WMHaYwuo7PrIH+UPJsSrvP OeZsne0hhbtAgz8cyyn4rMRAKQKHcyiUiir33hfaxNOzFkX0/2YeoVA3gtWJDl5EeLnpg4npt7P ADuXHfJ6zyeJiUzxonr52FV9XHk8rLfMmhGhDrKbmy5nH3C+fOhVkyA6hraWQdiiz03Yv2wXVqt kOY09sTIa3YWdsFqM3WBwdeXaTdw0bjahautQuXbMSYFvK3shDXjKTIFjs458pHqIQrNBxviVSE nZWxhGr75BRsBGE9T/Q== X-Proofpoint-ORIG-GUID: 92kVhReu7cum8e0LlnoOwn5Sk3svaQvE 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 bulkscore=0 malwarescore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 Thu Apr 2 00:15:10 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 DCFA63AF67B for ; Mon, 30 Mar 2026 08:21:48 +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=1774858910; cv=none; b=PRu0wcno8LJUamXSbYf5H4CNGI89fUVjqOdhZ5io2qa9z254J85graky1GbWob6uDyVU5rLkqBUQAxNLe03H1HdB/uIzWYhOQABStbTeEJZ0PEQPlwTbsy2kHKO0ElaK6S5ZhQCYN1ebjQ78XKcQqxHBxZ0HRPNf0DrWayAxPJs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858910; c=relaxed/simple; bh=DWuvTD8Cw0DUhqpHbWAOgp0+9q9ilBF02Exs71eghWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=d7KVmFG5y9ZnBjuhAZPe5BBQfCGLVwrFJYVazHD+9BOVyH7jALkM9legq32BD2AADYxRvnGQENGLw0ulC1yJWvVHuCeIw+5TgSqPtygmEG4+PE0AI2SldlSW2s63iHvHBWY3OXude4LyyQuvCWduh/ngmzzQGGpsWivk5LauOMg= 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=MEkqyLJ5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=OkX4AROF; 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="MEkqyLJ5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="OkX4AROF" 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 62U7WQW5332215 for ; Mon, 30 Mar 2026 08:21:48 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=MEkqyLJ5x3axV8AkeiYRmJo22v+ jVukV383lOuzBySpFNMa0J6PSRKu5uxftyeYl2MnRhH+Spm5uduaeTfSWStcDYY4 n5UCGig1/s+c+P4USKshxQtCmqWH5kdjYaUGYUKFkisGSuxr7jkiedUT2G/YMTZr gP444M115olpjdy5/BaUJIdv4QKRqkbvk/j5b/WV/jZ5r/0lpsAJG25YVYN7eIX3 enrreFh4Uf0AHAWLQ16BT+pwMWokDq6mE6tDGU4XEPNp5TYSDkwAlbZWGJVt6Cjh rOi68mDEHa7rjgRUXzuP1m0Q93Hoqk8UUpG1lS2GoF+Jb6/OC90VySU/bpw== 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 4d6wqek2fa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:48 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-509044f54aaso134468241cf.1 for ; Mon, 30 Mar 2026 01:21:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858907; x=1775463707; 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=OkX4AROFYaEM6o6td2XM3c48RWqUMRgnPdQJJD6ecUzvNArG+f+BWK5n9pj8OOc4rT sKC0P+7+sRMlw6fVwmCS5xTTD8AdSHuYnTf3UzSSgFcIuCyUnvqHbEAnmXxbRoQ5PL/g 1+Nmquz7hsiC1QpI0zrhKwPK86HlVlVedibuS5mKUVIyuaonZOl6LmsrPJ+RdiALB+4U bs6do2VtEF5OeK285K9oIlpkTfYOD7cj1Typ251M+XNi4C6TGgIKdSD/XGEztYWr1INP WKMDP5fr7tmico6zpwaadlgj/hZATBk2BBY/kmnZADsxT12fkJ9Oe4WBLbJDqIA146hC D8Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858907; x=1775463707; 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=cIdJH2RhZ5NbnJT0LLjdbdx7vPRNHlkKrEMa3a/8vvLYmwxjO5fMpol33do8+0KutG ZYf/qzWkmXikVrdnWGj0u4+nty8yrZj4qqbXYnhRONT0X+XhWZzEHRX7vbf49Sn0tChq DQzfY5XS+iI4+eZq/bIPjp5ZmSl9FTnG29wqacEe88GOq70pLjU5ZyTs5MR2+Un3GZzs Wn/8Xm3E1maEEp+69B+xb5COtWeYweToXvMtVpiKd00iQZvJX3igZR62N/8g6CxUY+GI 1eldJAijsB7sjviBpJfEzBbgK4TI6obfx+bcfPk9M+sd5bSjN8fLoOIL7/qfQdOiz+CK p84A== X-Forwarded-Encrypted: i=1; AJvYcCWfCpDDXkhDVSQv/OMOlP+DI3EwxVmRydtAs4wuftEXnBKNEHX6D6oYHi+6qMu660zyLSEjhntJNTZBEw4=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7Yi4CKWsKeUikWBO73bUUlgLKgYkvVa2lJjQjW/89b9ochHyL HysbUuUgJxUIY0ytogo4H5pC1yn9itx4VKq92exX0Yll3SSU0CwFEHcoKmLGxOggaYzOB9U2663 NLWPEE3G3GM+Ms+Up67akG7QjcMaiQl4yPHIBr53rX4FNpxCgruSQQAUHvCUbytznjXY= X-Gm-Gg: ATEYQzw/GMqayHqqBWG2+0E+tjiQUHuv+c6Sl0OXlib1UgEQvnRIFXRdcCu3Qw8hNMB /4IjGZV8BIX3Pu+SMVgOfjJKUtA3MUkbYn1+1wFELrtrmLyOvKUCGZUz3q89/foM4apb8jDnckM crdg9vut96Ijh9yPAf+eJlbIVgIVdSFO3fPCHqW+8YKQ5LR4onFKx0XJ1McRfRZNgqRtD0JTw7r kBo0GOTkXgQp8p4MT5dvI8LxEvYw0AOe+6dJpg3UJNCtty01ReOTizb/3ln2yeeZankp/q3asXq t70NEO89PIaVzdvS8dI7z19gUYYT/+RU0FHchzTrS9ZDkywPeuvJgUqV0kDQ5fD98RjTlk6VNuY tHaQjjNdyixbbc6JjIQ4QMDvWI4jL1z4raPHBfC2YIghkJtXZXdYA9T0= X-Received: by 2002:a05:622a:213:b0:50b:4bb6:d9b6 with SMTP id d75a77b69052e-50ba3850224mr168116651cf.32.1774858907330; Mon, 30 Mar 2026 01:21:47 -0700 (PDT) X-Received: by 2002:a05:622a:213:b0:50b:4bb6:d9b6 with SMTP id d75a77b69052e-50ba3850224mr168116401cf.32.1774858906922; Mon, 30 Mar 2026 01:21:46 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:46 -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 v8 08/13] ASoC: qcom: q6dsp: Add Senary MI2S audio interface support Date: Mon, 30 Mar 2026 08:21:00 +0000 Message-ID: <20260330082105.278055-9-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-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=Jo78bc4C c=1 sm=1 tr=0 ts=69ca329c 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=yvctMs8w4tAFySAdhFMA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: SDTxm-lok-nUW8HhzyJUgPXQEmWk157Z X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfXyPxqmPbPftm5 3GLCK+yEhO0BpqZLDxmRvslpwTj8sKeQsHqJ6MTRXALiH2e2+vY/BHM13TcxqdcYjaDP55S44g8 ppC7lGhA/dYQIwhyiN+MITu+q4gofCNnbH7Um/F8AEMFz672+654E48Ob9IK4tbxRvqk/AoLLvN RnP77T/mPkhuB0zWIrdYVD3hBHZovM3Az5dBUVCP6n3KBa84M9MoSqo348u28lOoYTrkALOv7ib cID70wS2oqvV8IuEmfxAJz4JeEkqM6UajJrZ+5f4WSqrO7MMtA5KA5fre6TzBY4CLnIs7C6DqAi RP5KBfQwyi/qDi9iKwXQa1Lvs+kAKy0fdP+aW7LXq1m03uKUGp6oFDmGuVxI4ZYxMZo/S3tI92h mxP++WGTelYkiIQvh8PrO8kq7QVSX4MDnUPriO2WZsU8bBfI9O0EYEAf2uZ4xGftoxtjpNYMEHT 6fwfqXbYuaeru7sS+8Q== X-Proofpoint-ORIG-GUID: SDTxm-lok-nUW8HhzyJUgPXQEmWk157Z 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 bulkscore=0 malwarescore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 Thu Apr 2 00:15:10 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 DBFD83B27E2 for ; Mon, 30 Mar 2026 08:21:50 +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=1774858912; cv=none; b=TGpwkJHEWHl0+q4bUXoctNClE6jUN5CyxTDtix6edyobKegVakeQ20OVPUgGXms4kIKd4S5vqWsBG5uzt6DMaZWh3wDnG0NBzIQLQx6pPDkq5DajQsjaca4SK9KFNZrLw9DDhq7JyahFUE5+VjyCNjKpqoSevIr5+SPvygSpaYk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858912; c=relaxed/simple; bh=CrLGv5edH+UZPIk9+prSCn/qT8iVjWiDSBnsGzRqcxE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FVdLjlSg15C8oFTYEvwbO1jYbyAPtSQ5LwTMEoYKpdZ1sJpLhEJShRbzzZ3l5xXmTS/61PLEvJQ93V6qcbwMNzBTU183K7i3fOSP2hfsNbIteA4YU5CORRX2Z07tE/X4h7epGCcWTf/T3ypG8TVyt1jnz+Xfqwbfx4LssMbQ1qE= 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=nkiXiE6H; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UMIFv9VA; 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="nkiXiE6H"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UMIFv9VA" 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 62U7a0pD1157886 for ; Mon, 30 Mar 2026 08:21:50 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=nkiXiE6HjUvm0ynZD+4D4JASgNf 8fVBKoJ12qUSOZzoFWXl1gQgYHDXMhb8EDoa9MZ0G82UErRkCf8aEEC8nkFNyHaB 2i+XOp8mvq8V+envPK701rMKNxjZZRExQIENt54aAXtjyYqPVljwx0TGQlFUxUTB eAGHwRZGMF/jPm8tLBXTP8LKBzB6sNpfZGeTv35R/4mysCNP6QKCqfvYSfYxq7cS ytpkSe2z1ZsFwJ8UlRkIj9WVodscvKadPGWAY0GmOK6nWx7SQopcanlZYw4KK89N wnH++l/BGJNPuiXbmCX+vf/aaC8XHzNTPhKc3DDoz04l1R+2Tb2P4w6b8og== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d64pddh18-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:50 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50b781542c1so100975281cf.1 for ; Mon, 30 Mar 2026 01:21:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858909; x=1775463709; 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=UMIFv9VAcAUmbDLe3jmE8jSV+mmHvO697dMo1JHtliTh03fLnGivb/hKCYW9vaeW2t 2bJI8zzyDHrILNjVFM7kJWEg4WKRU7/7zT1SsrXc9JOa8hT9gKzJ/0OccvLIPL1DFx79 jJNtBnUNSKh262fuhcvtrNjwngli6un5ynHlL9+Sce6Jg6l7Su0yhp0UigLm1Lq3F7t1 CmMqTyvY4p+Uo7U0+Zgt1SQHXJoSqNJHAHUzjJulQNbXWgLcGKJtjGKq7AuQZTWnAKAX Eda6xrxu+Pra+mLX5uXo5Dk4JgLmMvdYsb/pyzfpcREsQrvkihaKuZb23Kk4lbMvNpZz 6oHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858909; x=1775463709; 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=XcEvv8PeJmcfHYiGaQLlvwRPJ7YEchdEPa/fyp8aGic4zx/awdCjHrpsjVRtPnCU6J K39rmgtKCeZwIt3GxYhGRaKjLrf1HGOCnF/fC34YCc3p3IbFhn4HY15o3rz0ZPGu9EIw QP6LdUHU41UI7c4JGIOhovgGblx6t6cbwPVamrMBZFyQ0ru5+3gNN5Hg5+/GCRo+ojRD ptcIoaE2z14DiBmu2asEb9LKbMSEDSp1Zid0lR74ys5kPYtLMLTLvu2pYc98hx3f1GzQ IaeUVL4ooT1dhodHyJ/J0PDxhWARj8g7H0dgi+MBANDVoyXwsJXLCfG34c08Qeteh73U 35tA== X-Forwarded-Encrypted: i=1; AJvYcCXc9ZWDP8semtRCZtNr/rN3ir7Rc5Iq2r75OpLHfvfvzkxoPk/HwJhex+Eq3Thw3j2WlLjZas6+WQ5kxfo=@vger.kernel.org X-Gm-Message-State: AOJu0Yz7KDMRrbpdNl39hLlviJTWj9zGvdD6E/UnJPN+NNWrIk3ZMPJP IRSvFeBL9F65MMD178/1S4oljnveJ9jalO7uEMBnxOuRkxnj+cs2fOeOt0i/Iq/gaKtYYDFhWdT 5qP+xenGPnEsPfyVmnPnSucSE7V2+pPrg+aDiGnwT2CdZcr45mdu8QtZmCijl0J6yfFW6bGWkib s= X-Gm-Gg: ATEYQzzWsY9xlP6FjdfqQ0b9eI7ByRKco8R9016Bq6Ou19ZAmXQsmrTxoQGv2b64YOw o8fvZ/5h0Q03a4pbgT0Vq4c49uOL0vpLkAH6/YP39nO0kJ8cUIraUv2ZNB9gGFEwW+7an5rvUq0 /VTyO/VveWegxnwohUMH68PNm5GlJiLbEDqqIqt1IIG5L6hambgHrzRGgGGkVlpHNX9PLD4zbfT QxIUGdSlGutX3u3EwtvAfGoxCZk8N+sgRubTS+84/VcWw/GtZ30fXoGH0cGM5/z/lhxkNtJSsSG Sytp/3DzmHmXMm87FGMSMtAyasKT1BOoky9P+D2oqrPJMFx0uo5FduVMlmr3Fqc+8Xw9OHt5blA eHtpDVgD+hMKmMo6sv9+Vp6hVU4DQIAwjLCP4vge6rZFI4a/9IFnMUGg= X-Received: by 2002:ac8:57d4:0:b0:50b:5507:f0ff with SMTP id d75a77b69052e-50ba38b11dbmr153012361cf.43.1774858908938; Mon, 30 Mar 2026 01:21:48 -0700 (PDT) X-Received: by 2002:ac8:57d4:0:b0:50b:5507:f0ff with SMTP id d75a77b69052e-50ba38b11dbmr153012051cf.43.1774858908433; Mon, 30 Mar 2026 01:21:48 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:47 -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 v8 09/13] ASoC: qcom: common: validate cpu dai id during parsing Date: Mon, 30 Mar 2026 08:21:01 +0000 Message-ID: <20260330082105.278055-10-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: G9XrafaXcTBVQNDSCRsc_-SUkC4_CJLB X-Authority-Analysis: v=2.4 cv=UZpciaSN c=1 sm=1 tr=0 ts=69ca329e cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==: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=FTFSxu1yF2iZ1NjiFwcA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: G9XrafaXcTBVQNDSCRsc_-SUkC4_CJLB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX5u36walr/1Wn Ekb57Cp5C8GJBxBm37XNM4jan89NXub4wUQyWCOkOIVK4YiNidTFpLafdoQGuq80okQRktiqHm2 RrjYSxtZP8XqtlEPihQNeJrCDH3a+qbahYr2TsTXibcq1RnXLQlmme+hA9fk+C7y/DAKN66eFQE cC0SypxXh7QaqKUbtdg2u1rQgLYqE0mUvTGNC30I+coDCdl4Vz+IQOd2wIWeZ7NwpThRExmcdeD UEPo9oVhEMT3+WHpNydWwCqH8lxZUZL1m5vVDb+FGTSoD76uPN7H+1sNgs1IZogM/hOeTxxIbXw 8/ws7JDTOKQG7jcopTOSoQyJ56y62yUNHy9bNDiCSUCASSebzXyx6RaTg5cpeJOiJvQtQ4Wouxf jQ+qnUot2zkvV/9AkCViyEMvUa/cyRtTK7Wc666NLctP620IBFM5qqza3RMVgySM54NVWZO1ozu vedSYZk7jio3R/7mkOQ== 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 adultscore=0 spamscore=0 malwarescore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 Thu Apr 2 00:15:10 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 0721E3B2FD1 for ; Mon, 30 Mar 2026 08:21:51 +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=1774858914; cv=none; b=C7vRdt9BC5kfxxYgE/SmcqKtUqlv3EAqr+wfjwZWvkxesNfoi1jt0alcbwDNADiTP+OH+y1nz21xHwSW7YUiWAQu7oOLQnehvR5ps5x0H1ogZ4JqFmorLs2Tiy8RULSHiiyqqmWE2yBugNcp5d+SjywMbgI4j+0p6HkwsD5CWhk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858914; c=relaxed/simple; bh=Fl/z/x1vRgiwJd1pRAYk5uDKCPsjPZHEyO/+LZ3AuNE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aQWNETTZUkOlHVVqMWngsBUMi/AQ1zJ8XMd/l2i7VPunYIulo1cF78KXdNzFKi3dKj4dRGfPxQmKCsklqzEeqB7ORQL7ywAHZtg07OnpUVaIOpZwnwmv5skHpzUwKCwWUDDv+2f9IJQLge83brmHXsOs8JehZxsLPKDneWbFZLw= 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=NgpXg1/I; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=M3HymKQh; 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="NgpXg1/I"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="M3HymKQh" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62U656c01510150 for ; Mon, 30 Mar 2026 08:21:51 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=NgpXg1/IkQtlUVvVJV2usXrnLZg vAnlUIbsLPW0T+za0MzY4z50hv7bvd2pQm+kgena4BJJp/LLKda7hrOnO9w2vTlD ajG37vOR8nrDuvOoIM8D4W3Dm5Xnpal2j9RJPXwojFoP/rZ/kRkP7c7df+bjuwZ6 tBEmdg3W6sxSMIG00W+FT6SIaDUysNiLUZLLRANA2VEVaVV6FCeCm32P9JPyAVFv eEd2Y7iePrAJjnE77YoJvc/hZk6z+WFr3nt3fL/h0uSz27TibcF6DIIPKkAmKDUM 5WejlukzlZJ+CQN6d3LNnPGPIeGmZ5+RmKmzzy3AwYlZ5IhpLBcOzaXTb+A== 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 4d685hd3st-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:51 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5093025ffecso135539111cf.0 for ; Mon, 30 Mar 2026 01:21:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858910; x=1775463710; 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=M3HymKQhLgIjrfXK63ttmbk2TerakC+HhPnW+ExehTVDFKSrxRkz/qqqCvRB6YTDnq 4zkklLOCvDfta1mGiskae+oF7/sqY2wbilin3N6QYMXcIGLdQ0tR1KXtjyniXIG+MJ8p zjg5OFXju/Sn+ndWfuqza2O8dW7xWGPlLCCtt7mKNs9fUiorHPUV+6nKQOJgKCEgp1E6 BzC4s1HU5sY02R8mEcp8Ec7FySZ5CN6koLRO5tDJmx+Dilr9pOjCsH99PlmIiN3gnSgd 5Fj9b+pO2xh5PDLPbxTP0Ayg8+UT3dTwZy0Aj81QPAjF11dK8PNyc3XXdH+ucpou7RZc LEsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858910; x=1775463710; 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=gdGcyMlWKR2qR0VYjo2gRq4vtkJstnC06CfV7R3uN4WWCaYPJtoInUu/qwQGbnMa3n zldrEo4n95508cnDduJyqtBFJ3TQrUe7v/zs/wv5BavmRWWMHMpPas3dthi7MbV8oVtV 27lAU/V5FtvFYCon6IceQawPB6pfqnjdrHEg2Ug+2f2i94pYMSrUWKqz6YHwVTUpwZn+ 8wYbKNqJzW+INpJA6Mhd7pJg6WRP/cGAqh+sR5CEDUwD7PgbfaSpHLUOkESr/ec/QoaC xOY8+ls4nshMWwBrB1j348YYb9FDtdkcTuaRWv/xDkVCQcKUXPsbK5nYry9AVf3ab1sf CMug== X-Forwarded-Encrypted: i=1; AJvYcCWU66YhuFqaEdMdqZJostuvNSP5rU2fzKohfXQSvm6TFKPvTZtxhk/alOeZyMDvRnVpyFx/doIK0jk9mK8=@vger.kernel.org X-Gm-Message-State: AOJu0YwIZv+WzogbtiVo11FAIfKD5VtENCjkiy53k/nKAa/o5Tj55bTB +hyrj6zi46s7Y4bEqs3CEjV/UgAIVb8EkHB/7GfA9Wczs1X/RKIaM+Htv/sdK0P+AvL7Pdvo4yq UEDZVS7hSMqQUdCWuHrKqQa3day9OMSJNQzFSY/GRpf5UmmtzDypj+NenXexP7PDNgpY= X-Gm-Gg: ATEYQzxuqrxtP8eC0LRNMBb8Kgwp9ShDGU33piekziMpPGx0pWj7BgoMAQFIi5ouBJ9 a0bBqmed2BMndEuYZhRXvnpiFayW1zW/yoeY7YWcXf6NdBmPHm/2kPn05NRyV4HiAZEG0dDEQ1I 4+eARZicixGtqPHpgwiCef9D1lTSOCMrxPrcD6ey9j9aKY+uibQmsZCsDrOcUuqKykLehMB8/7a fx2igh1vQgWUucO7uN7FsRA2PGp4glknyFlVRquiUMGXzMJQ7MaLI6c4HkU4r0J0eFsOoRcZUcV 0MzrhnzZkLcQ6yLKroaHqW8rPHEV2Lg6e9xxUSZBgLZE5pv4nPSkGAtPnGhRxnlIvPxJxKwJmah 52OKNKtKVGznxg7LIIIR1HVNyf02o/WEUZQBzpXgQ6s8yYKTkIR1dtxc= X-Received: by 2002:ac8:5d05:0:b0:50b:4eb9:a988 with SMTP id d75a77b69052e-50ba397fe8dmr161748841cf.56.1774858910502; Mon, 30 Mar 2026 01:21:50 -0700 (PDT) X-Received: by 2002:ac8:5d05:0:b0:50b:4eb9:a988 with SMTP id d75a77b69052e-50ba397fe8dmr161748671cf.56.1774858910050; Mon, 30 Mar 2026 01:21:50 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:49 -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 v8 10/13] ASoC: qcom: qdapm-lpass-dai: correct the error message Date: Mon, 30 Mar 2026 08:21:02 +0000 Message-ID: <20260330082105.278055-11-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-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=csKWUl4i c=1 sm=1 tr=0 ts=69ca329f 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=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=QkacBUY9L2qTTJrEq-kA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX55F2MJfopFCS xbER4Aql8C3w29NNVhUZcN6sLF0Y/fudBMt2705Em446nmvic9nmSaHotc04CEtpn0Ce5zD92UI 6/yeHD+g09WbyloiL2Agmmz3SfvEO+BZuFwqKBSt0D7TU9aFyCRX2OZJikiytK0X8gEhz6ndSC+ BdfGYsDNdQgseS2jlaj48WjnEZgq7TZKxpbos08i46kg7rjevvbhc7R+PDUV/xgP+QwWLK41nbf 0IeEvTKBXWRBuMVAIUIlK7IkoY/KUjZYaOAhh65vJ7YtRfDLrkDkGZCKrgue/T4J8jr+ZkwD+Hv 8IcmiBzGiX/rrZKDNSnxGCmjSZte2iZylkQ3WkJtlC9nKfDlNgggjP4FPYc0G5DgzzakzF3IH48 fvc98+rhToJd/NYb4Vcx3ntoTgjs0pFDk5/6HbgvAeC9ml1hgcyDC4IV/6mm/TTWNrcP/keeWGC vxrqAbRN239aP2v7pNw== X-Proofpoint-ORIG-GUID: 7dwinM19ioBgZ10fYGyfH0diNdJn57W2 X-Proofpoint-GUID: 7dwinM19ioBgZ10fYGyfH0diNdJn57W2 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 clxscore=1015 adultscore=0 impostorscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 Thu Apr 2 00:15:10 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 BCA0D3AEF42 for ; Mon, 30 Mar 2026 08:21:53 +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=1774858915; cv=none; b=DyqaevXa91G0EZb+TnNrdaU5KnEUd/Wy3Cyv6NxCELAXvPoUkEpYlS4CCz/EbYqzp16xE68AqxoBc47GvJ2FsLmfMxnYHXZtlo0eqYycY5/As/2I4FuiYJh+/0RPs8tMgyVezWLriOKtxCf+WlWIYDUlKtM7nMr4mcquqvb0c1Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858915; c=relaxed/simple; bh=HcBUaG07YHPkjw7AtCbbPauazCJLhtW0eS3T+3u2Oe8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZIQomJtYFgpH0o+/+vMow/5ASwKQxYeiExg+2D4NcrRtL6osXPZS6hWp9VCNlGK7uG6X62GhwApSIZpT+6qw30eauM7wm+Rkvelp+ZhtDAoA/mAeVzQSQPWSTzOQMBcKwpZzscNizOZhsvgUrFv+COzZJ5gFNh3ZJVIQi7IOEqI= 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=DVa1vPa9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gKHsbLkk; 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="DVa1vPa9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gKHsbLkk" 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 62U58k3X2954230 for ; Mon, 30 Mar 2026 08:21:53 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=DVa1vPa9Y4wBlOhXCMKHzVMAzBY Kz7vtZNCLU2TDiWtpr97zM4Q5yxljodCNoF2LvtMNP6g4AkOOaLFas04H0j0x89q /0Egm/ctAkOX8sa7qeoJ7bfcrjNzOSQL2ckCfFEiGJzVZDpdDfpX7Df6WgyvhSIr DoNMhmk+VEm/CfM0XiOG6WB3BDB/fri1Q3xsc+cvquVUVJ6+JMjxzTH2TQoVoKEw Bxn7qO5S9x7egH/hwWi2Hx8QPkWXY5qIgut1iZHwsNH8eL2LSUDvy8vym5ygpx2c GSK0bU9L+Zhy3TVswmmQnvay4E5eheAlB9AEpWkUZMpFlPcFDxudJkeVi8g== 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 4d6wqek2fy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:53 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50b4987c698so72078651cf.0 for ; Mon, 30 Mar 2026 01:21:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858912; x=1775463712; 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=gKHsbLkkn3WCJHWEvbQIYufHSGlyQr7jq3p1LK2TuwE0MWbXGJZ6Wh+GAjYDJfiy/O PUvLBXlttrn1PteDIpJi/YZolE85Psgat46KchGFoVAgfRD2vtswBgW16OD08M5rsBUq 8bf6krjwNHd05RIEZBwKftp9MjZ1fPttXMTzQ7U1iZIE8Zl7mQLKBTbW0hUokayNF8SY 7u8dNRWXvX4589mreHEkGPWmqtXtjhXJeX7eixgDtzQAYZUhyABwMiyaXb5kpCGuLGCM X7evHBAddigVHQQ3ouaguzRr9AhE8tp6XXtRuMnto+yilII94l0Wd4r53FYFKhSc94hT yuaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858912; x=1775463712; 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=qA4ttGsQ7FJhJQ+ZrPNb9xkzZaSWHIqunxl8sE+z2ezM+uR9ejWo0m308bpWUjGFG7 zZcjnCj40Xfb2bpYud5PItGH9wjoXvDw7H8D0DcIerQMmGeu+Lw0m90SWS8WlxRAQqEd Kt9U+ax+y43+ps5dETHIpoieF69tQP0qnaV7pPfKpu6+ttdTU5+Ce+yUu04Ia5gNGSzd 06Wd7IS9uLfGiVQ+fiy3/Eg5x8/zZRPLzIEmspOd+Z2Ifksve389TF+Uvey3JTU21sqe O3sVYukWchpFspN3Z0OxYlTYuvKKEiM3vO3KbXViNcEg+fnHOshGjJK3Z4KzrRnpQHGV ZhaQ== X-Forwarded-Encrypted: i=1; AJvYcCWEtMNBii+FfFXJ4r4xEGTkzW0R27q7s8LcAODVSIKDuBvD0SzjOW13j3SPsMNH8JrTu1aC8oCHI7pf1yk=@vger.kernel.org X-Gm-Message-State: AOJu0YzHL0h8lqgpCupxur8cnoEJ4V/YIJG8tX2iGlXt8EEIR2K1kQqs hQaOpbDDwW6BkRF8tOhS9FHRw4ejeYTHxlLPrqsdCYRyC8ZVrEr8CeMnhmR0D4ktAgqgyBTesjJ siVZTPhDRRh7gIiT6kFRCTbrsQQgvaWTkYlZZFl2HLJHq5g9IlF+OjXexTJO1/WY/4KA= X-Gm-Gg: ATEYQzxPZlRJREVhpWVitB76a+9TQTWD3ipUgYqzvl3uA2Q53yoi8IO3aWtmeUDpzh0 Yt7vYrwsuyFFHkzPOjo3B8luBheqT43rCfj6+kqVe8iw2gYKD+ycsEX5tq8YK6+DpoJrKOIeFbP O8vsAbUOo29mCahugHXm0RC988scL4GJcDd7M/iWHFY5K7REdlgnX0gFUHUB4e8UI755uaSMqqY st96YZrjQ1hI8jw7skO5YxK2xAwrt+pXPEL36CLcyOCIWPM5Aukyscpr9j1kCDkDT5Cvi7rhaR7 L2LTmQYgntjQXtBpOJwuyLUiMrpJdUzO0QfltP+qWQwdy5UOof99XqTkCvB2J6kIdkfZiFpjkgG +c+lSZcv4T5V3bYtB+b/SNPtw+GwwAo13B9r5sPscPiLoAlPn4hOo554= X-Received: by 2002:ac8:5a46:0:b0:50b:41ec:5e85 with SMTP id d75a77b69052e-50b993de828mr186876761cf.11.1774858912012; Mon, 30 Mar 2026 01:21:52 -0700 (PDT) X-Received: by 2002:ac8:5a46:0:b0:50b:41ec:5e85 with SMTP id d75a77b69052e-50b993de828mr186876431cf.11.1774858911593; Mon, 30 Mar 2026 01:21:51 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:50 -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 v8 11/13] ASoC: qcom: q6apm-lpass-dai: move graph start to trigger Date: Mon, 30 Mar 2026 08:21:03 +0000 Message-ID: <20260330082105.278055-12-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-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=Jo78bc4C c=1 sm=1 tr=0 ts=69ca32a1 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=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=8udmP7N65bQo3KbB_RsA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: M1hRHk8c-XYkljDPqrmSOSQ_9oqpSjUw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX1DrbiBuOpM9q 4IoncWVNNq8rsUnXuebUh6hc1HLHjnauuSqBA9ZGpzNWtgGyqjS+yXp8v+qOd2vfC/JsAkRgIZU 5ytFRD56Xw9RAVMPh4ac66kxkemf4xqcYLVT60XbzG7Ba0sqkJczNgHSADtJvFxzhaBNSKwvq+O k1vaTAZdiob90XBVLYCN6IXUVh/oqcvMT3XnNeQAc1qKGb9mOXUAqs7UaP7wktCbP4XcRxMifm7 /82MDRxJy+22yLV4UrEe1S/H9fwukkJC5SCiOMeFlaE00iyFja5RAVw2QCqhdgbRxv/fLRIwdxH ZiTut/M5p4yEVEA0/sDDT393xANADeZpamvJcmaHz+jCPJmopNJwX7rg6uCC/MJt2zEb2K709YH yPiBR05/sj1+XlzbOIpo9j6M21iCd4r29wxkQszIlSsHDOq8j3bexHoOxtpf/qJtR7DPVzHGmHo BzUJSBugprm8DVZv1VQ== X-Proofpoint-ORIG-GUID: M1hRHk8c-XYkljDPqrmSOSQ_9oqpSjUw 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 bulkscore=0 malwarescore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 Thu Apr 2 00:15:10 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 4083F3B47C4 for ; Mon, 30 Mar 2026 08:21:55 +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=1774858916; cv=none; b=Lca64ZaA0W1FTcFFT9T3zxB2iRQIwGhhfsjouPxcI/BhR2qig6jjKJL5ukywHHsdRvF8fibzpJMwdrDep9JLIhwnu89Z3mc80HXS8waAKuTrto2HItdAFyhZZoClJhgixo48RGsgxzSTqFcxj8FsTa6VbbwT3qbT8B1uEZMj0JY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858916; c=relaxed/simple; bh=3nJe78cfkL1kyPmx34In1LIYXv2cp1Fw4uemtw2se+c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KmH7aVhUkbIOjGYCoS/GpSPvbxDAH5HiJ7Qo6EGtfISWT7TahdqCd4i8NFcp3gDIJ9anIJi0o6Vs0BFLArawjeVhWahzrd81gh7MBUaQA/FBPeZ7eRy/o/ImMaKkZUK5RBIieYj44DZ8yx/VYBh2PEG9q9nGKFcQIi20u+mSygM= 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=RIOZW2xA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Dj0ePJC9; 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="RIOZW2xA"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Dj0ePJC9" 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 62U46OX92952983 for ; Mon, 30 Mar 2026 08:21:54 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=M4hAckrjCeS PiOx0QjgRxuKhLYXUUzI3EfTDbynJbGo=; b=RIOZW2xACaETKY0eRKCB2sjsRCP KjBRShHQa0ritDRfFZIk2H386rB/cD9ECUcYl9viuAB8+2ZtxcgK+v4JiTZRWa7Y q78F0ZdEL0cHzLBpQw85ZVTyHYmeD283tsCewjirdtHy/e0bPMlK33hyLN/mM+EY GEZ/k/zMJOPXOmj5YS7USh1lNHgOL3vC+omjx8/OZgbXm9OJP8TNx2j32mV3Qdmj 68gXXczdY56aeITu848jUhdMZ+jh4+w000HC4Sm69608JXV89iQXT0PL6xKDfTEK JvUtL8G57DnBlbVekuOhSh4WJgHgTu/zGoAfbMeRDwqBeCnc0nexnZgDELA== 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 4d6wqek2g5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:54 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50b44f7b7bbso132745501cf.3 for ; Mon, 30 Mar 2026 01:21:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858914; x=1775463714; 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=M4hAckrjCeSPiOx0QjgRxuKhLYXUUzI3EfTDbynJbGo=; b=Dj0ePJC9R1XPnlVIaRPb40oRqqp/UZZ9rc2M32dEL/2fYfrweyzo1jigmDxX6T7new GQvLRviFwFBTECpW47miz5708mGsCG+lyE1Zw9A27/R8EZU8tJf7fI0kuC6DsnmYbqDy DlMW+7sbK5kGYD1KfGuVa4YhEZGnckYmSxf+4i2uzKnszaF0j+cS75g/VTQgPbpRiinq 2wFYy7FX9roDYQDFfZhu3Y8Z1lhqTyspT1dnSTASRU/cTcyq5Hi6No3ybxzveRozfn3m UasAIgoiLKqbD4pPJyvJMpAZpEw/o0kjDSoSrSxtLwVZ4Zp34ZpZcEAfZQUPzj/vPNtw iT5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858914; x=1775463714; 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=M4hAckrjCeSPiOx0QjgRxuKhLYXUUzI3EfTDbynJbGo=; b=ryHXg1pTE7cjFYYUXZ71uqNgW280OqlweI6NjnNvKyA6SbA1nHUPkta+2e9k/4mjB5 PgS926yYRR6SoXGphbIcLt7X0Oef3XCrl/Lco49A/1xlWTCOWPbkKzSLcuhbzCXpqb3K VtTrIBTq7atxOo4BLYJxH6cI96SyNH32DO5bQTx0EEpf+++5vfnTRKrZI3tslnyiAqGl HFDI+iNPjbUGJTH3DGQw0Tn54bHchAjk+1PLP6in+2KOMGNDM5Alr3eQy9H9N1TVixlC sG9yuIzqiXoXQpklhjuqI3mnJHMBhKhrDsoVN3mg7f8V/LBVluB+9vxZCv/I5/xC3TB9 6tuA== X-Forwarded-Encrypted: i=1; AJvYcCVCI6W8sFGdgg+T+w3xkPLN/ZIGBgL5EUH7vGUFB4hWxKklAr86GrZPlpp1RksFM010RDjRt4Va45zrhxA=@vger.kernel.org X-Gm-Message-State: AOJu0Yyqq7a1CUTryq6Em7BRoxFqvD2rqVbtkeavr9l91mIVLhmdExkO F+lBu/G1SXaRW+ZcLAE6u8XAS583ibqnfxXXUxtfe+9ToZuljFqgEnV0SJICqpbJEapXEla3c35 ihu5UwAvto7RMtHQqzkJwUUp3db08o2vTHkdZW5/+MKIZpuW6XSGEUPO9Os/n2QpqmGY= X-Gm-Gg: ATEYQzz9uOoaXsCmjk6iZKQs1xcKL2pNadjzHNaE4RKgBqI+7XHwj5fpeXmoAyEYAZV oVBi/wKHRjBzi6/ncP4T5iQCRThwOB7l7wICgp7/J/FhLHUzc2EcOZ3EffEnwVtPNOHcAiAaE1D HrAehBpCr6gTabZyeKXngDeA5pmyqbfDKdflvzdVupilmrK0yoMGHPROk9RRR25lsDJ5c8TxiAp NmYVms/kkc4WK8yGXqDRdEZ8D8vUqdIpN2P24uzFU21Nefh6a9XhYkwvxQbxcPGp3NWcMCDfGKW 3Nfsi8SUN37pG7OeQqvOjkPj8c1FRh6KWyKzY+TRBjYtoqdsUfuCgzr8wwDnzC7k408cDYCm3ux HsOJpx1wx2U96lWDorKlkaUdQpaP6153XYai2obzBSHSSHiS4IHpeynQ= X-Received: by 2002:ac8:7d15:0:b0:50b:50bf:5bbe with SMTP id d75a77b69052e-50ba37fac78mr172230491cf.22.1774858913555; Mon, 30 Mar 2026 01:21:53 -0700 (PDT) X-Received: by 2002:ac8:7d15:0:b0:50b:50bf:5bbe with SMTP id d75a77b69052e-50ba37fac78mr172230191cf.22.1774858913115; Mon, 30 Mar 2026 01:21:53 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:52 -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 v8 12/13] ASoC: qcom: qdsp6: remove search for module iid in hot path Date: Mon, 30 Mar 2026 08:21:04 +0000 Message-ID: <20260330082105.278055-13-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-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=Jo78bc4C c=1 sm=1 tr=0 ts=69ca32a2 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=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=Ll4dbTg5roZnn8cDlSAA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: ZTbVhLhc1O6kPCzUF37oZEq_U8s7e5rb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfXy/DXQBvtl221 bHUnWFhikowzYHlq9lVM4MaX1BlQatb8sg2TzHi69j5cuhs0NsiKAFV8pbS2UBB9MYUYSBmZ6F/ ixkENt980oxizk0TamlIOm+v1brX4g6mId46xAPTG4mENletiwtfgs8yf3oZWC+7NL/qBgJfqMc Uc06Dr7oNVYCUPaFTuujD7LewkazCToFzS5+EM40CQ+AgtF5ouIvoRZtyq2XHiKYU+k3MDO4ktk M72uGMkaxT6ECcDlzd1erpGapYklYvsIxW6muZkcoaYZ3N6BCX+GR0sPaULIkYBNf1Bd9YUg5pV 3BNeNATMd06eiOwGQtk1RF/VC9rpx+Vcvyia/sLDAChttN8612aJ136+Ff9VWYPi6XEybUjdOBi 0eM+OJ51SLG5yMsg9Za65fzpWNQOzV10Q+yJxmS2Hc+7PckZMFOgja8/riKy1kmDvV4XOYI6x8O l8b0QrcyEpeOhkCijSw== X-Proofpoint-ORIG-GUID: ZTbVhLhc1O6kPCzUF37oZEq_U8s7e5rb 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 bulkscore=0 malwarescore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 5751e80b3b92..6a3942a1ed28 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 Thu Apr 2 00:15:10 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 399A93B530A for ; Mon, 30 Mar 2026 08:21: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=1774858919; cv=none; b=SPrFlxKyihsTnEAWpGOvHbkWj60pN4QXjhcwmpi68ohLxweqa+iXXwG+nu4dpu61oQoh8cw77sQpVHbRTDCFv1iVgGIwg2kVR5133TNWGWV+QMoxaFb7ZAzfzP5s17Iqp48TUD06iAUExfdLFb6DzK7URhlrOTjb5UeWvEb94tI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858919; c=relaxed/simple; bh=yI8y5H5KZTFd5wtjajjW87TuV177g83B3ulDFxmlrMA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kB2KkAtjD/MFblsIs7iU1uzuPUBkk0oztwGL/3rcteCXHxC1KibU5AoqukAre4IEhJnrW7ffvtI82RF/WSIfkcbu1zxXRdraWocOVJTqdc2ejJzQGmJPROECcI0zDeprU/Q3oWeJNIaTsrzWtfvZ4l3eI7DjVbOQYYHAuvKuRm4= 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=jHl622PK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=adEfV74D; 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="jHl622PK"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="adEfV74D" 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 62U3n4Jl2953401 for ; Mon, 30 Mar 2026 08:21:56 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=545I+melqtX Nw9nJsJgkHp9iu1OPnpZFeiceKqWUeqc=; b=jHl622PKIcyoA1ed7XOufQCCKYh 8X9w/2pIqxGZf/DKXUViTuAbD7ZwAgipct4Te2WtwgUYrCuO0nw7XK2BE/j8X7jK fNjjlbMoYEgSGCqojQ2LgV0uPrMNes5W29ieBZNBt4vf+kRvqL7BMS2QSn84xeQ4 XwLsv1laGdBXkTmP0RLcdZGXO8PTNGQ88NmZiO5/mIvGUKKTyGrBuVKTD/DNu4vZ 54ckUvuigwYVuu0qYW6HiYuUTXxv8FzhiK8idgA01zTpJlH4FJCEJYfZvhOv/M4V Ljss3H2JMkuYffS34gWRGEVP1R7jkvPBvaK3+YBvSrm35LvygbU3LyWERWQ== 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 4d6wqek2ge-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:56 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50b4987c698so72079731cf.0 for ; Mon, 30 Mar 2026 01:21:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858915; x=1775463715; 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=545I+melqtXNw9nJsJgkHp9iu1OPnpZFeiceKqWUeqc=; b=adEfV74D2XfusdGrb0OZJP2jtpAa84V6XpjD61VoKFVMuk2xxbGoYMTdYIsu11ba5w c8+23qovpMINZ7VeCJXS8ceT2l25QNr4hXtGhjlaPo+v9+LdOqSJcjJMCGmLjy/pikn5 tmdIMxRpvUB+9KMriM/EdaDc5UxL4M4rrgofbRbNTGsLuqxwiyaRQru/Xsh6X36kKb3+ AVNDM434sGo8jdB5fhAh/0G/HGxd02G0Ab817lvV0UZBlp6EiTWCGlErJ5LvnbORdp/9 vlY9Gs2Ce6HlK/4bzMUCaaW2B6gYaK8K0rm/hOBzxJem9sBN581JPWGRHRSDRNYJvTrZ Iz6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858915; x=1775463715; 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=545I+melqtXNw9nJsJgkHp9iu1OPnpZFeiceKqWUeqc=; b=Bi4YFBvCXpRD3yYlM0MXVNyy0jXNgcSytlyDGFCYYsZWck772ObAjyS/VzY9jcyvMC i5gRWRLDtZztO+GiCBuSjFyiolOqEuHdGO7rgjnhBQw30cEszJ8xb2dul1aMgqn9jd+x 4pm40fwdTDAAue8z7lwx8nf8anHPwoE98/w1oOy3UOUIwi3BxbFPI65HcAwmSRFG49Dl +aaX9FAzYunMkkxgAQB2lRU4xFEbzdTNCspvMM2ngRoHi/ZBtHqQDCK1v4/Ro7omd96N HhrAg0TTIObfpRdi3LX72M3/9gce59DWJq+1vwxEvSj+nHkYbd+hW3vzjple+A7xt+vH tTGg== X-Forwarded-Encrypted: i=1; AJvYcCXwvVIYTa+PE3Ta5HFbNLOayKUPTIfrMzTj04SbM6hfJpIR7raQW7H+O/wC2ad+9a+Utj09Bya5nXhuUec=@vger.kernel.org X-Gm-Message-State: AOJu0YxtSuaxkhUrkGgDmz9zA4Tfd5ndVlRIkWacM7oGR+S24H+vEoEU BfjO8cH/uS8xNaFE5JfD4ju+bymmPgCZ7JYQPvYSd/vMrL7aUugSTminwN08tmoTiofDSW6UzjL VvJ6HCZSfCDwxONFHKm7lBSXTPFn4Bf8o4c6TOMZT+kYDkldOjp2iZ9kg3b4rGn2c2Zg= X-Gm-Gg: ATEYQzwSgSoAMTgCnYgz4/xWKZb9N4dONgUhu/p7/+VDRMQQ8YNwK7GMrx3jtekwLjC tWCl6o2iHRP+558zPVkdQgjx9v9NrRr5D+RIRY/uS/0iRm+taHyaNbyt+Ex3gD7oOFz6WLkB2Ez jXQftAVWmFdxRUb8MpaWEwbI1TPvmCaUbZpSWRjOW831Z10RP0rva+A8/VzR6OTxA+AFlLdoVTN cOzWltxEeswOAE1SP1KlyWQ9nF4nijF/nrAPo+QjHQs2wahJogExlD+33lKnIJUEzhpuo7PzTW4 jkTskUac+1bTTjCiH1xWn0VVsUSfuE+HrALML1gFB8Grz6mqV2en8Hg9hIQFDhXQzLH7q51kAo9 dHS7rklzp39385EWow9lDp7GoxBa+oNsbaCj2YypoFgGr2m4+K6I08nQ= X-Received: by 2002:a05:622a:312:b0:50b:3ef9:7985 with SMTP id d75a77b69052e-50b994a4a8dmr170789771cf.26.1774858915074; Mon, 30 Mar 2026 01:21:55 -0700 (PDT) X-Received: by 2002:a05:622a:312:b0:50b:3ef9:7985 with SMTP id d75a77b69052e-50b994a4a8dmr170789521cf.26.1774858914509; Mon, 30 Mar 2026 01:21:54 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:53 -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 v8 13/13] ASoC: qcom: q6apm: Add support for early buffer mapping on DSP Date: Mon, 30 Mar 2026 08:21:05 +0000 Message-ID: <20260330082105.278055-14-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-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=Jo78bc4C c=1 sm=1 tr=0 ts=69ca32a4 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=Lmls0Cg-LgRrrh2KKlkA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: ibmzj78mENcq2NSWBXCQq1VAEKDghNHJ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfXxCSwbXZkBbxo ylufG5KwEaQwg2HINKpWJKyV9OkwP7EXVzK3FliG61ocqvnOrF6oH88JtF8Sg3lsJiRWW713+L1 I+K2OOPvGFR0v4bM1WVvc6uYmrma1XAEpPBg55y70jVqdLEvijdZWiZeFQxliPqwxSJoIKgS1Df 8FrZTRTIqazgG2Uz2XrzwbWfsuGBg5N1SPRGmWzA6mHJtbyQqm0iOpnbsLptsP5zhUyy/sywL2Y J7F3AuSpmdvtJPg+9dPa+81FmqsHKHQgXfd6+GcBiFm3MFcZNpIN9V7ais5Bv/6NKU2miVb1xsN RCeO9AGietvVGS7UHcfwqcKY0rbePjmWJg86XB1qOUEHudPH6M44PfvGKUQU+lgpclP9FtZfuVV p99hjK1xGW45fr7DYEbvORy0aocmwMUuu7QS6/tLN4Ws4M6U8JKB/uKfujuhFwJC3pkoPvFVqIE bOFNW29s+I+E70aea+A== X-Proofpoint-ORIG-GUID: ibmzj78mENcq2NSWBXCQq1VAEKDghNHJ 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-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 bulkscore=0 malwarescore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 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 | 107 ++++++++++++++++++--- sound/soc/qcom/qdsp6/q6apm.c | 151 +++++++++++++++++++----------- sound/soc/qcom/qdsp6/q6apm.h | 14 +-- 5 files changed, 202 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..ede19fdea6e9 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,94 @@ 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; + + /* Note: DSP backend dais are uni-directional ONLY(either playback or cap= ture) */ + 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) + 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 +613,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 +763,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 +918,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 6a3942a1ed28..3c119a6132e4 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,41 @@ 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; =20 - rc =3D audioreach_graph_send_cmd_sync(graph, pkt, APM_CMD_SHARED_MEM_UNMA= P_REGIONS); + return q6apm_send_cmd_sync(apm, pkt, APM_CMD_SHARED_MEM_UNMAP_REGIONS); +} +EXPORT_SYMBOL_GPL(q6apm_unmap_memory_fixed_region); =20 +int q6apm_free_fragments(struct q6apm_graph *graph, unsigned int dir) +{ 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 +464,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 +498,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 +529,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 +563,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 +593,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: @@ -784,7 +796,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; @@ -801,6 +815,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: @@ -815,10 +830,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