From nobody Wed Apr 15 12:59:24 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 2D772377EBB for ; Wed, 4 Mar 2026 13:07:34 +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=1772629656; cv=none; b=KFUYG3Ho/H9WAzkZbrAQ7ZUeVf1wX5h3v65/8gxoOUWMH/n4MbmebHU8ivCj1kKvX+GHkwAhnCI6yGoJ5e+IsSFLYONaXeGMvIxEs5CfPQSa1ZMCVQK5GBS/jnOEqgiQKAMlStGKH5EGQOEebsXCja5+KdSnXNYl0tDSAoMxh5U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772629656; c=relaxed/simple; bh=B8mb+C29aHmXpiZ0KkyuEWv+QuyMzs+RA8VA08jucnY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L/NvuRUtRVYdKL+/S7aIlf6moAEKUjORu2p17XPVKh03PFzwWhWv3jMsJnV8Ff2S5eLFfFot56u1B/u8Ow326FxWTR/Oyl9B2X47PDxM5U0CNE2ImtkGtXy//+kLqx4djJXIZ6irEYQ8LKoZF40QRndEOVVM6vl7mccD34y46c8= 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=Cuj6cgSt; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=CG+cJpCE; 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="Cuj6cgSt"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="CG+cJpCE" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6249spNH1213650 for ; Wed, 4 Mar 2026 13:07: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=aC+um2a762g fpLWPhHdIhYlAN3YczWO4vgnfj1X+hyE=; b=Cuj6cgStN4kjz668yR/qAVmo+Kc XsfiX5oIvM3r0+YMII5R4fmjpS2iFHigIlIdUOI1nsn8OkB2Qv4GLBOZIFd3AWGz VFzlSnzz6xkXaxDga6ibPe0NTxfdJH21omDyvHwbODg6Q7XHY3nmlQAVRY4aKNyQ HQywL4QhnQwdq0HwypHRzBfCV0hywoU8r5zpnixwtOFqE3nSVqqShwEDV2TQ2/L2 bcNA8xhhMvqZGDPcjh99aYZVlQixfdlWHm7JE/AiF8dZwForeR/5SRxOPylWv8TS Kj4/fZpHt7kklRbA0tfUWgea2mugITJN+q6FO8nw6ECMaMhd3tzGQTnM4/A== Received: from mail-qk1-f197.google.com (mail-qk1-f197.google.com [209.85.222.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cpjh5rhpa-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 04 Mar 2026 13:07:33 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8c881d0c617so4041299685a.1 for ; Wed, 04 Mar 2026 05:07:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1772629652; x=1773234452; 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=aC+um2a762gfpLWPhHdIhYlAN3YczWO4vgnfj1X+hyE=; b=CG+cJpCEHcvrbwkwtrLTvn5eG9mXj03lyab5Ii5v9S/5bUd05jQ0fm0UompK7wzUSu Ibp7vkkUeL3Rer0wA0PkN+S/qVW0fKA3c2qmXIcjEPmdQyApyq6Euk+EwG+fa/ESF184 url88bJEleRE2nt1Tk/z3mmBlN/SZEmeNJWtKVnsq1YjWbJA/6t2BOww6URfcoSQ8l+s LcF4OkRvCwnb8N1L+tIQ7hMf4evas5zwrKu2b27Zg98DN/G63VlKUxiy21GOb1YCe2sv 8Hf3QPpb2HreqyC41ynqx6sQdYFFSE+xKTP52iS1btmICIeXv4QkLl3fMCrVwyqQu6ev WKkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772629652; x=1773234452; 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=aC+um2a762gfpLWPhHdIhYlAN3YczWO4vgnfj1X+hyE=; b=dNGDLj8MF8MIKdWNeBrNTQU2vK3Cg9lOxN+afR+OZS75seIsOk5bOkyoolt8/qn1of SA2gw6QU/+CqWv0zSBN51VmttUzq1OkmZMlkeRAr2xf2LWjSTEQrV6qI5Q4l2fgX5JdC LkNax31CGZJGO1yhJJMowI0f04cXzHjn3OT/tTXMlW8SRnxoMDCdnr3X65wtJv7aoebl zmrrKXXBX4Ny+efG1uvBRxI4B+Aospi+o5EjRepwxL1LgCSj/Bw0C9f73EAoidkYWLIe v9UTMPhNnu6El+/WRpMwZnNiV68iQ2kcrEumjfcGsn5sn1VJ/XeoR+N1oSnF/H5mot0m gOCg== X-Forwarded-Encrypted: i=1; AJvYcCW/qFp6+HsvX92xodddBYUr3sPXNm1G9PlbxmFM8AMwYtbx8FiktqajqFD55iIMq7dtMhiQINMd8w8EqHk=@vger.kernel.org X-Gm-Message-State: AOJu0YyoXOXS0R/oxXX76xEIRcDNdZoIX+mwBeYK7+LabIqYR6wtDjjK Drhsl8lCFr5e31LE8rJgzqM+kAVWbhNgRKlLld+9U+wp12Cg4Fi4vzv6u0HCA26xFRQ30w2ZqGq f5LmvNuKKckWBFimitYv6sHelB195RS6LfUzssYIukHcmjpY9Mhqkp9OZkhhst1TXFMA= X-Gm-Gg: ATEYQzySEWCTSOmr+9xXYa7ZXpIRu5ZoHCNbIuKR1ubWsV1T2oNlJRxfQEbQYtO4gaH +BeqoBDpcqSRQQOaQPoFLp/EE9JSavCh3kWtQ/uoeZsUz6hzpUmJzD1duF6lT+a10rlQ/0RkNP/ nJFE57mV+buHLyXTeSNGZ0oSKw9xQXkzYD9peXadflbvpnaCqoU5GBduI6+Fj6ld8ZBvEQQJlcY AqGyc4h18R9ruds+d0c5cFvyi9bgUZichOcPnczXY9ctyfaypwaom9TX+SXBOta6CxYYFRXlIgp XRanZ1Pohb3htSytBbWmYIpWg2Cd9sNaqpLki6XugjSo1rlkbM72zYVS8uWpPMomOBBpbCUlT1i dEof+6/n2cdLTFMyDWZmvqOY0rbaEHTrmJtCsNkffYPfIp5lE+NXH3A8= X-Received: by 2002:a05:620a:bd3:b0:8ca:90de:43f5 with SMTP id af79cd13be357-8cd5afaa72cmr211910185a.63.1772629652466; Wed, 04 Mar 2026 05:07:32 -0800 (PST) X-Received: by 2002:a05:620a:bd3:b0:8ca:90de:43f5 with SMTP id af79cd13be357-8cd5afaa72cmr211904285a.63.1772629651851; Wed, 04 Mar 2026 05:07:31 -0800 (PST) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-485188122a6sm49969745e9.12.2026.03.04.05.07.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Mar 2026 05:07:31 -0800 (PST) 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, Srinivas Kandagatla Subject: [PATCH v3 12/14] ASoC: qcom: q6apm-lpass-dai: move graph start to trigger Date: Wed, 4 Mar 2026 13:07:10 +0000 Message-ID: <20260304130712.222246-13-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260304130712.222246-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260304130712.222246-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: i_J5NMpsm8TUGw55R9Flf7SxIA3bF7Pl X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA0MDEwNSBTYWx0ZWRfXwonKWn76mA/T R1Z1Ff5TEZGmVJ8gmk0EcX3+waJGzX2AgYscDQqwbo8JKdoVdVG/KeyRpvSkDhaT8O+YtZncpWA vUQFlqGtrm/ZIfXpZCCqBw+lZxRJ1uzZEchrdL4MeNb0MkZdWKvUo+hS+vSPUpa/7K6b92CCNSC 7ODu24Yz6s0GmcLPKs5jW6E9W3s6M1XwGFNAUnm7NcZ5CfF75Py9vPApRaWVwgnW/PrXuZYvLqy aOxK0rVCZM+qoUC1fNupzYMorTAWlirdV85n2ZjQBe/3f/mRoj9n2u575P9N0YusDp23D1bYjkP /b80VVINupx2Ih1aMarZBaw3EkPRZLKO9taFC7vEAoWhElFp9/YaD3gOmGkFicFsAgwRABtGTXz VrG3MuDhH2LO/558uSM7KecV2+tHYQFdDPvHVwc1PbCXwEWrCtqH2UpBJSY/Hc2n3/r96QMoatd ChzHSlnVHiCgNO9lwIg== X-Authority-Analysis: v=2.4 cv=JK82csKb c=1 sm=1 tr=0 ts=69a82e95 cx=c_pps a=50t2pK5VMbmlHzFWWp8p/g==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=8udmP7N65bQo3KbB_RsA:9 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-ORIG-GUID: i_J5NMpsm8TUGw55R9Flf7SxIA3bF7Pl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-04_06,2026-03-03_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 bulkscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603040105 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 472b2114c81e..70e283671f43 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