From nobody Fri Apr 3 16:04:13 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 54F9539EF35 for ; Thu, 2 Apr 2026 08:11:31 +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=1775117498; cv=none; b=bSKksKfUGaDlIyfgHOW+p+aGjzoSW+ScohOAh6kpa3/llEE4XcHcNrz64GFO3K/O+sL+0ngi3HiiH/eKeX4zt5/lxpOLmQq9YfJB5Fu0iHPaWQ0zv9X1uxQGO4PdJkTMPgw8/D3za2LRjyHO+ivgdl1TcVdhdSIc6hN48/2aYlQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117498; c=relaxed/simple; bh=V5T/qd3TANJw1qd6u6VahJ4dPBNJ8hf0QkxJzpbMCss=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EbI8TCLYX5FBgiHamLQGTZe+uCxHqHD0oTk3pqrGluYm17HphFkyynQhEjL+v7SsGoCi+eALRTdXbZsrgLlc6u/j9yVCnnCYQRZsLdjLh6ZTLe4HJgAe9tlPDYfAVtiPcOKQsFiHJF6lYUxXTrwtfQtfPV1vrpCh/4FMa38AEUo= 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=PbSkNWHg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZdqPHOoO; 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="PbSkNWHg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZdqPHOoO" 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 6326n0Np3745854 for ; Thu, 2 Apr 2026 08:11:30 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=PbSkNWHgCqkcFCppadxGwJj/V0M 4tIf033fSqeY2BntTkz0Xul6lzR8GgjgYMrbqsCySi3J+SwVkGUkbrfOFdz6tnwL 3pef/4LWObTd0t0vvKZTctrrunk67r5TO+ZIR7FKTSKIZqatnqhUC4yVn/XfOjXo o2+2D7d1p+uvfiSTNf+pwIhfrUjeenGpNnRBmDCnEgJ1X3GKafiEIMBJquHEwJCG 5ZoDJUZovVJ01QB3egM+7sEmbx01PCG7zgrq7W2EokjbVD7M3wPUV0YG1nufkRYX shVzGYlA87tcxANyGr6uCQH6rfEuP0BgLkJUuZi0nHIcZrn9qSHQ94eHHHw== 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 4d9324m7y0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:30 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50b4031b86dso21289111cf.0 for ; Thu, 02 Apr 2026 01:11:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117490; x=1775722290; 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=ZdqPHOoOA4JUWVttAZKSA/bvTx6Qkm7wLn/1iyvpf59Ssns7x7Zidrc4lhqRMI3ZXt Uy6i/ud6m1lorYuNr3zZOyStRpXto4yMCVwZ+n6yUQ72MmI24TGTDiZPi0b7f4+IJmzc YVVeyxLG7Avz677hPIz6b2Xb3LV6HDW+UojoYp5wgnh5XetFrpYFsJWPWQaHPe1ekCex QWWssq9Wq0IAvJ8vGCm6HoIUb5e5a8ugQh/Sro8jwONGGYzznN0WrIeXkAH5NjGm23A9 ABmLfFSrk2UsCNR0VJBADKQnGo41a2C++3sqoSzAO5Xo9onTYLW7CV7QXpzrkLqBcLbr CH9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117490; x=1775722290; 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=IC0agg6yJRr/AsIiuWfNbNIwtvrJH6VwNGj7leKsEj+WDkRDa3EyIVx1GNy9/Lv5EZ NwS5Y07jLApaGIFc+zUf/RLtPIhHUHuvRUkkGakRzGw7AZrX0H3r3IomV8iz1wJ4GJVc 5hX8V0bFbFSYEJGQI0WsgkLbBf28vo5VGL5P8v/qnvN59nPlRk7BN+o2Wv+k03a3EGEw 4oGKGQNT1qYO4nXrgcXKo2JGOcRKV2coKG0TmLmUMJDNlR3AjKGfonNjhNSGulyIHBqw kzJkRll1x9E/H1eeF2HpbZEngdoVQs60MHh3hCz4abP6Dh6ZTeu23NBv54bdHpJL4ipm Kkuw== X-Forwarded-Encrypted: i=1; AJvYcCWglCOM4UBH5RIH7eZEvB1AnaGN/fIYfkwzKfGr0MtSqvfLWKa+dN8A8jQIAqtN4OUuWTatcLp/3Wwcts8=@vger.kernel.org X-Gm-Message-State: AOJu0YwajD0Qw6GUTcfIRl9PyK/0/KL1nXXneL7mqcLJFq1WQTlzr19Q V0K/TTnY1rpMaEEGoJ9xzguwMDpnfRelh88xeADl1rEsuSRDngNFgQVd/FcjLpb5IIv1PyNfrQm SPkZOJleEDNZPfJ+wwjUAvgfSyzO9WAr7rZP1jDoL1umJyt7Rr5/r9eWEswLkUpNZhUg= X-Gm-Gg: ATEYQzypX346pHlm6GRGLy4vGHdZQZhH8haOrdw616GTu9At2MimXk9c2RbKMTjZMCB iR4xj3sykh307XgPEIUsiYMErfpJyuKq9X+uxpPoE+oJyjPRxtT39soJuDqYTgcMuRUdpdAwJhZ wh6uts+sKaBLOBMjapCQT5epiCeRnDJUwxzmlAs13p/HdAYhdshP2Wm4yC10qqXMlaLkLx+ke0Z 5CHdULYA3YKFgZkGnHIsprMeZPiu8AbByyhxZl0sIHgMWEMVlbXrQEb8EWDx7sMtllui6LpUufm dF7K7epZpJi9ot2lg46mbij5mJE5v9jBEQsO+qxEhJvifg/re8j61QkcHwavNYSrti07e2xRIo6 Qg1grKSf31c9aGkfF9a03FQd2r9fRK66ksO/5MuIgufYZLWk/ym6kTt8= X-Received: by 2002:a05:622a:5a1a:b0:509:e68:22de with SMTP id d75a77b69052e-50d3bcad22fmr89985531cf.32.1775117489664; Thu, 02 Apr 2026 01:11:29 -0700 (PDT) X-Received: by 2002:a05:622a:5a1a:b0:509:e68:22de with SMTP id d75a77b69052e-50d3bcad22fmr89985181cf.32.1775117489213; Thu, 02 Apr 2026 01:11:29 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11:28 -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 v9 01/13] ASoC: qcom: q6apm: move component registration to unmanaged version Date: Thu, 2 Apr 2026 08:11:06 +0000 Message-ID: <20260402081118.348071-2-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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: fUhmOdGPcofF8FaGkkJk3TwyQeTxLaDW X-Authority-Analysis: v=2.4 cv=TKBIilla c=1 sm=1 tr=0 ts=69ce24b2 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=ZjLH_7kMUelE1Q3ziugA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX8FqdMkE6WJrC Z0fpZyy65xga6iGz/gOuBTNGJQYZxVuX+Aqn/WP2EKuGjuNFHSVzKjZRjKQ0VSqMt3MC7R/yN8C Gtoe2S9RDNI+M+uUsVMxEb+t0bKWKzSxC13CrSxFMMePioNh6JFLwbXsYLT7owZ6CP3MXdYzDI6 kgaN/FrwLbpXw0tLQjoEHtWFdk9v+8V169iO0hYmcitRDBq7VM/RyyW1ga+S2PK+aS1PuawqoI5 6YqCyMYzV9OQTyGA9OFsq9NbuKgG6iNlEqyBQfxZucZqsOE8g7ETyIUTQ1EBCE6bch7o2JngvJG k0M+AhxEm7Qi1jdcEd+3SRmDI6wmXqgy8Y4fHvLlML7byyxjXPd/KiX0MZujfGMJt+SXdOLwYym UT77Taq8WeNltyXI5R262CEZt1Mrvg9Q+GaxIP6P0FyFf2/q9YpQJm31yBuWFKDP9rWF/txp40V sDNp22B2TMWld25P41A== X-Proofpoint-ORIG-GUID: fUhmOdGPcofF8FaGkkJk3TwyQeTxLaDW 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 C14193A256C for ; Thu, 2 Apr 2026 08:11:35 +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=1775117503; cv=none; b=XVW5na4DjZ2yT9iWZQ63k6O5Pw/djf7CTRlUUODvOcVFRBxQ+nrXcC4Hc912s8S1Xwc4Ur5Qm2TSIStLEI0l/Z/lmrfbx6UHN4wcRU4xQxLjOgD3PdautaEOuRuXNcQRasQrI7ySm5+5g6L4zVq05eZkWRUV3IzvgWr1f5Fjy9U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117503; c=relaxed/simple; bh=BssiN8tl0qU1iQXG8+lB5lBZKyz1PiocGJtwp+eWGEw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Lal7KzKro7CpxtPE6gxTJpFUQdbAH7AdcoYtxWxH8IKtQeoy8eQFeqRZA+7KomtADUxPRjMKdxgvmMTABX3Zv6Y6Zc/vgv47cNYPXg12jqmz4HTDMclYiZvG03376FhfG1TqyAG6+D9/+DnNxMlKymtcWAyq03SPhTARqTwGcpc= 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=CfqF+dvo; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DG1X5DSu; 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="CfqF+dvo"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DG1X5DSu" 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 63275cGh1964793 for ; Thu, 2 Apr 2026 08:11:32 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=CfqF+dvowD9s0QhWzwX1dXqey1Z T9ZpC4k8ZVF4hFHsP/E1TaJbOKyDE9GVQQoXhEUYzSYrpKTBassT9RppSxxb0/wQ ecWvwifwjmUlD1MUkWy+ZJVjwDGCSW3LVdhG1qpBxX0vMJCLJwUVb0zQYfaZSqpP +Goj4VaNHxV5V8CWZOLRV24/rxTLIY8/8VIuSAKDoMSR61+l19j2G56GNfLI1HPx QsmaHh3j9HKTu0Zus2BRTpjARINLso4ZjUcCxFalEbJBC2leozFT8mnDpNnnxJno ky1jgDPKnNcARi56KO9HsqiiLHfgfoy57SkqRqCR7/97hoThb9skwhOd5jg== 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 4d9b9h237j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:32 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-50b6f869676so14347401cf.2 for ; Thu, 02 Apr 2026 01:11:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117491; x=1775722291; 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=DG1X5DSu5SG0U95yTjCxBKKGUxnRBZWK7zjbYmkfJM9zNEUxPv42Z1OmpirO3bh4L/ ISGUIIV0GmEvbe2/Q0ElAeCuKd4/ea1CPosbftMtB+rVqrINSJqJBjn397coYJE/GT/Z 3xojJMFsy9SgSDxKVW+ZU3ExstjtIYgvVX0aCe5txHNHl/vpvu+nGPQMqNH7f/quc3kA UNL45lm9kigFMoJGZKjSppUy7h2UQn8l0dT2D4l4afc2D7mqZHwTnG/PMRm7qekUjAIx x9Xv4fQG/PtkqcN9TJ1PsiIXXPMMCj0BlwDWeIooTeB5V8gOugLp50BNOt1/UfwrvtqU Nhxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117491; x=1775722291; 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=rpws0DsWuLPcIawSw5HN7dmj0lzmgHxdTh7PAHoinnt8CXOdAgEyJ4rul3muYtL2aJ bfhzKyxH1/C4f6gmqM6C6kSylwOz/h2gml4vdQpfprJHElC9XtZFbF8VXZl/FH9HyHTC ebcnYAlmFyVUGiFNrVR/yl3wkwOEH+iPgoOMtDFVXp4EEBRVWyO8ybOpzb4tsMkd7Q+1 rfXUM1IUP/MaLmOzgoXehrHOkPJgFGiE2OGRtVrDW6TprzoWGOwAfVsa4i95lDw9EA5Z /BQgZN60r3Ch8c+hjx+B7FQvSZhHmCajbmEYJ11Py7cpf5Mu7xyfYwCeLZm2e5nt617M u5zg== X-Forwarded-Encrypted: i=1; AJvYcCWsTwvJpnNvFzlsez11RHK1H8Novrm1hJfT89BdeeEH6lPz9A4WerPE/usrdQCkI/dbelTlH+os1goDzcg=@vger.kernel.org X-Gm-Message-State: AOJu0YwCEhGyxPd8Qm9LsgICwGYQIYuIww1Un6JYHK8oK7gJt4pnkhfo gZzHMLCDnv00imHjc2XelXCmI3f/x0qBnz3aVU4SfPmopYYS3TsND5oerfAO7UKv/xY7QS+1jtF 2DBpsjtt2f6x/42oy/XXFGCcyB/yUPQsi9bBYDK2WfSwz6G566zUmXfGYrEZJS0Byvr8= X-Gm-Gg: ATEYQzwba1hTxEueVMm8hzmBqacRnuxByT+da9fUSUH4J8afKh7izt66FdBtfHvPpK6 lCREr5aN6+GxR9loCopVGPBEFMwJrF8uvjMQQk456opFBGhb06fjCM8EW2hyHnhkNHooIg0bTcO tu9WNnoZsrvQirEkI/osFZbFzHlO8lMHD2b9zZvtIm8H6AHqpZW49B/i9s+ELECuQ0pcfvsaMeA fAUSvTBf3AvDvmNuWPSxAV4BJDdRERZMgGdKMv1A7iji9umtupcjibgqvSbSm+EBM+adwUrlF3V 702OJA4ZBOXv77NBOd7QHct5IK3yCoK7Zg+dW6MePscTg+E0zm/z7t4yLm4KMpHbIiTSZbFfNol ZVLwvjiXUQOoNIKYifRje3wEEQhKsBe3OoYXVi9OubFhXxEeFPtjfHxA= X-Received: by 2002:a05:622a:54:b0:509:2858:3c63 with SMTP id d75a77b69052e-50d4bb5f1c9mr36507541cf.23.1775117491400; Thu, 02 Apr 2026 01:11:31 -0700 (PDT) X-Received: by 2002:a05:622a:54:b0:509:2858:3c63 with SMTP id d75a77b69052e-50d4bb5f1c9mr36507241cf.23.1775117490889; Thu, 02 Apr 2026 01:11:30 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11:29 -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 v9 02/13] ASoC: qcom: q6apm: remove child devices when apm is removed Date: Thu, 2 Apr 2026 08:11:07 +0000 Message-ID: <20260402081118.348071-3-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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=TqLrRTXh c=1 sm=1 tr=0 ts=69ce24b4 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=WbEMVPVtDBSXEMPt_8MA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-ORIG-GUID: S12wx-5rP-9cRzniC2kBcSUIXpAhdhwQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfXxZzhoPg2JQ2K woy9at/yrP07zN9gA01InF8qZbbhXJY/WfWz5Ol0PhhpdTBI4szpLfWN5FhMJCFDvDNz4M9rBTv 1xgQLwL5bu4Y6Vt5rgbjRuI4DxyL0ujpnI+zfntRGD/xss6l8++ROZFKFTDvpq/2S/vVcL7RPpP cupV5MI+YoVTTUS429azdSxvUgTSi6kSzAphJSP+6D6Ld7ECWKAQnymiTg2EyUlpVXxJJTyP/N6 JR2RfvpIwbzqbotp0B5R8WERcCt54vNHspDY0dpZk2nzh7QTwZJmVAKQpyntfzgiKvLbcSB1V9A KbRbs20Kn0zcrj2axOVzh09KgGJMyUEIiI77rBQNUga4Tvw+U8FT1A4v0xIYgB0KlvCt2OAMlPp lTT8JeITVT3pKD4aU6QuRdNoCIv21IaFLk3z6RWqmUyl2qFYV0s+DrOelENxovtH7cuH5r6xRqN 0oaTibEWreRsOQeKusA== X-Proofpoint-GUID: S12wx-5rP-9cRzniC2kBcSUIXpAhdhwQ 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BD59A39FCB6 for ; Thu, 2 Apr 2026 08:11:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117506; cv=none; b=MukX6SVoUtVIB5qtsxkZcD5HVLP6urqhlDZuGRdJGgenWThdB92KaT27/pST/CkT5/QHIHZmGiUAyBPZh2pyZowwhhzsLlhDZryjFuUZEBSluhzBvvC0LfdOPiilTdRH7gBtlWnnNSFLAvrQP+QAVuJRow+DbLPXVon9/n0eTSw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117506; c=relaxed/simple; bh=6jShP5otc7Z/xglFZY5mqaUqDhEckaI1JOm+jwe6kcI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Z3t+YZxma9/nJ3bcvnzKaEqtgrdD48Gev74vlIegsddbb0PLJ4bhQVt094W8LV3wphF1jsYO9zz5JBJ65qJppepO+x4O0b8I2WfpfQx9SCkryMu1pd+sh4jSRNCBilt5yATmDBICrV8RnM4G8gwXuEoIwOsF4B6kXmSHDqWLQsU= 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=S2+HEmJ3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SkPkdTXs; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="S2+HEmJ3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SkPkdTXs" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6327E4J01128392 for ; Thu, 2 Apr 2026 08:11:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=xKWL+GAYqNp +tTujHQMkzR7HCGoYVVs3sPVjIKR0hiY=; b=S2+HEmJ3crj0wV11XDg2YgQvH18 a02FPNaTVFkTDaGhtLm4FWUPs3Nbt7ANG7Hkh1PJDZF5AoK4AcDPQinGI7LYvZOh Cw/SytMcQZtiaYuTxanDCGCaibH69gLTwZOO0rNCjwOiKiHi8UucFWOMAXhkcMm5 Bsy28+ZhrIjSXb1hyDG7uZdmZlaZAjCV2B8PvzRMNzjTL6t49fBttl2svAOTCLVW edkJBYXnz94tJeD0lI//5WF77q+5i/a/dmeHKA1LC/suuO4a/1ATBoYcyKWdm8SF o5ppAWx5uuYaWrFmw7koQ+RxeRMJKv8XCXhaTtJuJpD8Ttm3JN7hWwpwHbA== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d96k9b1j4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:33 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-8cd722c1a69so150150485a.0 for ; Thu, 02 Apr 2026 01:11:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117493; x=1775722293; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xKWL+GAYqNp+tTujHQMkzR7HCGoYVVs3sPVjIKR0hiY=; b=SkPkdTXsRsBIsiUJn74uHNoSYimewlGu1IFheNZgq3SBDXK3nvXVijHDUlvnL+O2mv ZphzAGpVlv6Tjun3k49MPq5skQVK1OOjtUbqL9U2eaxWfuj3Hq4wjWpm10w5X+/ATAaa rsUN2G6HFCx8E4QeOBk6d36FiDM2buSTH98I9Y5b8VcPDyNTCgsokWIJHa9wUTRm181L Q7ohXy/bkZbXplBKZHzkPiOqDhcXde20Zevnuv4fxwmcZ6trRNS8wpsSqRdsRY2Sczi3 EMvaHaDxsBoNZfsXEGAif7i3EZgAHq+DEcrWeypfRmb1EYvK6NrdQTzUqbFSFLpqcSvN ex1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117493; x=1775722293; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=xKWL+GAYqNp+tTujHQMkzR7HCGoYVVs3sPVjIKR0hiY=; b=j0HC/0Ccy5uMeza4+wkZyCIVN5qZdpJq4IIsRxzYaFfCkFLm8bjdsqsY0O7lPfufr3 Q0cm1frQK/NyVsH/1GgL+AHjImxj5A6Yzll1cksxK0NUUnjUuKInQbO8veRlg5p86AZb BSe+mtKpYFuKyVekDOKx3bgJ5SYmSQa62tfKjKC7gpa0fE0/i6xZJvZmElpXxRV/hIqr Varm8HDu+OUdQ9J2b7XlCqAww62M95QzNImy3UDfzcw+dasyhikBQKzysARSsbi3xdsq pdO9Sa9cHK1iKDhdfxdV30XxDFNYEHZTrQr7EUchYPIDwZcGm9UAfFyYi6redl6cO1hh ZW2g== X-Forwarded-Encrypted: i=1; AJvYcCVil07z+z4zUJ8HPlIQmHzJTuawnwxmP89tC//VDpqIbJHuqL5SSROY3wkHGBzH4DG8A8mMtSixNvJ3Nj8=@vger.kernel.org X-Gm-Message-State: AOJu0Yx5u5iY2uDVR4uru5scWzZqVd4MZjg1xRFxITTPhmyWmAcSIkEO qPBCzdJlOqf0/AHvGS+70z59a3z5M+zHAs82ckvcy59Y+vk2/Hdtx5i1xFp17tnD+CpXKT/emtU HGwlfgRk2QpWdY+9xSpelpZWYhDztS4lTDhhZzBQzmPluoHEIr8d1BSRsyA5NcB4bNDQ= X-Gm-Gg: ATEYQzxntoZnPdC1xy3QfTsiDlNxyRFJKUXSyGjaG8ITccBGu3oje3M4RLxqhmzWC44 GsYBKhYKR0mkuFiYmdTSCiOxRngrngfLJKjVpwn99I+IgGOuUdQzG2BD06o+ajq8euWP3INlV8/ czUu2PvSRKHdAEPBXYOeEAtYske2WT5N3EcDxTidIgwNRYf+u0D/rTWBm/aZKsYHwceIThqS7LJ 3rAIQiZsNaDK1ZYwy+MoFwWu17I6zaNgsl6aBvJCydOLCtEcFj14ELiXEikFy/44rq3MBfVeqbO l9DLpdIYMjS+gbysDpgOCNPH4wgA9rg8rAu4LACH3UIIFxvdNXvolDbcasGZfWGh9ATR8VgMcFC fWiT74gFeKvCAicGDVRHHxfVGMMGX4j5Js44FXI3rYOhUzUfxPKW6hSE= X-Received: by 2002:a05:620a:44cc:b0:8cf:d804:4569 with SMTP id af79cd13be357-8d1b5af1029mr968085085a.23.1775117492948; Thu, 02 Apr 2026 01:11:32 -0700 (PDT) X-Received: by 2002:a05:620a:44cc:b0:8cf:d804:4569 with SMTP id af79cd13be357-8d1b5af1029mr968082085a.23.1775117492486; Thu, 02 Apr 2026 01:11:32 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11:31 -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 v9 03/13] ASoC: qcom: qdsp6: topology: check widget type before accessing data Date: Thu, 2 Apr 2026 08:11:08 +0000 Message-ID: <20260402081118.348071-4-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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=doLWylg4 c=1 sm=1 tr=0 ts=69ce24b5 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=5HTw2GpdgXbBP0wXRk4A:9 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-ORIG-GUID: BW5qsI7wF7QIbbin75fUz4Nj0XfA6PAC X-Proofpoint-GUID: BW5qsI7wF7QIbbin75fUz4Nj0XfA6PAC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX5OUcV6hRH/TJ C4T+1XNJaX5SUr/KZNMBIcVJygh1XAMODmArV91mLrikGeUF0cIIIQ04od2+tYLt7ghlSPvpIeC 0Ex2+Q/mRUPwkgsKx5qpGGnoxbQjGkEVOyDcSU/tiWvh7jWEVsdGX5BVNJpz6L45QO9QAnnZQOz XlUfECQXIEeCxMnpZ+OYzJn50CzF2+MbioekiocKEC0UiCghnQ7b5ylWx3HT46k+eOBkCTt5CcB 1HF8Rcji8GLnPB8S09Z9sJxqCM2vn3MsAkp1a78vFS9eRbYRJ2nV1lwD0724s4gjzVjTtZrFKcG IFieMijmZxKWXJUwKkzAYZJ16Y9Oft61W23itRMijGFunT4WC1rWH/aa0qO+KIxkxCYInolmtVO w4p2J3dQkAlNqDWXj/LirmnlX3fqhvTIDs2EBjQjIUiqLYSlhcwNwjYc+ax1WRWy5ze7Ouz1jwH 4m/4qq4hi+ZMsMRw6ew== 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 Content-Type: text/plain; charset="utf-8" Check widget type before accessing the private data, as this could a virtual widget which is no associated with a dsp graph, container and module. Accessing witout check could lead to incorrect memory access. Fixes: 36ad9bf1d93d ("ASoC: qdsp6: audioreach: add topology support") Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/topology.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sound/soc/qcom/qdsp6/topology.c b/sound/soc/qcom/qdsp6/topolog= y.c index e732fac9b8ca..1f69fba6de26 100644 --- a/sound/soc/qcom/qdsp6/topology.c +++ b/sound/soc/qcom/qdsp6/topology.c @@ -952,9 +952,6 @@ static int audioreach_widget_unload(struct snd_soc_comp= onent *scomp, struct audioreach_container *cont; struct audioreach_module *mod; =20 - mod =3D dobj->private; - cont =3D mod->container; - if (w->id =3D=3D snd_soc_dapm_mixer) { /* virtual widget */ struct snd_ar_control *scontrol =3D dobj->private; @@ -963,6 +960,11 @@ static int audioreach_widget_unload(struct snd_soc_com= ponent *scomp, kfree(scontrol); return 0; } + mod =3D dobj->private; + if (!mod) + return 0; + + cont =3D mod->container; =20 mutex_lock(&apm->lock); idr_remove(&apm->modules_idr, mod->instance_id); --=20 2.47.3 From nobody Fri Apr 3 16:04:13 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 4715E3A4520 for ; Thu, 2 Apr 2026 08:11:42 +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=1775117515; cv=none; b=XeT2QIigyWMFEYRrkuhjeMDtNx8CsIR4ok+P//5VA5Z2XEd3QxcBg1i+XU5PqBdMkI1krW/dvI7iDqzG1K4Q/od0l2fIu7207De6sgUxxiTJEX43jtdvzu/N9jg6cQRiPfD45IfwiQrnQjwUMdWk/2hTmiyp2g/INsUIIHKzxDE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117515; c=relaxed/simple; bh=Nn5W6j2KgfG3MXrQpHQ1hcxXhxv/yUbhKAiv5Knj23A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Iu9vy1TM+EVK5F7a8AwOMBDozgv6MIyjb16ZgENxbtnDmD7UusHGaqDEqU32u2MlWDA+ceibtCwO7G3y+TZUpySm8gv73A/AcYhT2UJrR55wDXBE7zr6sclh7noYFZY0EZl/M/LIw7NWGAcBKiqcMatpziRjJB6zfdof7MUT/vg= 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=VunrPcgz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ax1EiWH7; 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="VunrPcgz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ax1EiWH7" 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 63271Gqo3746099 for ; Thu, 2 Apr 2026 08:11:35 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=VunrPcgzCR4Khhq5LSz9P3y5QWz rd3i7ujxBJdTYvcqnClTpViVW2hCkxj0siCNTQmKHHrJiMNo86Att8TNMcEMV9KY 8oNUeU6gaxrC+uq3T+Wo56M4427r45hc2qLxYjK4WWYgpbmgNarClxWyQfeJHFV0 LBVpODUNzfsA/qekN0Ti4c2YE3E4Yn+EFOg/2v8VuLE+dBfVJKAW7Jyi72OQmo0b AmtdYp9wjFCTQBNiBQlyUUQ3tqds/b4Zsr79+hdimJdY+wXayXiEujNRJKlY8Rry EOBh2O26HPZffO6iy71w9w+mRz1rzdk/2Qb1D5bq9Ci4MrAt3/aqQgBsUcg== 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 4d9324m7yg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:35 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50b878a8c07so11986081cf.0 for ; Thu, 02 Apr 2026 01:11:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117494; x=1775722294; 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=ax1EiWH7sS+miN0M3o/OGtuXIKfiJrkJPHNejtx56wmvOv8ZP9EGs0IyqgCWGAUsbw kcD4pXhDAE2/jZMbX4HzO3SYW4OZn+adGyo+YC/CdynJoSZ01/MIYKMIlmtY0a9tc5Vb ApX909+XWEmiaxywD/GmrB0b7W+4OMFlrmrcv6+uJrSGycKs1YvqA8ZHxBfvb9ergjq9 3owJEckXynyL/gWDwpHu2oJUgZ/vT3ictMWgLmtd4bJ0seHfzmzZs8QoVG+6+8RighFd UMGmtnQcVAXTJOgkaOMkkKKIq1ZCCLEIdfV3v1PsaFJvWHQerBqXgSAnpKqKZuP2S4A5 TgqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117494; x=1775722294; 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=UCYJEiwbM13gXoEyBg1dfG0bcaUD12EuTUW6gv23NBLhEpa7H9UMeNABnqO/hjJ7ME J7BbURFRlPA53WX3LinlnXtDwNguUPQxPdv7XwYPooBfnvNEdBgSl2ERWm3kLHnbpjNt 6ap0sUdIvxkrn8WrXVjVp7e5X4YI37KaEO/YkELwOqbpPrzkpM1bVTYSCzDCFjCaIibN oVHh35mwjyMawJZ1BQ5zMvWW/9ObMr6XjMzUXcklbHwaXqFOIx2pKuA05NDDhY8iVACX PSYG10kgR24b8pZqXN8LvgzueTnsdGDgJhI7U0AGZjJuABU8oEVjHRb5UNHAMo/HpO1T m9sA== X-Forwarded-Encrypted: i=1; AJvYcCU5HK+vookQc7Uqc3IgIzJ+Va2eadW9EhcsSosbp2fFz/EYALjQnwmLOb0y1ZaxCEM45aF/l1wpTY4kgZ0=@vger.kernel.org X-Gm-Message-State: AOJu0YzXBuJ9pgFr36l69oEQkbEQuRispiFJ/2L7SXXt2pwMLcPzM8yG 2SfYb5tMy3fq4+PXBDJaLQPpcI/50YyqH5XayKa+yN7GlTelKNBwB+ROAGsY9KrH6W9BOR3ldu2 LqAuOMIkzW19qEUK95gqHioMuf8XtJCNa6ZMCYmBNJwsHz3OA0ng7eMYXoOdjm/OZPGk= X-Gm-Gg: ATEYQzySKvqlVhcDX9N7Ke8no+m+6B/XwHTt4OCRAsEI0qAZOxI4+vsjMZpCzF2oHmW EbFHKWOm4MF1h9o13BfCaeai7p/1BsZedoQdkzNM1eKQAODB8kELnmvA7IXBFmSPjwklyUPbcDM cGe68QhNG9z5e1y2SOqxrPAG8ekrAQvhnmwGlUo71atJ6BkB5N5qfAkGCYpFslft56Va+J2O/Fb 5pYUuSvX0/jX7gOWyaDtUjhofOCq5WkJjsEC4uGQc8SyFgnx6QHKTw8cnJuxnYzSrLmbtXsorqv EsMC6+b+5+r0/fpHo7/O608xJBNt6x9b2BVbRhgswdYyCpEI+xpvZn2R4/a074nlBIuQ329dgdb r6hYR1tKxY//i2oGU1BP+CKJkAzUy7aOE/6hnjvLv6Wp6MZpxGIy58lg= X-Received: by 2002:a05:622a:1e89:b0:509:1cf9:ea09 with SMTP id d75a77b69052e-50d4c1176c4mr34007041cf.67.1775117494376; Thu, 02 Apr 2026 01:11:34 -0700 (PDT) X-Received: by 2002:a05:622a:1e89:b0:509:1cf9:ea09 with SMTP id d75a77b69052e-50d4c1176c4mr34006791cf.67.1775117493979; Thu, 02 Apr 2026 01:11:33 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11:33 -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 v9 04/13] ASoC: qcom: q6apm-lpass-dai: Fix multiple graph opens Date: Thu, 2 Apr 2026 08:11:09 +0000 Message-ID: <20260402081118.348071-5-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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: arKDbZ_2P5ZauvMZngsiOcNscKsJllM5 X-Authority-Analysis: v=2.4 cv=TKBIilla c=1 sm=1 tr=0 ts=69ce24b7 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA: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=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX2TdNsSkGv2Cn GVEUsX2bPcYp3rVU99nIZYJQ09T87sKmo9Ktr4PpDzS4cYrY1OmiT7y57o29Mro8BQQOeLRDQrC O7N9O+Er8EPv6cQHrWT+wNI/wMTl/VeLELz8qNAOSTP5WIwyKT6GvueRuK9BzZY2Bx/E547z4+X i8zB+CaSb9oTokf7MMrJnLXtcHLtyfQSgP18ORWHTTXzH/lr0NrLZF539kzXnzjH19OLTY4aGRj oLvO/AbJTJc1lkz7ue+8fYEDpMvXi+8c0p6UsnH/Z7FQAw8GlZTAdlA8fil6VrpIu7q9knjxrvB rz7zEggJUHvdac98wiJ51gvljld5OulLCF3qFfm7ec0rni6QrDGDRN2TnZRQLxT3yFBtCIPi0fG LLwCsl53rp5gTjPw15oLw6+wwsXAyUh6lhlkfY9toBangcwmSswSF6hNO0GIkjV78oCj1s2oXOf KskpXik/TWOlgrapQcQ== X-Proofpoint-ORIG-GUID: arKDbZ_2P5ZauvMZngsiOcNscKsJllM5 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 22AED3A4501 for ; Thu, 2 Apr 2026 08:11: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=1775117518; cv=none; b=d+QCRsb6PHcsG6VHos7gVnwsDTd9tlihA9lFcOZzswZI/wkATU0MBh+3xD8EWD7kFUfv7B3nv4x1TmSvvBlyyI/M01FYxz1XBLy6SC+XxQYGnThFluUjIVQEGf3UdaQiaFHsC7g0JzcoEt8isy4YgMV8IVkJp2dMpoR8DEjxTE0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117518; c=relaxed/simple; bh=aiDV+ay9pDagfXi99dECc3+gFHUApEvFgcp/SMLLkOQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WeFnAZ2Jimu712nfWvOcapSaHTPzse5wJhVFPWWMm53gOq9/M9BH3vsn6XP4m004CZMT38WF5gnJskhFGg4ODH2oZ03NGCaS8thYL9DAfIve6vK5Id2PC61TgRnH3tNJSKZ4Hv+OQaIPhQgdbysQbMfn90FvARXe+E4iLqp+dss= 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=QVOh9pWE; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=R3kuIe8b; 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="QVOh9pWE"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="R3kuIe8b" 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 63271bGH1965112 for ; Thu, 2 Apr 2026 08:11:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=yFv97piS34p vw8S7ZuPziYbAwBwFldQJ4NalWJR5jGw=; b=QVOh9pWEICPGgTVQyCUf2lFQUB3 /3lHUE8RrAhf1r49B3XSffGuoEHAWWsQ1tp7fV31ETW4u8Clx3bL3vnhauJY0P3B YtWDeAS3hwXMj3EmEfFVIdye/XfKu1KB4GWS6jEmz4bHfyUfy5hIhz4JW6j/2O7O p1pFOy3NT4JtoYhBFwFYjfHfrqtdkucq95sX1a5IaPuoYdtGh/WwtutHvD2bP+l+ wLoE/aiWO7Q9KycepcdLkYu9w3ZZRuDzb/KsmpHXFikQ5hWIQ5JOV+CHlzvTLV29 2EwTfnpAN2j0umYyEKwGPkgr8U4jqSsK9XP5vjfPKHWMxhKqNRvXYSQbr8g== Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d9b9h2383-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:36 +0000 (GMT) Received: by mail-qk1-f200.google.com with SMTP id af79cd13be357-8cfdc479f68so68061985a.1 for ; Thu, 02 Apr 2026 01:11:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117496; x=1775722296; 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=R3kuIe8bKjjXm0vU2ggqOTTFVcPQ5cQefR1J+4rD9jfYqwyoJ9hi+X4RJC3iJuixgm WpW8WKrhmUuSe1m06UhwGf8Q3cydwEZo89sVzHjdF8gCcMq42k+OO+YGzpJEp9wJqYV9 3t/0WSdXnDX0Ljfd1DQD6uLZyZiPwu9Pw8bY34TCoeTGwteH07Z21DgM2nXO2AWQFp4w DxIV/1vNH9ZuBq5pDtVJC5L5KZAJintNdxLh95NpPweiu9oa9E/W2CR+XtK43PIBpDdh uvnGqsfxBY5moTaGg56+pVoCdpTtkkyzJf9t3HC3kZUVM3Rba7CLnkeLZUtpyuILJ7WI adhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117496; x=1775722296; 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=kDmYygShX1omi+/o5wjRK92gJJyYpSr+cTKcMjvmV5HbzlAFJAWNpMnuihvhREsURu Bcym2QpSI+9qpS0crbMa4SdZ1n3hJFxSPVMHFfSXHGoFXuaHHA2FOvLxwSfQW2Gjy4G7 oi/Z2KDpBudrme3b4E8pbpJYhYE3oGasTQQOSGo+79xA8TjRSS+CWEwdYeghVW08nJmz IFZwtUGuXUKPNVGfVyGumqJ6VUudBSoSbjrrqDo7rXTfzwra4+oWTQ/iqiNkltcZlvJS PeroRhlIc3d+pvXIMqAr+USMayF8alKnHodxoQawgWEPMNiVgjjRnWLFLX4MtNyMEGE2 QHWA== X-Forwarded-Encrypted: i=1; AJvYcCU6P/5IUnKC/dU3zc6MRKSmYu4kWH+yStNGKxaG5MdZMhONmNqxdMc5mP52b0gK7Bf9Ni7dOqfk3N6dut8=@vger.kernel.org X-Gm-Message-State: AOJu0YzdpBuu8IE2tcQvBrnnXNNE0wNqZB0Fh8VQN3D/wmWPWhcaked0 71m1BZBUTg2CZ2/xwodgmmV7/n6lDCjo18Aas41JXjLseZJ7ASwAlUB66kw7CPIvCy1iSARWwy5 aRpXZSz0Ry286Ca+oPZ2faTnYCyuiCu9zVK+AVtsNCDKo00Pg8sHaDfo4FcSt9cvnsUg= X-Gm-Gg: ATEYQzx3INMnaswtmkmy9EKU6E2Jc5ZSQq0v09IaZD4zk9D1CbER34n+duPcNGBJ4be Bn4gj21+vnlok4jx753drLT1OWbYzsFiFSHFEjfHlCbmnmW8qqTZyJ6c6VlrLuYLKDd8R77dw2A MHvGed9Ul60ycQVTtF7YNp0XUThYNQiJtSKDoCuQHQB4SsS46xGuvLyRn9WPehUJ0Tg1GYg40S/ yGMHYNbQRxkyEIgShOaC7JogMmgj7gAzzWshxuuVZgYYhF4uYfE/GPmxABYSqRFd5bvQukYSNuW JgY26mglSldtLfpaR1paofngSM5R8WPSD/Mn1Gx1Y21S7VwoOQGp3os5uSjUrfwmUxjpIhh0QnP VpwJNkxjWTjQEruuEYD3vrtNm+J01bZR44wUmZQUbCz/EoLBvvidX8DA= X-Received: by 2002:ac8:59d6:0:b0:50b:4d74:6614 with SMTP id d75a77b69052e-50d3bd9e18emr90671171cf.63.1775117495856; Thu, 02 Apr 2026 01:11:35 -0700 (PDT) X-Received: by 2002:ac8:59d6:0:b0:50b:4d74:6614 with SMTP id d75a77b69052e-50d3bd9e18emr90670831cf.63.1775117495403; Thu, 02 Apr 2026 01:11:35 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11:34 -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 v9 05/13] ASoC: qcom: q6apm-dai: reset queue ptr on trigger stop Date: Thu, 2 Apr 2026 08:11:10 +0000 Message-ID: <20260402081118.348071-6-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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=TqLrRTXh c=1 sm=1 tr=0 ts=69ce24b8 cx=c_pps a=hnmNkyzTK/kJ09Xio7VxxA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=w9bA4Yi6UXS1dLCTJJEA:9 a=PEH46H7Ffwr30OY-TuGO:22 X-Proofpoint-ORIG-GUID: 9gwltyYIWZH90M4PRuI0nC3SOIA_Lj-B X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX0pjLCYGvZPZ6 OUurTAbEaykF0fLzIedLoDhBtftMkdjO+idf1Q8tot12HAofxCUwui2gmRrIOU+/5qRJVHRhPbe edVs22Sd1wwtv4wfmL1cT+DSZEkfo3tBfajmA+BWKgPB91JxQQGGcZuh2bKHy8Qv8F0nqjVt02e MOrHBIHZCtPpH2PXaPLkPDMryvPn0szPVnKCbmD01glIZMljKquLzo5NyIPrM3/ZXQI0F3h1zNY Aow5lKMSNUX0P7heCYvSW21j0CPgUdvkRBvocqCjvYONpbLQ2al4F1gs1DiUVTJUFckvgHGxU4Z Fp4fxDwIGKaJn4MThLA906CMS43hKgzPsVFXVJQBKrKS0xFfpn+hfJtr5rzXLQVJErCWW+0EwlY 9wolm09DB246VeKzf583MxTG66/xTzAhtKFFBRX3WSLS93E4X1S1+CEcxBWPIm1nkworqVNLuRv FvH0XOVoRsNkIt8BRPw== X-Proofpoint-GUID: 9gwltyYIWZH90M4PRuI0nC3SOIA_Lj-B 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 clxscore=1015 malwarescore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 30C183A4F3B for ; Thu, 2 Apr 2026 08:11: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=1775117514; cv=none; b=nYFw8Z+QtoatEIbgE4GyDFlnYxFygJ/PN7vVtJETGsn2XG/Ml4A72dTa00+taBQtRRO9O7yCxB+PtMUYPqOQZtT6hKJEThDwZkDdZMTbmWRNCk6QsEZQ6JNDII5wrqfZb5+TKlOaA4qOJrrnpdflm4Eqok/cHFyEwXFBYAPGiVg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117514; c=relaxed/simple; bh=UZ+5z9w9M74tpzVL8QkykGNl8XDOPEb0MSDzyxWPUz8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=umV9GX2oXnhLuoTUi/XLGD8ZVUyVmiFBDtjnnwKzYLk54sk6mFzW6KBmNwj95io7dmFSi/3KXjip5NDZNwl6SRm52uWP25U4VZJVadMba9f5TRxtib3zY8pX5NXxfywZTgYVuGtoZzGCeKsII6gpX+39cm/ul1uNSfqoQg5nrhs= 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=Pq/benq1; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iVwblm7l; 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="Pq/benq1"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iVwblm7l" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6324R5q81551875 for ; Thu, 2 Apr 2026 08:11: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=Z0SMcOHJkzd ixiTszIUCToSc68Rmc9ZxZaPMuZtsp78=; b=Pq/benq1fMfs06rJ4mb7MY8GXf6 fLcAdWWZEd5pBl9orliEbPL+kaBBJb+VwJAI1s+uohaSUVJBylRMT4w284RhvVzl 9DOptNnzgX3KYR/IewWDTqbUk4lEZKtz/W1LC7EHnxcWszoMkO7pD5kVfVINOW1V ZtejkiYD6DlT5Q1GmFVv6dgZBAbJrCegVxqWsSjRlqrDtW6+6fqQvNPocJgq4CGC QHMEruQ5lB6ae8AmiY9qoFlIJaPp3pUyBBDgg/vxkVv6cYPBYaO/THWyJj6onbaj 8KxJvBGdww4bBHdcOqa6qmhhJqQyFCStYadk/bo00OeFsjLqTypY7/baeMA== 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 4d9heerwct-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:38 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50b4fe4ff7bso2369401cf.0 for ; Thu, 02 Apr 2026 01:11:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117497; x=1775722297; 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=iVwblm7lin8s54c1pQp70VXfrqU7+0p3TcYvC4nlwDPEc3IU+XsgLO9Bkr4T6LiDTZ pG1EzWuVUo4/KF6Ju1+mB8TpfrgwhfRt1SOhtb4ozn8l8Vjq2xrkQ1AU5f50B8LBrCJ5 UKozP/wQ5rYnT4SS46Y/KlxmaattNzXvUKhZs9C3a2uV6YoKpvVoL5cT+ORC7mGDoy2I 5YGPwlExBQdLAh3g+sQtad0eh65WImVvF7gkOoK2HBNijBVX1Jy9Q7hHF0RFHO5+075k dfQrMpHeBmcROSxijXn6+jWDr9sQbAfml3b1OdcF6UH+nbA5OvkpaGUzQeNE26MKYqN8 p0XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117497; x=1775722297; 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=eM8zsrGu85p3p1bjILyKMLftiQEdQtBAFo1o78zfUt7NBGMUwr3FxwSGk6mFK4X1IV 75EG/kKwy9991dyoJhP36vJFwFWatuE6V76jwJqyXclvqsTHUUC8cE7wC/V2AeWFUjjp BtJavYDPu5PojMKGDLWxgcYxjyNaTlj9QMu8FkPLSaeTbgCdjcIMO+zp0SBW4T9r3NC4 jm/TcBWbka05g3Ixq7HiuA75AHOWQLUVqw8kNJo6+5oBpn3xjl2R0XiIl//9DcMR7Bx+ AZaURzz2L3K8dr14y/xkuYMR+LQTgAwPI9geTd837Z29lx0wJtCCZ0RA5XA5aRBZrxLT HGKA== X-Forwarded-Encrypted: i=1; AJvYcCWTcnd+9C6Qg/icUZ04htZY9saKtpqTGLSmQLn+V5eWsn9t2XE6tVhVrX/wMVxKbkuqkf8Do7aOElCmo5w=@vger.kernel.org X-Gm-Message-State: AOJu0YystHERVWR8SrwdpuMLA+U+8RRPl6jk5ormcg3K57md3pTPUQQ3 5MDkcNPH1aVbOWtn9S+2XHCD0cW5MakJAkGcrvkrD8guMH9cC/lKrtGrJhPX7vkjA0mZIBvCeLD Yfhg5D4SPr8iAda2Mp1702nazQVxGAAFckJG4C/omT64STlzp/bxwvBN93z9gJI1Mz4k= X-Gm-Gg: ATEYQzznqP9AGMhroJY3BIbnc6aq/enXYDxWyYNQdlFX3MuI8LZMYGog5qNc/ACFXDj BWbNEDubUQCMTKTBHcXqywWFn1fuhxB7kZvCkakWt+Knr1vRQ8NOjf9/UfQuXDLUb9OdwqjhAcY 13gQtM1e/l+oUeW/SL7DgnL9IwH5dWy76tlYks9R+yHf1OniYkTwV9WyhwNOQJkeNr0JWodFc31 MKW8Lo7cdgPgy+zlgVl4sbROPNv3kn6JzFW5KDB/wlvct3pPH5c59Zw1Lda28g9tI9PdpxZtb8U Q6KgadOZTE+g3ikVhg/QTxvA4Qc2du6fZcm0xztDmLm4J2CB7pRfGexJa8GlhDu95BKt3clXhH/ rPr5nsVUOqMjuPmkrxKZFbjvRXEtmoro5MfJ4DTIqthLoLC/D3X6TQPI= X-Received: by 2002:ac8:5a49:0:b0:4ed:70d7:aa5a with SMTP id d75a77b69052e-50d4fc18047mr15913571cf.25.1775117497409; Thu, 02 Apr 2026 01:11:37 -0700 (PDT) X-Received: by 2002:ac8:5a49:0:b0:4ed:70d7:aa5a with SMTP id d75a77b69052e-50d4fc18047mr15913351cf.25.1775117496978; Thu, 02 Apr 2026 01:11:36 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11: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 , Krzysztof Kozlowski Subject: [PATCH v9 06/13] ASoC: dt-bindings: qcom: add LPASS LPI MI2S dai ids Date: Thu, 2 Apr 2026 08:11:11 +0000 Message-ID: <20260402081118.348071-7-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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: u890fIJ6wDQ4Sp12wwwSPjJ0Cfke-GKA X-Authority-Analysis: v=2.4 cv=VY36/Vp9 c=1 sm=1 tr=0 ts=69ce24ba cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=6P8UuP444nAwg2htitIA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: u890fIJ6wDQ4Sp12wwwSPjJ0Cfke-GKA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX1aC5zhRMvTRi Pf5Fox5D0OyBssasTngJ+cd8gCRq8QrvDpSyDwHPMEGZOJtSQfHxE8OSnOQ1ks6+7BPYnhyrWzv luOe/zw0Ozv5P/IIM6ZyXDSAX1TOUN9KSc8OOvx2mOQWpsVSyPscIfegbZDZZFyRYLI/Y7lmKB9 eDt0j9RTgoBKc51Vawp39JJA+DdleSiiAC6e3uXO15T4TDq07M4Wd+i1Nq/DGT1LfY6kVcKmfGC DKZDAPZEB4LCGgQ+bcy/uwPCiZPLHDGkU+Xg76EC2NPn1Py+SJe3yGKOtziKGgMfsikZv9+Etlb w55iRhp3RaLU0d7TPzTdCmo1nZaUs9PKP03daLZ27skY2wwINDeFn5yjx/Dq8sNF17xIq+xNgYQ VQNtYViVzXC9nmMIXKQKWiUmtFre5oJBBBJECjuaNDJEfwzBi3MgvjqXPENyhyB2BnJZCEIRR+s 8dbuL20eW59yoaByJ3w== 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 spamscore=0 adultscore=0 impostorscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 0D5C039FCDD for ; Thu, 2 Apr 2026 08:11: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=1775117514; cv=none; b=NP7ibLV9kbm5YQNLULf/mos0E8chXNStpPh8TWf+ieTI2445Ap+KIxNZwZMJWVjLc3/DPTNuZasBUsmlw0aagP5oVKbzrCK3GqjkIUpvptLPaLacAv1VfIMCeANOxCHSJc30yBxPruCtc8ZZ/FKgQsc58ingyzB4uoyD1IKb0Xo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117514; c=relaxed/simple; bh=CrLGv5edH+UZPIk9+prSCn/qT8iVjWiDSBnsGzRqcxE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rqOw1HAVmfLXbbrb1SwoqFHuTY1eBHm/P2HJlzTHta7cD7jgmywjcT4hRloX/IgPla/6YYxTFIyRK0AEfmywxmA7yYkkVQxB56uepF2h52tYtambgxg25/Imm3GjE9yoS9+oXoqR/E5SIsTPHoAVdEuOf/g+ROnFWs0M0QAo1Go= 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=Nu/TB7aM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Es4JROTC; 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="Nu/TB7aM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Es4JROTC" 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 6326w5o84010110 for ; Thu, 2 Apr 2026 08:11:40 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=Nu/TB7aMzjP/3OXLNrNULeF2mnT v+eTUU8pyh3TRGll0uqoY4XQdDMFoGT30QROIauWhhxVVMU1vUcYNNOlMCumf3JP sI7F3dqQkluY7eGKMG3nbuHGpormtghUWH3xRTNrWLc7ElxXYsqWF8A3WrQiQ+5h zopFFwREfl6TlQW+qxbFeKVwJRkofz1v3tk46FWCzdxzrg6vNUVMKPCvGLlZd/2U C64f9lcUkCdmU5lB4nlLc7d3h/EREq2tmcaxA/ZZtkGmgZHR6+yy5vjULROASM9i j+LTTOxFOJd/0gNxezd7n6H1GuquveRGvuq09H0YLpwxRsUbRPd+u1aJquA== 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 4d97e02y4g-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:40 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-5093025ffecso15245111cf.0 for ; Thu, 02 Apr 2026 01:11:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117499; x=1775722299; 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=Es4JROTCG9IuwrflzNkGMB9QO+ZMJmYj/tzI0tZf16wPC3j89qDaX9PmS+CfzFbTVH SP+qiSNoafS5RUKtoOSVHH/68IWDMcjBK/k1jWxqmg8KwJKDBEUgXWjWGPYHjA2JNMpc VT7d092tye9pUaay4LXOFVk0EpoEdtp0QdARMzI0NOr9lCcesw7MpqNbChiVZkOOYf6+ pEOTt060jGvF64z+bBfIaHkGPQFZg19vEKhmwywscUo05nrYFHAKlIJTXI8oRJu/1wBa aWs0tdoQDmR3eUNEuvL0uxVE+d4yUmL+H225il16qT6RPmrDJoUQ5uS9ckBXTLf4afci 1IkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117499; x=1775722299; 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=mYY0KFBgc3beh7Wn5/bBl2woStiHcIkQw+d71n5k36me/5xtRw6ZyOVnEVKzGAjPo8 SNU3/1ZSq7uxk9RFNx4SWpGW6OGvt1xGWK0sc2VfAk2sQulPEBwBw0MzT0PUUkSmx8Mm SYQlgGFh/oH/FkAjFYJW7+cSZ8yqwvse52Bw9m86lBlBtE5EwSQhxY5d5PD9o2rgBcgI La49ElAhLVNZv29IZaJLI+sFXLWXSL5Kn6FlefXTAgtEd42FJhrs1CcM7Hn10S2BHMR9 IvQPPYRZ+FjtQ4VJEHuI9VNQCZBYAeVGXV/V+nIk1AozQF2hyH6gyLpm5Q2kjhcvjpDV 53Tw== X-Forwarded-Encrypted: i=1; AJvYcCVTIRoXqZRJcgQMkeAuZGS6dk6/RJ4OU8z+Z6P1Jhd7qKNrp5Lp1dkGzbhR0kD7MEOaA/sp2eTPKNGP0vQ=@vger.kernel.org X-Gm-Message-State: AOJu0Ywwalt9bFlFqUXDs5S0CJApBb6HGXZni6W0S7XnotsBGLBcyAcw yqNzPy4ege7OIcx7tPp/VeybVJG1PI9rlpBApcOE6PP1OV7kBHD2aaadA+rfdMo2rLV3Xs5Mj5C r2J9stJAWj9HJ5FI1n21dGZSYR5yvHnlD97HW3Xglt0CriSQjtwQoBRJLyz5ByxXLl4c= X-Gm-Gg: ATEYQzx2/xh/FyLdiORqoocOqmoQJz5IHPR8fwwGIlxEyfQkdAO7z5cFCaKfukt9lQI n1HYpx8fP65Gm1SvS7qzxYPFXAjfApKyifVcG7iJ9fnMiyPskQUh6qy/Av0EGLp9RAFARNMv94o Qsm42nN+Vm2n8eHXwLY762em8AVldsepPVVqju8iLpyweOTc7A8d88nwzpYH9gTczjntvEXmCov QOUr+6ln5QeB3lymF73j5qTudGBS9G0kAA3JhJpwGBez83MyRa0GNVeHGNyf/yzDQl3Z+rwdVWb EJuAOSOEc5mOIwAk/fAeKZa+JXkAVxYR5NayiYaTwHzb7Ehb15Npubn4W9DQV5+oXOKbARIU7XJ vQqBvHzrCZJMm15g27ovSe61PLRkoxPhR6njulZRLfi/7LbvmNkUiBAo= X-Received: by 2002:a05:622a:259a:b0:509:379b:d4e with SMTP id d75a77b69052e-50d3bcd2630mr104809191cf.32.1775117498936; Thu, 02 Apr 2026 01:11:38 -0700 (PDT) X-Received: by 2002:a05:622a:259a:b0:509:379b:d4e with SMTP id d75a77b69052e-50d3bcd2630mr104808901cf.32.1775117498517; Thu, 02 Apr 2026 01:11:38 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11: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 Subject: [PATCH v9 07/13] ASoC: qcom: common: validate cpu dai id during parsing Date: Thu, 2 Apr 2026 08:11:12 +0000 Message-ID: <20260402081118.348071-8-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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=fdGgCkQF c=1 sm=1 tr=0 ts=69ce24bc cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=FTFSxu1yF2iZ1NjiFwcA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-ORIG-GUID: tgweNQmS4sjTbvjgRjUXlAqt3mJUPvo1 X-Proofpoint-GUID: tgweNQmS4sjTbvjgRjUXlAqt3mJUPvo1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX1q0jMXuExyjF MMP2fvKqAa6McmjNNKZndINMa0zKaGsb4UfJdafuJEiLmmPgLIqJWRJEqh3H/NGVB+OnpAwNbog YimleoBH32IrtAMmY+ZnJp73NUEoOzDUsPPj+Eo5YuliEcKdpo/P2QPZEMxQaAgQofrh+sxcoMF b9c174oXINxLJh1on7TTTJ89mIQhXXqKdkX6dY0F0unM5ye2uFMo+qFEANaqxurCrkH5gCiy719 MxsaRXlvP5OY9Ybe6PRrQxFIEZn69v9xFgHyUn21zKQoDP6hwmbC1jVKa7VVuqcPuowAdTPr/WE DWs0TV7NPfwSn6ybSamhdly2tENGFAiXy7fsOB6FW3L5tnkMopo33UyV5PUDwhmTaU0NqqyO7wM OXY2taXwLxaqrd2Y9tZvBDGJVll2MS2pmtosmeNrtdUVhmn34BVNsYk5WfkCF++Ji/9OnI5EHRA Vo8L1gk8RGaBhFabF2w== 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 714293A3E6A for ; Thu, 2 Apr 2026 08:11: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=1775117516; cv=none; b=mUNckUPQLIzsD9/POMWqa8d7cO6sCfBNxw1LAk6YC94Umhlb9D5nAHb0PO87A2Zph8LdhWJ3qozFkAu99XFtnS0UYbCB8YDwgBJ7wnCCO5voY37d4oLVZ50aUAEQjKNf4JhFLGg5i7ve/KODzlvgc/EVmsSFTDZrOUEynlymfqg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117516; c=relaxed/simple; bh=1AGWMMo+ZQ2MpMqgndQclqL9hoOIddPn00jRigW1KUQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jCbiTaBJKKK5eULJY63PDvqDbFNgh7Xjzr/OIUV9wEYXh/MXqGSyYovnVhrmn5wM7f+d9SIKG46zlC4wjwZZ23qvNYgpt0qQbKlcfuNDODZb3C9faoHvjQGzNbWhG3JVyRGKElca2JKBudUkrzTKrSBU+NMcq/Arg85stXLpSOk= 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=MbP/Iwwk; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GwyZMJGw; 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="MbP/Iwwk"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GwyZMJGw" 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 63276imO4009496 for ; Thu, 2 Apr 2026 08:11:42 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=MbP/IwwkA5P/60aFd8tkjI+Wggg 68f5Xrm5x+SEKkn0LU/wpgt+4NUM+f91z1TIPzo9kCj3cOstMHHCB6jXiKiUYbkq /NVKO9l+S06qVHNtd1Dm2D8Qt0j92y5Q2ZyQpS516JCUYvtDg0eLFZloTYszfOed T7Bkt8sCU4A0RV0jcrqa3ZEpLKkVmiruYYlFj+x/E4OJrwIkRJM9qHpEbW0USQvJ 7P2WqFdAIe/molFcmYx/V4C14uHOq4/r73ZjZHOOzM0mv8rvs7XxwFinF/xmUfW0 hhbEe6OR49yQeapdpKOkH9DircQ9gK6MQCTKJ5nQVF3dQBRHNRMlXnEQfTA== 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 4d97e02y4m-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:41 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-5094ba09affso16097681cf.2 for ; Thu, 02 Apr 2026 01:11:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117501; x=1775722301; 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=GwyZMJGwEEvgW7+NFPF1i1mnauSWVAq/vtDAcNaGZoj0yjUH6MLTrFjaihiYQethv8 OdRqshcj/accHSz+sH2jr1OJDhzhD1MoHVOZJCHNwqaJ++8y0SLWTeYBABAUgq+VwC3I gPuDTIo8kTUU+zniiXrp7VEaftELV2SBNU39wqQs/558jw8Bvn1xhrYxHlR4UQbbm87G gJ0wrXecT86fTi4l+KkeSnDEb3bPI0BVjfbUO4umZbGYh2wUc4W+L1bsS4GFXvNBbIOO YRl9KBxzpnF50tSOM8NKFuLgSLZqxuTSG7QBp7JWIIQ9n2ryowIP8vBn9dZSuqzcv4Yt rN/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117501; x=1775722301; 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=Z7fv7ASCHUkeGX5TjMYLULmfGHiBWeLBwtzo1yJmr9Il7DFV5eoR6dPhCtsqyeKaj1 g6F+LE56awslAuNnksymYJPBWuk8GS0S0e3d6ZCIBkP/PwqpS+goDigqFR7JJJu7Yagz kfMwQT4ZdjdzZnOT9GyfnreVwwC4RNhunFkmB4dBNn8lnd+kHN8iWp/31hs5D7MUA9n2 14kXTuKekf1o/6YBtZZl8pfIKBPIceIwIyi/tjWG8O1zvtgRp6tMoQJN7CgnSOPsWXT7 UQvwZPuwP850+q7DixRhxjBXRxnRZxIHXpKbkoFVZcP9/Njk54tj5Phh63kVgDneZpqh gb4w== X-Forwarded-Encrypted: i=1; AJvYcCUgH2gWTCqwp/hYuFTqEdwfARauIZqVfu7ivR1Dt7pQN2gTjkUr91KwAzG7FP1AB4NfiFqHZHlsYswLXOA=@vger.kernel.org X-Gm-Message-State: AOJu0Ywjm0wQRvmMq8NTc8wEIAK3mZcisgdfLNXr5WlymfTltu3KHrGz YbtUImmoaqGL5in1GudGFZfWPNaCTNHOdr7eGAs5jNTPhLkvKkY23OB7zCZeKb0QMptlPmsydqC MllPYejFzj4+W565uAMTNVKMdOlkxnPPi6qoNT1pj0dan0zp1IFTYNO2Mvg4ucmf61VA= X-Gm-Gg: ATEYQzxOWJt+lNlKMKt4NOVCmDyOF4xhRAeniNLdvy0JARSF21ci9XYmazNl41Li0il k7JE6ux2IXgFSm29HBBN3zxG7rj8gGIr2HMRYotOmwg1P9fPFaS7HgNcniq+/84qhGkxwq2NwtD UxaYdSW9EB/QUndH1qhmxEt4ba2k9ay0I8qGLOKffl4RNrRXzDZEUy3oYPKXWiuRm48Vzeoufuq 8YL9y54290DiMjWMTmsYypv5dGxQgZXQeGD57OKF2msEReKz6789+VtRkNFmRxZe6JTYgrDNO+Y C3SjysF7rqDaR9C58DbivEQjn7Ky1xMutRyFk/CuyWlZjXDhalI/egfmSCbHrjySRumzrwtPtva SSlpZjb1o9c1mVS3ENhOTLdOwe6cT0rKLY1GPFUpwPjYZoZTrRjBTP/0= X-Received: by 2002:a05:622a:8a08:b0:50b:7113:7170 with SMTP id d75a77b69052e-50d3bd858ebmr76936461cf.39.1775117500552; Thu, 02 Apr 2026 01:11:40 -0700 (PDT) X-Received: by 2002:a05:622a:8a08:b0:50b:7113:7170 with SMTP id d75a77b69052e-50d3bd858ebmr76936211cf.39.1775117499905; Thu, 02 Apr 2026 01:11:39 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11:39 -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 v9 08/13] ASoC: qcom: qdsp6: lpass-ports: add support for LPASS LPI MI2S dais Date: Thu, 2 Apr 2026 08:11:13 +0000 Message-ID: <20260402081118.348071-9-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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=fdGgCkQF c=1 sm=1 tr=0 ts=69ce24bd cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=nvRDalaNTaWZAukup-IA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-ORIG-GUID: akZcFz6vBMU2Uz9PZvspYJstQRaDcVQh X-Proofpoint-GUID: akZcFz6vBMU2Uz9PZvspYJstQRaDcVQh X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfXwy0GZf4Xb22l 1bBo+fznpjBnbYZCQfZjRiqTGcNCxzXBhelS1OYi2YScyjyxHRjnDsy0oTZ7LoiOiG0Aelr/SGO QuEGfxg9CsJezLZikYcA5jzkbXVy8ZUQDkCpjGjGjcHfMcGFQ2vV5YilHsL2lKpkxjpDaj7lgD4 jdI9Y/q8wVC/pea+tgxVbFyfOdhMszajOmB0y37lvrVruMgOQ3ZchnXhxnvbX/X1dT4ei3tl2b6 Nyx2K/AX98xcKqCv0Fins4L58DLjx0ON0S07mRIBLFH9Jlh0YfTQ5S0n0bnD2TeSp4jJeKzq2LS vflSNXMKR1kPfybcOcmrqizWOn45mf5+5zwJEQoK+019DDd1cC2jrK+kOMpC99Kh+eYupcoLK3g VhC1nOfuU0+0SBtN31kOZwCzYk0aJtQ2E3cZZG5Lugs2QLf6N4p+nBUNvvfX2dRwqC8pb6N6Pjr 1hd3Hy0DyNJF7kNWRqg== 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 DE8963A7588 for ; Thu, 2 Apr 2026 08:11: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=1775117514; cv=none; b=l5AwuH+wjlphqPaK5/+ePudIPuwpDdYCR+hpDxRBCrOjZUfaGFw1u9e3kb5MtrFTkxoAVJ9cwweX0O6IBuQWrHTLFsksbRicMpfU2TZDQ0GKBnTcxPkCd4jpzWvTjbGkyaRvt28G9JFcTAYWBbZuQIvo70fTWMB+eAavQT/Ck+g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117514; c=relaxed/simple; bh=DWuvTD8Cw0DUhqpHbWAOgp0+9q9ilBF02Exs71eghWM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=m85KyVsgTrGZqpcgMZws8KI85BOnFQYTkWDy4sQej8Ao0rrmIAsBMuHceB9yTAKyRSHmqXew5FKzX8EPKzNck2oLEt9Z4Lax4ki5MuwT692VUL/0kU8513uoZOVrrInzjOD5IQareuRRPl8vMAHRIF+5DdgPRggpt0KyvaPPx20= 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=fPW4Zu4j; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GFVIBpho; 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="fPW4Zu4j"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GFVIBpho" 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 63277iL43044208 for ; Thu, 2 Apr 2026 08:11: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=VHHn5cWjpEy VxsTN9vGBX+/Npp0nx1w8ZRbazvG1gDU=; b=fPW4Zu4jMGX5fSuB89qWmVplWE5 DaZAiNL3+05mBiw/jaBxulYaeXbNgRi9unSdJol1fJeCbjF5u21KAR5kXfirWEJ4 mCGV59PZWjxSmrL1tbnM6c6d7acV06ivM3kA6vGAfN4ck0SvZaMLWPn31rzl0z2w l6BwR4PuJHoK6Q02+YmnEfe1wZPltUgTosN5j7MsHu5RrP+2Amb1/BfGunKNFpYF iOEGXm9XQ0Hh7b80XhtgU1su3ub0A1zd1xP5f/J4PSs8hF9XvAi0CN/AMG8o6yzu ZtKgOIkbTf3nVINsXzNa+9bGH35kA6xEkS56PgrSw1YmeHCGnqgg27dn0aQ== 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 4d9483uurj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:43 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50b4fe4ff7bso2371191cf.0 for ; Thu, 02 Apr 2026 01:11:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117502; x=1775722302; 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=GFVIBphopyjLJHRl747FL4r2BmRz+/AAt9bjuJQ6Was7/VltlK/R3S3AWxlQqlLnVd xd/6hUj6PA1Kg/JpESiXWhP0w5cgCoEFiBZdaw6p5IFHhjZmRQTIpGOhShVk+sIAvOFv 4lCNo7Mey2BW+UIwYyWMWPozYdV2YWKww4x/y3I1/RPio+Mvq6oXcloej1rGmSzoZO3g 0brrZfkRPyWQWc2pNaEAup9+1v+3GCktv3atFNA93Se8rNAC8xAbnRa+Uy9/TgqW8AS1 PsLJ70Nst0+inBo0NgtCi9hMXZ4y3IlXFWVmHQwQOtvu1bUg9jhQ/zjCLQZYq8RUpZhb 1+mg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117502; x=1775722302; 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=Y1j35WFlQxnTWr0mpC79aH7f694+HnOlHz8EoSAESafS+gu4ckQHfRZz0yNwvj1js2 DX0s9nioTAsuLfxTg4vjtnWPAdVLAAl7up7xrmLy+jvD5rV0obF9x4Gch5EmPH8uQTyG Z3zqOYkKdzB0EXfwQ0JH+FQSHw4GgDnNlWlZhWhvGSHd3qEfObKX+/U6X/V6WuYvQBCd B+r4E3r2QZV4knJZsyp13PNkDbIPBMQ6Gcstxy+9MhC7WfVXdGbTNOXfbNngGxt8uBae O0+TTnp2PbplMe8tBWXySBzTB2KJQy+q3RdBrR/6M6IIvkf1GUYqWh9o8QkR1GHP5sEK OMog== X-Forwarded-Encrypted: i=1; AJvYcCXyij00iU5zSnWKCSOUKwKCd0LFuLhfZnKHZuJ/PjwKyf/0W0o83zJ9Mv1CDdkyrURvMeQ/RpHB0lS9BQo=@vger.kernel.org X-Gm-Message-State: AOJu0YzzRVxKz9pz41joXw/a1sPHZ46WczV1NxydFEXUjycxXn0XgAmV 32+KuKNgfnHisfdt2YvsJVFXKtzkaQUgdfvCY1+iiZ/z0Dkj316CNEtJBpBLB/xk1W3wIktIF2k 8gIO7pCeEjY2AJ3xk3hBRybJZ09WUihuhCIVh7sLexm23PFO9H9AHzGl6qJinlT9kaSY= X-Gm-Gg: ATEYQzyep/ShYErKoz2RnDBDc8vTHkNqhg8uXPbrOPNoDfzJA53E1tTq3lQA57XiAjH Dyg0qJi87oNWV84WVb/l9oRfxWySG2iPVGU4WM2klox7OSEtCzEWDvmAQniNR/CzJg6KkRYp18v NAATnECDlhjdigMr1y12ciMdpumEAA6JRCh0GkHZNgRNd7MQQ8XKBlOhGq6UrRCQuAWyVxapQki DMhyA1Wv4YlUFGiMno0GJHOmaHG7uwYmDYGB4SAzaGfMDrkNA5NsbQzfWcH5k6Q7HXPcBlSlKYW KN3oOV66eQcseHwQyG7HgQY4COcKE2i9jbnLC4SHYEX2YWjhFS9l+us7QzJR+eEThgpfaHlzOoz 9h8b3eQ0L6iE+OYrPUoSeMFwMylZTwceSxrdnuBYvngmGD0f6ox4PNbo= X-Received: by 2002:a05:622a:835b:b0:50b:3128:9916 with SMTP id d75a77b69052e-50d4fac4c65mr12622781cf.18.1775117502115; Thu, 02 Apr 2026 01:11:42 -0700 (PDT) X-Received: by 2002:a05:622a:835b:b0:50b:3128:9916 with SMTP id d75a77b69052e-50d4fac4c65mr12622571cf.18.1775117501684; Thu, 02 Apr 2026 01:11:41 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11: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 Subject: [PATCH v9 09/13] ASoC: qcom: q6dsp: Add Senary MI2S audio interface support Date: Thu, 2 Apr 2026 08:11:14 +0000 Message-ID: <20260402081118.348071-10-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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=RYydyltv c=1 sm=1 tr=0 ts=69ce24bf cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=yvctMs8w4tAFySAdhFMA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfXwmsYRACMNGsP tSV5Yfvex2Pl3iPleW0+LrjDq+EaYwnZMAJWp9ltvw1ob3Znt8x7flL/XZRd3fIkN0GMElFEvbl J7gcrth9Is5SVj2jNkTe0E2Q5x60vxJruQIw1HTi1R4FwezpXk2U2NSPJIP60lPTftgW7dpE0E5 VGH4NHXthEcAGAt4EAWjzFIVMolpQAp597oQyvMr3NH/cLE550lg4HfAdM9D96PLECtetzODwje mF/Zhicw7KF2w7AaSpn9r98b/YmwJHSD9kyTEhL9KQmkGS7XLGHcdAzBNM7tXebXcXW23wylrdf U34d8m3LOEK8BnSSLKUo61Ndh34Oe0KvGnyYLc35ZLbOGSnkCyAGky59WM5cFJ+SBtOw2go267z nHEJpDVQhDT3aqPJtVfgiJLIyD53ojShdUzNrzQd74HzzEjyFjZfeBkl68Yaup5JndALaBerM01 CPHRHOQYULYjkWo/NCQ== X-Proofpoint-ORIG-GUID: n9h6R8PeKoVwIJbBzPd8UP7MfEY6RFRU X-Proofpoint-GUID: n9h6R8PeKoVwIJbBzPd8UP7MfEY6RFRU 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 clxscore=1015 adultscore=0 bulkscore=0 spamscore=0 phishscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 2AD3D3A3805 for ; Thu, 2 Apr 2026 08:11: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=1775117518; cv=none; b=ThvdyPhkS4tNhGEA7Y1UflZCUwjVzic9Aze/KanQS5OO3+GXFSzOAlCjj7DGt9ifYLqL+BWF4fzG+gIEZtRsO/gf4fCMASw6qLMPfvcBm8imv/GCObttPhLFFKaGQJhRsCZ/9q6s9FZkNUFpJvHT0K/PMjU8PdmdYL/8PI1+LJ8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117518; c=relaxed/simple; bh=Fl/z/x1vRgiwJd1pRAYk5uDKCPsjPZHEyO/+LZ3AuNE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ifTtPYqZigsNhBAwNZ6tbLdlpjyW2VT1FEt+TCn5bCzbAUgsRJ8J5sceSQ6hPO7NPAcbAJjup+nsWcu6znjeJfVTiXTh/zNmenDGVM9Se/AwMAmqgvGMPhATGVTRRC31rIbXZmoKOLwm11qaJOj1vhW8E2+r5GmfMtAQ4RmEMQs= 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=o2CJgvEX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PtGVaLa+; 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="o2CJgvEX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PtGVaLa+" 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 6326ruNm2903749 for ; Thu, 2 Apr 2026 08:11: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=ngH86D4QhHS BBEnIjfBcEjvZR9eSdOdxegad2SenX0M=; b=o2CJgvEXFlDAM78P3JlO5bj6CSZ JGVyZPVgT0KM8TRI3yramwtPzr/PeboGhBO8Xt+HgJqCL9pNP+TbZYsNNlwH8V1+ ooPQNWINa0QJiyQqYnSPPI+PWspiEgco8V5W0uP5prAMy9PiESWJcbHTnmlnZnpP TbwBeFphZ4qEoNvZOMmvI3gfmTBk8QVoJyT1F6xRZIp1dmhWBTtlJ1cj7DxfBWA7 cQOJtKImTNA2419MkOckvkcJQ0z1xhgwBq6oAMjvfEJVE3KsYb3PWRJqynHNxnGW 3CogiXB3haozVtW6AE9ByGTKGXyn04EUrMkcIS3N5UIXTj4SngSbg66kh/A== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d954cbp1k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:44 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8cd7fc27cf7so170294085a.1 for ; Thu, 02 Apr 2026 01:11:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117503; x=1775722303; 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=PtGVaLa+gTvTxU98/Cl5X2p/2BSeg7o9HbQ+Sx2dHCxAzkgt6hvDUF3d5fzC2ZJhSF QUynPh1+AnQwPbgJRbwfkchCAbNy0mI2gxmKoiLVC7BpCWjHiKE75gGQIqm84GUMO1Q6 epWD9Ee51P+CiLbur0qwYS8wiynibOxkmz1RMsgmFw3Kx7IRlksPi0VWe99vz2e19qLz 3GdNTB7M+N5m1iUC4MMoeBYXTbh5N9TfLsQZoo+/2oNqKcC3aeF7DKFQQgWOd9JLYEk5 ScozUmZwsPBFe1heSN+1trz/T1UxG/H8J/Fgmznl21P93/9639rM+3+C3PRjsS5rcivH Rwuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117503; x=1775722303; 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=qAjyALGpqbV14JCNPVehk1L1gXq/h94e9dWONK8TJe2FXT2DqOUm3eY4g+9UjnRQtW Xiqg+1BfLOLYEtu9TzQXB8FRQLHlo9YWBXcQVMnE88jiG6moBztAsP2LojG5qxUDbvN0 hKl3dUNyGuRhbG736x9hPUyCqjY0oTXYbUHzXEsQDkAT0MwuLi8Pap/bp9Ztl1S2ddQj vD3tdhzSOeUDJNVgzXzvcoxUhigE8WzVm4k9SMUnpM3itsBizH3WGPmfygFgQow2fQ3a SH/qWwKnKQd7gKVIly0K2+JIMt2NbAdbcjXtmMeRu1jUl8gmwxOywNkdrxxM7nQ1Hk0G ijSA== X-Forwarded-Encrypted: i=1; AJvYcCWaQsTWjM6LD3geQ20jOZ5xRlhT1FbeRGaysf5U1wbTXSm4q71wBAfbEtuxXmz+bbaphFrl392/Nmb5KlQ=@vger.kernel.org X-Gm-Message-State: AOJu0YyDmGEzhAHr4mwHghi+FPLDKb5mH18zVejz3NsCYGU7at1hrF0a ooLh7AHFNf9hng8OkYWZV2LdC17oAK+QbiXVWpI85flfpdzgWF/pAcnlYpwobiXyYZDXPVK5N2d 3K4wvbKES1dRkt6Npe1RJgyXwvO/aLgbgWKFFkqcTVUBz4DOeRXWONgEq4ZYGn3q3eDk= X-Gm-Gg: ATEYQzy+VmHWLxplroZkNhXiRPso143R/fj2Q0+H/8qsMpsbVoFgsZeuoyUAuIaufrw xBY/5tkc0c/FdzYdCbDSXrcBVuK969yDN8k8QDht3xeB6z6GXWB6v9NqFcYCvMbyjw8sRZIjxDa /dLFpvshfE08hEd3AH+EyIr4FtL2HbqP4vSYEn/ljset3RAdNkwRCMJTeU/+XIfwZzRZkKwjxpY 7qSNSiuMCKHe0/kx47fqbT7sn6/+D985SskrDnnDyK2GN9Fog7jNo0RKWJgnCEG1VXLLyh7g5hM FOn713lvjy8QvdNU2paHE5u4SEezpEdvTbp58vx90yvrROX3wxN/YcajEoBSOzcODOO76XhOatb 7JdYcDY82F8Q1xjlSd5smc58buVqXffbEZYQgGG3aWcpEK13W3sKyilI= X-Received: by 2002:a05:620a:2552:b0:8cf:cf7b:7f1b with SMTP id af79cd13be357-8d1b5c19039mr996185085a.52.1775117503644; Thu, 02 Apr 2026 01:11:43 -0700 (PDT) X-Received: by 2002:a05:620a:2552:b0:8cf:cf7b:7f1b with SMTP id af79cd13be357-8d1b5c19039mr996181585a.52.1775117503217; Thu, 02 Apr 2026 01:11:43 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11: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 Subject: [PATCH v9 10/13] ASoC: qcom: qdapm-lpass-dai: correct the error message Date: Thu, 2 Apr 2026 08:11:15 +0000 Message-ID: <20260402081118.348071-11-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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=WMlyn3sR c=1 sm=1 tr=0 ts=69ce24c0 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=QkacBUY9L2qTTJrEq-kA:9 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: drIah9SCm6iqeSrlTXHJAqTYKG-T3_9L X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX6lXy30z6pnfH 7vokZAv21DsHcusuDnRr0/J5Zj2KniynZKeYu9ROl7FjBjCngOsAdN7RwaApIrRFRayylsTmBW1 U+d/TjVcGOsof8aRYzjvRiB594sd3HPTs8mMXgalKAIKYOFKJIhCfJOsiwXzDM0wFuhDXkqy4r5 +oNymAo56NoAUxIbfXD1e9FjfmLahRZCpgmYEWXcVFP3w4ODYeaSnhFfJGiCGI3vDA7UzJdrB38 bc1SDvn/1Uq66p35giCh9PyEKxAaHf+pzKTNpXSc3CKcERtecrl48hY3a0GZaa0NuylPEPNlT2r +kdYrf+0qIO8GAhbxMLmDBcFT4vrnyee0hUOAHA+HzLl7R0dG7QYbmHDl2yXyomCAZ9DsIYpGov oxmL74PWzyTDQJKAbjIDEbMSeGknSSfDs4bqGG7Be28b8VFl/r1h3VprmjxH5Ww7hm5Qcx58/gJ 5K6N7AtlHjMBcg7OA6w== X-Proofpoint-ORIG-GUID: drIah9SCm6iqeSrlTXHJAqTYKG-T3_9L 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 8794439DBE7 for ; Thu, 2 Apr 2026 08:11: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=1775117520; cv=none; b=AIUE92YaTJxYc0a9yTvf/ku7eeMnG0uGnMxMlPHQtJ4HxNUeoER3nV5iMY/XdRy1xG9RC+tPmA0mcfbGJ8AtFcMIxKDQvgYZ8eRUxZBY0SjFAUy/v/0O9K8tS508wS11GHL9/xho+JjxPGYUEE3hdcrgtTEOyZkm1w02052RZNo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117520; c=relaxed/simple; bh=HcBUaG07YHPkjw7AtCbbPauazCJLhtW0eS3T+3u2Oe8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kMPkDS2IfJQsAdfKfbAmjry1NkR5RsUGQ32P7iqZFblKVYg6OXaZrIHVCesbnhOJ2K+oApFgiFgGnrhFSo9orfjxuP1Uo1ejHj48t6iqtOQEsBby7wM5E6d42r/WmvY1craQ+o34SCgfrd+XRxsEgyEK8Ihi9KF6Q4ZTlW7dVYY= 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=WXWoOQac; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YU8B/D4X; 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="WXWoOQac"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YU8B/D4X" 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 6326q0J83745952 for ; Thu, 2 Apr 2026 08:11:46 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=WXWoOQacAwtuIXibE5A1tE6zjT5 OKcVbFpDpTO5uvLmm3BDcO9ft9skGO/P5ah5mrGRIc43fdjpneEbgLYUcGm1F3Dv I9UJ5WPOw9KnnPjsJKXjmZJynZ/nKtXaxFE+e8YJZfqEsY1MHQH/hEz8js8Z3BBw E77B7UiA5dJWONnA+Ja2VdgJgDiqRhJGV4suKzYub9fvvQ59I9Z6nnCa4Y7YJfwx 2cco1QI3EB7fHzhOeXTn3K3q2Qv01HvXvDoYuyg4jXxyEYefLztiYI3jjBqo6RHj MvsnOonh8ieWk5e4wEUXE6ZBmNqLwXhlmMKJETUNfpzG1cvAS4uvGJYwINw== 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 4d9324m80q-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:46 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-509070bda13so1881201cf.1 for ; Thu, 02 Apr 2026 01:11:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117505; x=1775722305; 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=YU8B/D4X+a7RKaeY2Wwofi14yD7XArmrjjP2BCpWFZWsrbrZhVdJuw8BPmNplEm+iD xAH6fNVAZ3Wu3kr2M2kqRBYafLweQU/RaSX75QtFGMirqZOAZMlaTGByjzBEBDUaR8Ak /jos0bzPW7UES9M2ba+a+W3PmwF6Z2NssDO5MrLrRV2DOZkAWYzxXDwoWItX5yKxHsLf LURfDz0vqpQglW/QRuYag++HZcZDz1hNJPZn/QcWCIJJ1aZ0fMnEX1061OH018iXppX+ mDDHvHCdN5Z4gXKwzo4A2mpd8nrxOp3wjcGMLENdg7tMZ3TDS3sJqG7NrCyEcrNN25h1 d1jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117505; x=1775722305; 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=Ar24C99FFJOcZ0+XG9XkWlp1gSSWtZD5V1pmZuOAkSzvsUPGpKhB3VWN7q5EcjcQLD WzpNcbTQXCe5SIpvCq2LDQUYtsIhmrCQ6ds5NBhdcsvxUl/uoH1iyoyFh8kROU47C36X GfeF/Z+BES/Mz4F+jaSklF9fu6Q//jdGg3KeTJzuEkfjwQU7iOuXgbWWQ3Fu3b5SMa6l 8D1F/jD+zVpwK++8yJWz3hH7ONVhneVRAFNSjnt38qWPu3vZPvuc4bxU5D052jRBNQXn nXCfgRv2Ty8a/28icqLZ1O75YksWwTRosnKIgqXy4xIZFzQuui58l0B6dGXLSSgeMDM1 CEWw== X-Forwarded-Encrypted: i=1; AJvYcCXcNkzj0ciLtC9O2WB4AUoKAilK1TVHPOU+D41ksO0XBA0JELnrys3YM9BEOJMdHVxSSsnCC8HZAniRQl4=@vger.kernel.org X-Gm-Message-State: AOJu0YyRd4SHwEH3Zdq3Y68OXZ2IjQHW7V6TttWcwG5fD9LNqnLwubkD dGmRD7Zd/mzL4MjCGyNX+LP3LreTLkFUfEblVjAv6PbmsL0O2Pw+3mBxDk+oaEgPLaETKOmgFxl d+NqW8ZtLmwoK2DeUkBeckFNaBnC/FWT/F5v4LOssKeQIJXBGuC/Ran3BQ2TJeQLSxas= X-Gm-Gg: ATEYQzwrvSuSBkf2KbsvOMTs0FRXS8nu8ZhtEiMvWU9YcK9SGul+ogciGTuzIGihhMB mLTTpw9mC3FHZFu5yH2wit8/PfIoX8PjJiRxll+2tOVpVrroBZ+cC+WRWv3a5/wsC+Yk41xTTon pfuqY6j9uernATWt50Cs9jmAUUUujgzMSYPCnEQF7IOJr4ogZZqQo4saJ0zr+HfTELZMUtkhwhE +FZ4iPKE8H6Nx4hVh7oWFc2wn/9WBSo+D+WVB2jq//BiZprKsqZkxTzvBHT5XyIV/Bo3gth+/oF 8igXJ2IowHvmPg86wmAd+OQTUDWDxE/PCmbsKVfKvqEKLtW9OB4gIUQ111atzvotNFLETXy0/E1 fp4btJF/H6I3CbpTPw04K8luIAlyadQIGLRdGrM6uC7t04Y/ckqlPdn4= X-Received: by 2002:a05:622a:8c0d:b0:50b:31d6:f7c6 with SMTP id d75a77b69052e-50d4fa3616amr14829761cf.7.1775117505035; Thu, 02 Apr 2026 01:11:45 -0700 (PDT) X-Received: by 2002:a05:622a:8c0d:b0:50b:31d6:f7c6 with SMTP id d75a77b69052e-50d4fa3616amr14829551cf.7.1775117504668; Thu, 02 Apr 2026 01:11:44 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11: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 Subject: [PATCH v9 11/13] ASoC: qcom: q6apm-lpass-dai: move graph start to trigger Date: Thu, 2 Apr 2026 08:11:16 +0000 Message-ID: <20260402081118.348071-12-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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: 0O9SY33tb9uAcy6qS_wQkzMS5aAadRSq X-Authority-Analysis: v=2.4 cv=TKBIilla c=1 sm=1 tr=0 ts=69ce24c2 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=8udmP7N65bQo3KbB_RsA:9 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX0LSFM50QuiNs nmEMFbzWikgV8qJtloZJ+TN03EV+VvmMzftEK/XyOzhIYF5TyFEMm+W6DHh+iy5sWuQ1SbzjAkM CvsDV3KQfqHaQEEg/1hWI8VpCDvnC2Bkzw8fcnORBe7PL3EFnw5kcyAiqj+Vhh2jIZSwvVY9yUb E3cI0orRdH9HzGayS3vHEVyR+fe/AQ6uWoo7Jn/9jmE+Y+2qqVzRgl7XEa4Y8FKuYIFOnpb+WCc HBs/HN6wb8r34FMTKTzaarN4/BBZqQX6vXUNxk3020tAPE3cv2F5/8rxzqyuFcMQ39pyRaSJNG2 UshAE+A1kswaANWqmboOYyvlebSwanuhFS6Vbr8Go0WJj0QFLkqhm5z1GTKsKIQDsUka0gUKj7Q ba2wCqkbeasenzqLJjIQksf5B65i5M4Uluv7eoN1rlrD9TgzjQiH9BSz90FUa0eult+RaESRHc0 fPd25A9NzQ7QmDXurHQ== X-Proofpoint-ORIG-GUID: 0O9SY33tb9uAcy6qS_wQkzMS5aAadRSq 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 358F43A4F23 for ; Thu, 2 Apr 2026 08:11:54 +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=1775117526; cv=none; b=gR/4yBff/3dAvHP3jrR3HaiInGmzPSx4A5bBCq2fIouyJGJDNeg2TR1du59hyxmYfvChU4eovrFBwf9789P81csDyZa6+xPx1r9v67e85snrydQRSr4zpecr9rFqzFDHKrUIedplpd+uxVCahbv2vmg5hpsyxfbT9eAVJ+KFss0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117526; c=relaxed/simple; bh=3nJe78cfkL1kyPmx34In1LIYXv2cp1Fw4uemtw2se+c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=A8ZVVF9IaEYHELF3HN2uozKh/5TwjL4y45f0wSd3tprYaxsmexn1D7R+nXymxnO22u96YUgAdBLt8yNnu/NOgvIklJlJaG9z8gHdcG95uwXNeLRwlWhxywe0v6SbEYUi2cfc97DD0BfSWurv+Co5nadBfNOaWkd9+U7pNHcJtQw= 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=FHrhWAYg; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=aiRmWJA0; 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="FHrhWAYg"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="aiRmWJA0" 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 6326q0J93745952 for ; Thu, 2 Apr 2026 08:11: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=M4hAckrjCeS PiOx0QjgRxuKhLYXUUzI3EfTDbynJbGo=; b=FHrhWAYgUBKMGOHZm37puc5aNmS y+z8pF+icQRs2o8A6t+NaNA2pDufRm6MNuHHpuTqndaTPawVRrVWK3lBuJWt6pBc bAwcwp+2PonQCEAXAZPJBNVPhnlbaniOgbmVXg0lxQI8HIWoUlpSyfbtE903lo5E oxMN+FRjfC8M5x3yGYTh7lxuF9XwsOzQpPrgqwXI7OiC96e8mMYWzq7vZ0YKjE+X IuWTOPFtecEO8hvw5sm0xScQDISxx3nlmz22sMLls/zRHWgu+MxEUbWbDzyCqAks VHcZlOchLaAJCtJ2Jf63NHbdjuOERoKnw/R2DXOrGFKczuA8O2GwdRfXa7A== 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 4d9324m80u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:47 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50b34223670so30463001cf.0 for ; Thu, 02 Apr 2026 01:11:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117507; x=1775722307; 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=aiRmWJA086iH8vIkpNEpJRmztZZ3YmVoxa62+CoahILPNAp+DD0+34IVhw9s9FpM1R Iq6ox38cQ7HlGw86PKQ358wNy9Brrdy0xIsyojmpWaddYVFM31SgdJsk3vOyZ4tlZ2kh RlbHM9SbJ9Vi/a2R9CeQdKDvMxZsp0dXLWXAzBODsxASqOB9nNIqBDnD26RiEtFPWmM/ GXrF4OLcyiqZvSCHkvOj6MBZ2hYgT6GU2fPFNYgAqmPhw8IPEx0eZxmsaqdgy786fsrz oS84f4MEj4PTjqOcoYOX9Ds8exynxgS7n1iNALdT/i8TvQQOZQrkXtdLK0SOwdAvVV5A Fr3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117507; x=1775722307; 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=N4Y0TMvzZY44g4Q/h/P5MhADPdGmQX95xN1u9Gel9qkDcsfdjXPqMNlg9egGa9lesv /ZFUJNKQMY6vz+zq9nkWyXVTd+B8diyyHpaEA1dXmAy3duioUwcavDhCtvCRuAXJbPmz FDf0RATRgoipHWsWvHKmrE3bZwsRgY79wlm6vQR2hQTqI1Ky9x/e/Q4dGqH893OXcjRN Jgr+JWQ4zQE+s3Me/0ZP3G3fq0vTq2Pf7rpujjW0jZU5De9XABP9TmLPDnVoOwujUATF Xp1VWGodjygLydByu3fApCoB9+ox80kkuEutgpx5iBv5zmIhiXK/PyuC6GUVsRYlWI50 gj6A== X-Forwarded-Encrypted: i=1; AJvYcCWVn0r39+csUfeag8j2NbdxWvL4SoaJ2GIxYNuVOg+17sf6AeNakzehNnwjAWhyzjomT8gZjhMpp84teI0=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8o9bNi1dIZfGFQlU0U7A7GuOIqXNmACBIb5Kt04hrmVzxsPu9 BM5WDsPI6zZ1N9qfhbW57zMNTG7aAe7RtnC+X+beQz30ejr6ronBiyWLGC8tsiMEft2D92dSM+A P6p+Cf67iYNcS+piAbYnf+EGnPqWJsYhxmilXzCn5WwDlSF1TpVHTYL4bQ0WJyG8P8Yk= X-Gm-Gg: ATEYQzx5Nawpxv4et6iDvnXkE40DC4y24rYsy5EbJ4HOSQwj2zQKbBXvU6acFTncyvk 9SmV6Ih9hsPjeZLIfsRiV2WqfEw3QvkUmJhvsHffggbjUNP0CIfOT+iPok2BNoLTdDpBO5zI3hY bz7trUHqnnyozg8ejx0i+gfb6gEBB5X+4jrSPt/MVrabKljj7BSN8G7ymiyaCki5LTgF7kG2+MH Lpzs0W5TrEXiUoQLMWNOtjMuGP7kOrzt67TcZJIoiuL7YV5rl4IyD5XwIjXJY/fKJ6ONb88X9I4 /l1eEKYMciio0AOKKqsnPvSONTNzjgYB4zZeVK+m3Sd+cnemGV21gRKtZxsyow9YAsg9qgLTFA1 i0LOannJ8XsOe9Ds4fCO8qnb9U8x7GMObD7y18fGj6qexHt9oXhjRzFc= X-Received: by 2002:a05:622a:53:b0:50b:36cc:3350 with SMTP id d75a77b69052e-50d3bdaefdcmr94591991cf.67.1775117506683; Thu, 02 Apr 2026 01:11:46 -0700 (PDT) X-Received: by 2002:a05:622a:53:b0:50b:36cc:3350 with SMTP id d75a77b69052e-50d3bdaefdcmr94591691cf.67.1775117506259; Thu, 02 Apr 2026 01:11:46 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11:45 -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 v9 12/13] ASoC: qcom: qdsp6: remove search for module iid in hot path Date: Thu, 2 Apr 2026 08:11:17 +0000 Message-ID: <20260402081118.348071-13-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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: aUG2TwmtvWLZGapdKS5S2GIBkwlzDxgc X-Authority-Analysis: v=2.4 cv=TKBIilla c=1 sm=1 tr=0 ts=69ce24c3 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=Ll4dbTg5roZnn8cDlSAA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX1g+yObGgh2Yh PT6y+iy/6LgpSuh/G9OWAOBZBnr1LyoLSoUSdLwb/4Lnum8cf77VDVC9D055VJrLp+4qqwYRB2l wU/vJeag+VJB3Mgc1K0mbdmAywn8pGGVWRuh7s5Ulw9PuSeqsfSHT57QlV5ptTmPBoj6NV9itAN 6oMY0OPYF/mN8poSrKECmzTHrBpI6ghZYbue9Hmtq5OCR+MZp13ZEjm6JsHUeEcAQdPznZVdYuL /TI3CcX4PKDettLZj6yWFCZMnZKn3fzvbjaaULejjCItgN+Ly16ape6U9OrdNoAoy3Iw6/2M31b cuiJsSH9UgpBZRkdx4Dx0C8dzY2mV6iYVy0gx/e0QGfQBZB1Pnp9mRdgcuGVa0LDPCo0iQLmaJF kA2P6l9Nmu3RUONtDDhpICZfwR1VjDjmeLFJ6bcC7MaiKzFvhtDJOyWtdm19oeASay7tTMh8CKA tQgAvB3fsoyBFYzGXKQ== X-Proofpoint-ORIG-GUID: aUG2TwmtvWLZGapdKS5S2GIBkwlzDxgc 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 spamscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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 Fri Apr 3 16:04:13 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 B376E3AF678 for ; Thu, 2 Apr 2026 08:11: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=1775117532; cv=none; b=SC2yRfuBA3v3XlP5ozEuJ285C/f/g5vo8TNwlBKa5YGK7dITqydVq4a3XbEnbcifhqqK8h3xzmtzZftfKmnrEFNpXRTWwOnh/1z2TSJyIyw9tM66RyciriQrz/ucWu4wHFkAeZ7dYJR97XAi9WBI4QODYEyDJct7p4sXXWAttZU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775117532; c=relaxed/simple; bh=yI8y5H5KZTFd5wtjajjW87TuV177g83B3ulDFxmlrMA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C2yrBDuqpYvtuI4EuHQdxrUZysz7LBE5hgD7LvqzESoTt/mU1hOhTBX/EEcJE28/zGrslj0cRtu4JE9KE4iJ8jWCcg2s9Aq/VM3zRKEYwmYVPMjJsTJeQP34E53w25gY1M0gR5pRN6hkqdN5N9vlME5PTOlvl78hL02dxl02XOQ= 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=RIu6AZcf; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BKtrjwFG; 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="RIu6AZcf"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BKtrjwFG" 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 63271WOT2903519 for ; Thu, 2 Apr 2026 08:11:49 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=RIu6AZcfBmLUPXEAWCL4PAqXp3F JySMf1ChlQkVfL5gfYXZJyEs2eWuWAyGWnr2O7QxvCJnsV5af86w8LwexQc+AK8d /OFa0VIex5cRKdF4APhuEWrR2vUd7X16MlyvcCxdiVeyQ2aT9JWG0ACPu403dOXF P+BTBJyqw06Z36XCx9GCxANCGUtuJFlq4WV/nCWoZc87uRbzwabpNt8HiENkSpqn yyHy56dIMqKQYImV+Wrabke+Csooc0//9JOruZVzrOTYpWx84ONfjrnNIXWor2ym YVrs5eXgUv49ZQ0YCZokSPVpwzXI3tK1J+bl5eyCva2F8xSpHOnRq8cM/dA== 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 4d954cbp2a-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 02 Apr 2026 08:11:49 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50b4031b86dso21296601cf.0 for ; Thu, 02 Apr 2026 01:11:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1775117508; x=1775722308; 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=BKtrjwFG1N9a2mNShkaPNRuoVfOed+LuIFGv4JOJFqkBCiN87xoFGP3hp7+T4wdF3/ sXmneZFJ293jxS+8gSGyDsjZaxNwncRbiBmUA+dWJz3Wnt/KQLeHhSl9UHqYjB9W3VK9 GIbpvWxDqioWxQlQvt758ZmwM7nYifZd52HiPJ4HujFgTKabApgX1hEq2+gGL127cEKm 5V00GbLKdd9hl3WhCrxKFPytgEMhtNq8xWea6BUaQ/x0auk/be3u00kKnNvHsit2lr8+ K3IeDPkYTg85Y+I7wUtz1nTFvPDUP6HIZJYcOyJWlMuclkJhxdNOMysmyQMuwPWjzCBZ 5DSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775117508; x=1775722308; 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=If1osQRKWf25D7HciCQdE68XydTW+g3upP08KI0sPi3XUraV1WkHKKfM+GsSblFtAv lGwPxqTUBPnteNqp85EJK7ewVOpFgrKjkdqKwTZWPGvf8HgBPAsODPi10cTY3w0erFKT yDSlp/GV+1DCxMRhNFcypU9iT6PlyoThsqvenaGIZy5MO8wjRGgqxORcEaE1zgp/xyHb +Q4thQ9WpQeL7Seah15wDR0bS0OHmnuwg6ZrKCZ7nhJnWF+enhnhZMjBANGLSfoRZMCc vldLRWDhygXf952J/MlE2xd0Xkj1PC22FZz6F2RCJwiTgsLE8AIx98uwfOvQld8WHhq6 VB2Q== X-Forwarded-Encrypted: i=1; AJvYcCVjvgRwLwq7vD7CfhI2YzsOj85fRrRSijmbCeABzcJvE+ZornLyy7xAuRfFDbHKtS7rEpue00jp68YOc7o=@vger.kernel.org X-Gm-Message-State: AOJu0YwchKWMZYpWvflFCpnnrj3kZBuwmiWpXDcWc3wmA18rRNJTjJ65 XM+XJAysJKuMhswiTQIhf8hSfCK9s53TU0BVz8qgbXiJlDoZP3nPWACcD8TTvOGr8yVThKgsp73 XH5mvndZiTy/PBafmlUkWYZHjgkxVZvP6nHtcFnQgFDCvaqSpEmZk9uf0JxzU/b7zkPE= X-Gm-Gg: ATEYQzwWBrDhbojTqElHFcx0VSGAMHe110NDAJvINbjbMSpPrpnfHpQXA6OHu40sHA6 FO4trDxoEyBGhwjQMpRS34wZJnmXMiEfPJcRevNgLnv5qT+G7cdVmOFR/gHnc380RlO7OhnYV6P fF9OPukQRp2JU2O/n3jJzu89jodlr8ECVf0gVo398V8eDVmMpyfA6JT7Iq3CUx5gmYRpUBHqMrN IV9Ho4CcBSdR5njan93yAG+aa6GAOtsoGtumF1ixlTLrYhBj9g2ONn0UfN8EH01w97iZsbD7Mm2 Ne/dwi8WUuGWUZVINaEUS0r/RgdzTUL1BIAQJyoft/WAR9RcT7PNW9Gyo8MrzI93yymcnxsfjLq AMQ8f/APKX5DFklAJuLmXrEmSNJ2vFVqu7JJ6P3yIYUYCGOsMhinBrRA= X-Received: by 2002:a05:622a:1822:b0:50b:37a6:e497 with SMTP id d75a77b69052e-50d3bcaa648mr94436471cf.44.1775117508178; Thu, 02 Apr 2026 01:11:48 -0700 (PDT) X-Received: by 2002:a05:622a:1822:b0:50b:37a6:e497 with SMTP id d75a77b69052e-50d3bcaa648mr94436161cf.44.1775117507693; Thu, 02 Apr 2026 01:11:47 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e2c3a01sm5712604f8f.12.2026.04.02.01.11.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Apr 2026 01:11: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 v9 13/13] ASoC: qcom: q6apm: Add support for early buffer mapping on DSP Date: Thu, 2 Apr 2026 08:11:18 +0000 Message-ID: <20260402081118.348071-14-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260402081118.348071-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260402081118.348071-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=WMlyn3sR c=1 sm=1 tr=0 ts=69ce24c5 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=Lmls0Cg-LgRrrh2KKlkA:9 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: TgOsiZerTJrSwnPpIEddhWCnyYKe1Gi5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAyMDA3MiBTYWx0ZWRfX4RFyC/xJK575 EUwGgS4KZ2siVOZSJjlmmKFV4g0Ril82drR1DDg8uCS9EMA0sVO/V1ZDEwPzvFVEtQtAP0U29I/ gFf8DZR6K4tlEB1dGpMF/jiwe7HTvhW5YvhEAF1G7gRnCR0Pnwjqbn70O/tlsQRBwJQsfvYrlmh Pn0aZZykdtY7t6kfvzHEun+cphYMdEEPHkLvxgIJiDDp2TFdcweV6oH7qQmtEKMf6RbN//TUPxa 9jmP1Q62+oNIztaPlccEBhFRPUTScBrVAGFSZ9escEWlRnk1ZyZmXQXPrdmuLGlArnbSL/t3Kk1 7dMMBQCqfjK6sIhsoC5M1Wa4xjKhw0seFZPrkXviKk+Tl84gLAhUusQG9hkbo8fl0wJMnseSJ4a KOfwpslorye9eMyZz3f24G1aaJ1daCHM+NkRW1Xp96Ceed++l6WQbT/j3Wa1RH/JzTGcdePU/wz Dd+sSE1h/ztQc33NyDA== X-Proofpoint-ORIG-GUID: TgOsiZerTJrSwnPpIEddhWCnyYKe1Gi5 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-04-02_01,2026-04-02_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 spamscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604020072 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