From nobody Thu Apr 9 13:33:11 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 A0ED2367F42 for ; Mon, 9 Mar 2026 06:51:58 +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=1773039122; cv=none; b=XQ+d1fPt9NQM42azfSg7sytGfgulZdyJkUJMUobGDcZCnkxI8wWChI4pB/pX0cuwEHwG+Zlif0ELoy/9GZH5Zx2mtlOwcwxTLhBjXcg2T0VAo9wY2WeD4zPDIKa6/J6ITcPclFhjlREDcYw4n8CovBveRWiKMJtiUP0X3ae74No= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773039122; c=relaxed/simple; bh=B8mb+C29aHmXpiZ0KkyuEWv+QuyMzs+RA8VA08jucnY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S3HF0hPzRXD8l2mPxtQx3g3mjoAlisWSarKV7eybl6H9mzAgDOpRqFYeQqki+G+W2upwGniKcmFQocEpvOA0LLkHNlUIuv/V5bdU0rK93JK2zO9DJEBgD8MzugkU/x30uzRzDlqDrH0+0E9llEWu4hk0K3TIBsNzzog2MYCO3sQ= 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=N2d/YJuB; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZcGvT+ee; 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="N2d/YJuB"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZcGvT+ee" 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 628Mnp7I2071120 for ; Mon, 9 Mar 2026 06:51:58 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=N2d/YJuBs56jlxVkNwleuMJSaYK NgP8IuYQ5GQOaXC2SDLhxAbfE8NMx5/EJzpk+FACga9WJcLVEdP30fEUenug2equ 3hK8LwQze03kg7WqCQXlz2fOJAWJlAhT8ZstTjC11hb+ICYvSsmFI7+Mdt/nJ//9 y4wxsTJfPNJh9a6UIrlDPtRRuI3wnTJbvuUn2Q4utXsDswCxZFlArD2wjjU2rOgc f6ZaLKOh8q8gQo+uNS9Iq3E0epKgdiyqMiOURoqaKazeuAS1BeGVXnXGu27OMsrq OGOuuq5j6pK3b21anaL+Yiou7C/75mPNCKlNZgtTFw5Royp3kdIR1uth9SQ== 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 4crda9c26w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 06:51:58 +0000 (GMT) Received: by mail-qk1-f197.google.com with SMTP id af79cd13be357-8cd7d66afceso876222185a.3 for ; Sun, 08 Mar 2026 23:51:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773039117; x=1773643917; 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=ZcGvT+eeaatu/EkhxaWG68MDV/ZcidHRRK9rCnxszfqc9e/86+0Blu96DT8/Sl6Ocb PDoi2+G07PSEZhMy9A9SbnOktmg5zEz2StzhRquFNhXu4wncetTZAkHawa3OsdWZ83TG wHru3kybis+c5mxSP22UE0hna1v+JDrRHj/kTMg0CR2z22grCLQyEbfGG5p7DYjydeyh 7101ZrSD4XRgkBjPllJ2ydBpSxdI4VizW+a3KjSajn4ZpgLNH4/YD6JXkoaiRlGv8lc2 L4n+Auhpw1jSiCJCrIZTnqFx/voiLqGcJKcpPWRiNE3d/tztxX2yxa7yp9GzffIKuZUR AvYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773039117; x=1773643917; 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=Z978YIDtSv9bsfC5sItctmXCUhu20KSaRmGDJcA4BgZV9DygPPkf9WxYYRR4KylLVu JgBzFjNxjJklkyxCX3IhvSurOBoFE1Bqi+zxvt08ligPJDwegDjVAL7qGEMRLbTvzeLI I1htIaR+GzBf1J6RSIfkS0fTJzAH8JdhOpwUbd0UE5r9bIiR2+t2iIeZcg9J1lRzUEsX 1rRCS/Suiv1RDIu/2yCQ0Gpnn1iOLo385luk8g5IMO+Ci0Vp3zRG2VRWk/hzH5ZBFRmc m+r3sHz44B1mbDS/8+1fYeuUdvfZPChqg8LLvP1QYya7yiSeL5sIcMm3hkq2gBVSdkpx UGag== X-Forwarded-Encrypted: i=1; AJvYcCUQcswNXNiZFP6QKT0FaRj+wpA4Fv8z3egmQLbQ95QDTSYOLZ2/MKHmTfm1mZj4nozjlhPxG60NvlcQTrQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzW441ndSkg69Z4oDn0Pl6tgjdY8ex5uVXSpamwuHayjC/bGfOA rfF5TJSjE7x5arlugIceoQh8vHGe8TB62+qiYE2+u8jdz+vUP0BQHWBsZvX8h96LyMuqde8LA7G 7UhzM/D24BT3aA7qTMj/D/yKqSIL61cRPVf9ImuK8AL3R8h14gIjW+LJ5tsGlEeEkq4Q= X-Gm-Gg: ATEYQzzeape5l1n77FWQeRd9laVfZIfeU3z20IIk4rRG0KLAiTfunR8x8VgTYECdlvD kNwgkl/8zavLrAeNXvWRm16jHqtHw7yWn9keo5Rpc/k190QQr4CGVmzIP9efpmzVVTckawjTZE2 UC3mX5sfm7pVsqLYbgNtI1EDgtpn16bdJMugfxWH+icnO1vTn97dCJUbD133DUsEcsVUJ0+/0My ee0dZyLHosEzeWJzz9OXf6kpAyFz1Kz/J8kSRCDOWMlcQMasxyuxU3YYL3UYLWnlXKqfG98nga2 pQnpCg10Yom1Hu5HXJ9znsV2ibIGI9txNMPRV0FB2UiZyh4op6hZpoqh0mIJuwctCUpysA4cJJa 350a/hfcuKZEiVHYpRoIbL0ytUm4tVeo77o5QNeTpRxqupvT3U1LHhXs= X-Received: by 2002:a05:620a:444f:b0:8cd:8cb8:6ff9 with SMTP id af79cd13be357-8cd8cb87302mr150324785a.34.1773039117228; Sun, 08 Mar 2026 23:51:57 -0700 (PDT) X-Received: by 2002:a05:620a:444f:b0:8cd:8cb8:6ff9 with SMTP id af79cd13be357-8cd8cb87302mr150322885a.34.1773039116846; Sun, 08 Mar 2026 23:51:56 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48529f01997sm80449975e9.14.2026.03.08.23.51.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Mar 2026 23:51:56 -0700 (PDT) From: Srinivas Kandagatla To: broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mohammad.rafi.shaik@oss.qualcomm.com, linux-sound@vger.kernel.org, lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com, johan@kernel.org, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, mailingradian@gmail.com, Srinivas Kandagatla Subject: [PATCH v5 11/13] ASoC: qcom: q6apm-lpass-dai: move graph start to trigger Date: Mon, 9 Mar 2026 06:51:35 +0000 Message-ID: <20260309065137.949053-12-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260309065137.949053-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260309065137.949053-1-srinivas.kandagatla@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDA2MSBTYWx0ZWRfX/pyb96xZZT2D ydroNF89C1VclcpLlaHHHgnpJFvI7IQzxvZuS/l0a9ttkpWbINTTP4+zSm5a9Mxem7uIs2Z/bBe GxYmpmY7xTRLeTOjf9xtIkeNfz+fodhkhBxSzka7x10Xp7gJcSzsS01Jr7k1fF/VzM127HRhmd8 Z4I5gII0WD5U0JKQKRTKyiA//q2F9uwzwtkkPkLQoEiky30QPK9D1Kg3tUtUoptNOcVEBrwTeF8 u6CPt80SHPy+r9WegHtTzlFxqfWH+URfrSl6kswBkaSAXsSmrZAok6AE+dtgPnf8dc4hwmrU6vK rpE2vTrIRavRzWMnTruTnPWBvPEtBhj7bnPoKUrZZUgg6OREpitXLPFBaIvJ8z+pndIEk4oU4UL ekVmz0dw366UjfFm1HimaPFAz8A69N6H4vcnsZzuRQNX4k/WhH9cOx15FlolQ52kXToi59pecjL E+hZWvmQGVKBcoSr9dQ== X-Proofpoint-ORIG-GUID: LFsqDGpXvucPAw5Yb39lzXv2X6Yv-FiJ X-Authority-Analysis: v=2.4 cv=QZtrf8bv c=1 sm=1 tr=0 ts=69ae6e0e 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=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=8udmP7N65bQo3KbB_RsA:9 a=IoWCM6iH3mJn3m4BftBB:22 X-Proofpoint-GUID: LFsqDGpXvucPAw5Yb39lzXv2X6Yv-FiJ 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-09_02,2026-03-06_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 bulkscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 phishscore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090061 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