From nobody Sun Apr 5 18:31:05 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E53F9383C98 for ; Mon, 23 Mar 2026 22:39:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305563; cv=none; b=RaUSSdA5JSz2jPIdRf3RKyhA/mvsYEm09YV0QW4yY1P56npxHBaD7dJ1aygdGtnEyVZJNf0Poe5Et4SE+Y7IKWqw9vV/ZNLKn40TI8JuGOc0a9sO3KyIz8vR17K/6vBbriQnmt7Q0V7gTH9zjyyxvJIj35Rur4MVE4f4cX35KuY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774305563; c=relaxed/simple; bh=HcBUaG07YHPkjw7AtCbbPauazCJLhtW0eS3T+3u2Oe8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OOFO4s+6NmFzGuYMQ1QcJd253YgBXc9VD7mmNPJKCxtqeZdLXopPT0fHkrQgi0Ro6x10/MghQHG62eJ/J3pw+NebmKBUY0pB93eBDHSHA8w4OFwqrmk4ageMVtePJxLMT7f+jFdugbb7pewGS4jjOlSNc4c6GJYlgwktnkc8Ijo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=BHx8J1yF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KDjCEIGh; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="BHx8J1yF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KDjCEIGh" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62NHqYcK3170682 for ; Mon, 23 Mar 2026 22:39:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=K2FJHPPcvdd DuyFi5b9Enk3oj2KWR4s1Mi0JeIXu8dk=; b=BHx8J1yFo1xpjzEhGJLyFEBTzA+ 4e4+U2PBPRvGdxTnwU8wAlqXVfOdn0YcfWXudGx8OZA7KiyoybX49eScXSEPHrkM 2RWnrVWPGDWJh4duBejRDDBYlajd2t+0yGIOIbG68up/F4HooOXoaPanvh/AjeF3 b3hlX+xMG6huaulHJZYLcfXj0pvgM/a8SD4KAIzgmysix/LjZce/gqzxA8e8ylYx rUZIiWvFQZUdbuqIL8vT6vexXt/uRSFV6vm02z8Qz/MwKU4+hSw+aJKf+Vton1aI YVaiu7UPpvKqtgkhrLgaDwPTtujEC//v0JnSp9atttFbMkechLjQxS1eXDw== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d35r21y6n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 22:39:14 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-5093787e2fdso156657231cf.2 for ; Mon, 23 Mar 2026 15:39:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774305554; x=1774910354; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=K2FJHPPcvddDuyFi5b9Enk3oj2KWR4s1Mi0JeIXu8dk=; b=KDjCEIGhoE/GwNWNnohLVPaN2oOmtVNTb76u4eGrymeNBku6ulxkmxZwoEeOpeY1Z3 nIUoRmQNw9cKXJTFIQ/1aivcSlrJ+aCVdPBMJdSNoe0S59aCyN5f38aFrkAtIL+8Hczd G0gBrcamke74cYyq8ZqV+ro5vihpJMJsnIUC8o2cYLrjt0LTErVkCtFMdYTwBwiMwSos UDyVvKeZq2Tbh+8dZO58csj4XYEe0M5JJmpL0UvZ3vmGj5gTAzMOsOTvvv9JxYwYS1ku /pQT1V0Zph+Js+13KDoJbCUseeohZ+YhoVW9iEqd6MWm/irkxEL6z6miFicwFzDG+AYK Vo7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774305554; x=1774910354; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=K2FJHPPcvddDuyFi5b9Enk3oj2KWR4s1Mi0JeIXu8dk=; b=LWJgcnMNKtFIaLJO7mUv3yaRi/0VCX8+RYS27x6G3r3yWns73NNt9XeT681xQubues 85lnggH8hnJbxxE6IZaSd5bVh4jjfv0ITreSKhfKqM1ovGs3ioe1fh+JFBBCjoraRtkL +F89eUAzDX0mUUE+bylucyG+ujJmrhsNo+DZNEOzhCRIOauowKpxB0BrZxV2ETdqXNw5 wAHeDaKfomskIrp+mc7xRg9oLt1BJgl0WUs120GMMXoOJgOWWIvcRy0V/4IMMr7QvoPP +rstASkITi2DMyZgz/jCWasHE9fWxPM3u6r/wFPgHfC44FMisgQ4/85Phfp1na4Riegj p66g== X-Forwarded-Encrypted: i=1; AJvYcCUYHsg2FyvLBeDb8zN2bYFnQEjXNAdRYQErOamyHT1kZqA9jEJOrqVkd10z58CaqtV4nCHn2BIpoHPbX68=@vger.kernel.org X-Gm-Message-State: AOJu0YzncEq6ACu+gT0N+kwVLpkCVsgPsZxBnjX96iiGd8023J72mJKH xOqJCsLlupoLKF3aoIzgrHUSPvNbOBXo7RbYu3hEB6FK8i9/GhReQwjJK8xmFgQAOuY/FhZ+T2h t23GrttQVcZiJopsk1riaFJ6o2Y7x0PekHpYd8NYPYB7kUzR5xamH49N4U53R3oACbkA= X-Gm-Gg: ATEYQzw7YXGLXQNKNBKSksNBOSH06jGcg8P47HUNhpeEZKJVW/Do0qYOQkvsiFkmZtI 6Yka4sbkF8CHAfQjS3sZa3aI+0CG/vAGf0Oc+XfU1zCq1NiDSXdR1jGtoY6IoS52H/Ytw2PoekT YYRrE/RfSHMDQ9pmQQBagagp5u42C3WCRNod/hoZeAxzjAbOuTBV+k/zdLxG4cX4Oe53UF0Zc/q dpb4Gn/4ctBBBUkcTsDHP2bUumLS7mO+iwjFSe6/725IlbIiUNT5XJaLq8YDcZVj6Q6Y9pnqsMV Np5fSPn6jzyT71OFOnEiJC/DzCC+1lDf8qkp6DP8+cyGAh+0fCTqItek2JbqLHJ8P6XHHqbLsDq 5tnofs7EFRnzZpTw/1j4FMtqd8Yok5vgx04+bgmqVL9RG5jG/tITLZ8k= X-Received: by 2002:a05:622a:1e0c:b0:50b:3ff3:f4a7 with SMTP id d75a77b69052e-50b3ff3f592mr191077331cf.35.1774305554332; Mon, 23 Mar 2026 15:39:14 -0700 (PDT) X-Received: by 2002:a05:622a:1e0c:b0:50b:3ff3:f4a7 with SMTP id d75a77b69052e-50b3ff3f592mr191077051cf.35.1774305553946; Mon, 23 Mar 2026 15:39:13 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b64715539sm33320351f8f.33.2026.03.23.15.39.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 15:39:13 -0700 (PDT) From: Srinivas Kandagatla To: broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mohammad.rafi.shaik@oss.qualcomm.com, linux-sound@vger.kernel.org, lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com, johan@kernel.org, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, srini@kernel.org, val@packett.cool, mailingradian@gmail.com, Srinivas Kandagatla Subject: [PATCH v7 11/13] ASoC: qcom: q6apm-lpass-dai: move graph start to trigger Date: Mon, 23 Mar 2026 22:38:43 +0000 Message-ID: <20260323223845.2126142-12-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260323223845.2126142-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260323223845.2126142-1-srinivas.kandagatla@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=VvUuwu2n c=1 sm=1 tr=0 ts=69c1c112 cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=8udmP7N65bQo3KbB_RsA:9 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: l-W2f12pLyIKoXkaG1amG89FjJZma0WC X-Proofpoint-ORIG-GUID: l-W2f12pLyIKoXkaG1amG89FjJZma0WC X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDE2NyBTYWx0ZWRfX7nb6dcyRzJSZ Hkmft3vdkHVUietipSJSgtBVOY1TFjj+O2mdn4XksJ3J/8wdvEChQ1I84HjJYvMkokceh6RO+Zc pM0wblQoZ+IF2//C/lf5eOTN7Qsh7GcMD3NPV/nIaEz/WdiwaIuNv4RFvikHvUntHZup/jfktBM s05hVxGDI8BA3nca2GKip6fz3WN8fUYh0xJEN+d3RW+mqvvtPrhYGG1pWPBY8stodFFvGxkgYZt NUMtMP2H6NnUqfrI+08MUtt+Ctd0+n8AyrGqJBjpOF0TfcDVPAhhgUO3v/zrCJCNxcX+isEqAv2 ECbzp+V36UvxMBZMbDHlgUjomruajvAgLmKzqTgP++Kr06vvbVD73VI2NpAn+cjN88vfE7h6SgP PAdO05Uj5F13CxHhHG93Al30GjmDFIhEqVPMRgC8B5Xgl253LzQ4JGKVGnfmgMqymNw5rkcAvgA jS+2Hq3TAG7S8m/g3pQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-23_06,2026-03-23_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 spamscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230167 Content-Type: text/plain; charset="utf-8" Start the graph at trigger callback. Staring the graph at prepare does not make sense as there is no data transfer at this point. Moving this to trigger will also help cope situation where pipewire is not happy if display port is not connected during start. Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 40 +++++++++++++++++-------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c b/sound/soc/qcom/qdsp6= /q6apm-lpass-dais.c index 87f6db12003e..e904066484d5 100644 --- a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +++ b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c @@ -159,6 +159,31 @@ static void q6apm_lpass_dai_shutdown(struct snd_pcm_su= bstream *substream, struct } } =20 +static int q6apm_lpass_dai_trigger(struct snd_pcm_substream *substream, in= t cmd, + struct snd_soc_dai *dai) +{ + struct q6apm_lpass_dai_data *dai_data =3D dev_get_drvdata(dai->dev); + int ret =3D 0; + + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_RESUME: + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + if (!dai_data->is_port_started[dai->id]) { + ret =3D q6apm_graph_start(dai_data->graph[dai->id]); + if (ret < 0) + dev_err(dai->dev, "Failed to start APM port %d\n", dai->id); + else + dai_data->is_port_started[dai->id] =3D true; + } + break; + default: + break; + } + + return ret; +} + static int q6apm_lpass_dai_prepare(struct snd_pcm_substream *substream, st= ruct snd_soc_dai *dai) { struct q6apm_lpass_dai_data *dai_data =3D dev_get_drvdata(dai->dev); @@ -171,10 +196,6 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_subs= tream *substream, struct s q6apm_graph_stop(dai_data->graph[dai->id]); dai_data->is_port_started[dai->id] =3D false; =20 - if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) { - q6apm_graph_close(dai_data->graph[dai->id]); - dai_data->graph[dai->id] =3D NULL; - } } =20 /** @@ -203,14 +224,6 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_subs= tream *substream, struct s dev_err(dai->dev, "Failed to prepare Graph %d\n", rc); goto err; } - - rc =3D q6apm_graph_start(dai_data->graph[dai->id]); - if (rc < 0) { - dev_err(dai->dev, "Failed to start APM port %d\n", dai->id); - goto err; - } - dai_data->is_port_started[dai->id] =3D true; - return 0; err: if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) { @@ -254,6 +267,7 @@ static const struct snd_soc_dai_ops q6dma_ops =3D { .shutdown =3D q6apm_lpass_dai_shutdown, .set_channel_map =3D q6dma_set_channel_map, .hw_params =3D q6dma_hw_params, + .trigger =3D q6apm_lpass_dai_trigger, }; =20 static const struct snd_soc_dai_ops q6i2s_ops =3D { @@ -263,6 +277,7 @@ static const struct snd_soc_dai_ops q6i2s_ops =3D { .set_channel_map =3D q6dma_set_channel_map, .hw_params =3D q6dma_hw_params, .set_fmt =3D q6i2s_set_fmt, + .trigger =3D q6apm_lpass_dai_trigger, }; =20 static const struct snd_soc_dai_ops q6hdmi_ops =3D { @@ -271,6 +286,7 @@ static const struct snd_soc_dai_ops q6hdmi_ops =3D { .shutdown =3D q6apm_lpass_dai_shutdown, .hw_params =3D q6hdmi_hw_params, .set_fmt =3D q6i2s_set_fmt, + .trigger =3D q6apm_lpass_dai_trigger, }; =20 static const struct snd_soc_component_driver q6apm_lpass_dai_component =3D= { --=20 2.47.3