From nobody Thu Apr 2 01:47:52 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCA0D3AEF42 for ; Mon, 30 Mar 2026 08:21:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858915; cv=none; b=DyqaevXa91G0EZb+TnNrdaU5KnEUd/Wy3Cyv6NxCELAXvPoUkEpYlS4CCz/EbYqzp16xE68AqxoBc47GvJ2FsLmfMxnYHXZtlo0eqYycY5/As/2I4FuiYJh+/0RPs8tMgyVezWLriOKtxCf+WlWIYDUlKtM7nMr4mcquqvb0c1Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774858915; c=relaxed/simple; bh=HcBUaG07YHPkjw7AtCbbPauazCJLhtW0eS3T+3u2Oe8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZIQomJtYFgpH0o+/+vMow/5ASwKQxYeiExg+2D4NcrRtL6osXPZS6hWp9VCNlGK7uG6X62GhwApSIZpT+6qw30eauM7wm+Rkvelp+ZhtDAoA/mAeVzQSQPWSTzOQMBcKwpZzscNizOZhsvgUrFv+COzZJ5gFNh3ZJVIQi7IOEqI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=DVa1vPa9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gKHsbLkk; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="DVa1vPa9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gKHsbLkk" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 62U58k3X2954230 for ; Mon, 30 Mar 2026 08:21:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=K2FJHPPcvdd DuyFi5b9Enk3oj2KWR4s1Mi0JeIXu8dk=; b=DVa1vPa9Y4wBlOhXCMKHzVMAzBY Kz7vtZNCLU2TDiWtpr97zM4Q5yxljodCNoF2LvtMNP6g4AkOOaLFas04H0j0x89q /0Egm/ctAkOX8sa7qeoJ7bfcrjNzOSQL2ckCfFEiGJzVZDpdDfpX7Df6WgyvhSIr DoNMhmk+VEm/CfM0XiOG6WB3BDB/fri1Q3xsc+cvquVUVJ6+JMjxzTH2TQoVoKEw Bxn7qO5S9x7egH/hwWi2Hx8QPkWXY5qIgut1iZHwsNH8eL2LSUDvy8vym5ygpx2c GSK0bU9L+Zhy3TVswmmQnvay4E5eheAlB9AEpWkUZMpFlPcFDxudJkeVi8g== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d6wqek2fy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 30 Mar 2026 08:21:53 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-50b4987c698so72078651cf.0 for ; Mon, 30 Mar 2026 01:21:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774858912; x=1775463712; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=K2FJHPPcvddDuyFi5b9Enk3oj2KWR4s1Mi0JeIXu8dk=; b=gKHsbLkkn3WCJHWEvbQIYufHSGlyQr7jq3p1LK2TuwE0MWbXGJZ6Wh+GAjYDJfiy/O PUvLBXlttrn1PteDIpJi/YZolE85Psgat46KchGFoVAgfRD2vtswBgW16OD08M5rsBUq 8bf6krjwNHd05RIEZBwKftp9MjZ1fPttXMTzQ7U1iZIE8Zl7mQLKBTbW0hUokayNF8SY 7u8dNRWXvX4589mreHEkGPWmqtXtjhXJeX7eixgDtzQAYZUhyABwMiyaXb5kpCGuLGCM X7evHBAddigVHQQ3ouaguzRr9AhE8tp6XXtRuMnto+yilII94l0Wd4r53FYFKhSc94hT yuaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774858912; x=1775463712; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=K2FJHPPcvddDuyFi5b9Enk3oj2KWR4s1Mi0JeIXu8dk=; b=qA4ttGsQ7FJhJQ+ZrPNb9xkzZaSWHIqunxl8sE+z2ezM+uR9ejWo0m308bpWUjGFG7 zZcjnCj40Xfb2bpYud5PItGH9wjoXvDw7H8D0DcIerQMmGeu+Lw0m90SWS8WlxRAQqEd Kt9U+ax+y43+ps5dETHIpoieF69tQP0qnaV7pPfKpu6+ttdTU5+Ce+yUu04Ia5gNGSzd 06Wd7IS9uLfGiVQ+fiy3/Eg5x8/zZRPLzIEmspOd+Z2Ifksve389TF+Uvey3JTU21sqe O3sVYukWchpFspN3Z0OxYlTYuvKKEiM3vO3KbXViNcEg+fnHOshGjJK3Z4KzrRnpQHGV ZhaQ== X-Forwarded-Encrypted: i=1; AJvYcCWEtMNBii+FfFXJ4r4xEGTkzW0R27q7s8LcAODVSIKDuBvD0SzjOW13j3SPsMNH8JrTu1aC8oCHI7pf1yk=@vger.kernel.org X-Gm-Message-State: AOJu0YzHL0h8lqgpCupxur8cnoEJ4V/YIJG8tX2iGlXt8EEIR2K1kQqs hQaOpbDDwW6BkRF8tOhS9FHRw4ejeYTHxlLPrqsdCYRyC8ZVrEr8CeMnhmR0D4ktAgqgyBTesjJ siVZTPhDRRh7gIiT6kFRCTbrsQQgvaWTkYlZZFl2HLJHq5g9IlF+OjXexTJO1/WY/4KA= X-Gm-Gg: ATEYQzxPZlRJREVhpWVitB76a+9TQTWD3ipUgYqzvl3uA2Q53yoi8IO3aWtmeUDpzh0 Yt7vYrwsuyFFHkzPOjo3B8luBheqT43rCfj6+kqVe8iw2gYKD+ycsEX5tq8YK6+DpoJrKOIeFbP O8vsAbUOo29mCahugHXm0RC988scL4GJcDd7M/iWHFY5K7REdlgnX0gFUHUB4e8UI755uaSMqqY st96YZrjQ1hI8jw7skO5YxK2xAwrt+pXPEL36CLcyOCIWPM5Aukyscpr9j1kCDkDT5Cvi7rhaR7 L2LTmQYgntjQXtBpOJwuyLUiMrpJdUzO0QfltP+qWQwdy5UOof99XqTkCvB2J6kIdkfZiFpjkgG +c+lSZcv4T5V3bYtB+b/SNPtw+GwwAo13B9r5sPscPiLoAlPn4hOo554= X-Received: by 2002:ac8:5a46:0:b0:50b:41ec:5e85 with SMTP id d75a77b69052e-50b993de828mr186876761cf.11.1774858912012; Mon, 30 Mar 2026 01:21:52 -0700 (PDT) X-Received: by 2002:ac8:5a46:0:b0:50b:41ec:5e85 with SMTP id d75a77b69052e-50b993de828mr186876431cf.11.1774858911593; Mon, 30 Mar 2026 01:21:51 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43cf1db08e6sm26244773f8f.0.2026.03.30.01.21.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:21:50 -0700 (PDT) From: Srinivas Kandagatla To: broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mohammad.rafi.shaik@oss.qualcomm.com, linux-sound@vger.kernel.org, lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com, johan@kernel.org, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, srini@kernel.org, val@packett.cool, mailingradian@gmail.com, Srinivas Kandagatla Subject: [PATCH v8 11/13] ASoC: qcom: q6apm-lpass-dai: move graph start to trigger Date: Mon, 30 Mar 2026 08:21:03 +0000 Message-ID: <20260330082105.278055-12-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260330082105.278055-1-srinivas.kandagatla@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=Jo78bc4C c=1 sm=1 tr=0 ts=69ca32a1 cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=8udmP7N65bQo3KbB_RsA:9 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: M1hRHk8c-XYkljDPqrmSOSQ_9oqpSjUw X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzMwMDA2NSBTYWx0ZWRfX1DrbiBuOpM9q 4IoncWVNNq8rsUnXuebUh6hc1HLHjnauuSqBA9ZGpzNWtgGyqjS+yXp8v+qOd2vfC/JsAkRgIZU 5ytFRD56Xw9RAVMPh4ac66kxkemf4xqcYLVT60XbzG7Ba0sqkJczNgHSADtJvFxzhaBNSKwvq+O k1vaTAZdiob90XBVLYCN6IXUVh/oqcvMT3XnNeQAc1qKGb9mOXUAqs7UaP7wktCbP4XcRxMifm7 /82MDRxJy+22yLV4UrEe1S/H9fwukkJC5SCiOMeFlaE00iyFja5RAVw2QCqhdgbRxv/fLRIwdxH ZiTut/M5p4yEVEA0/sDDT393xANADeZpamvJcmaHz+jCPJmopNJwX7rg6uCC/MJt2zEb2K709YH yPiBR05/sj1+XlzbOIpo9j6M21iCd4r29wxkQszIlSsHDOq8j3bexHoOxtpf/qJtR7DPVzHGmHo BzUJSBugprm8DVZv1VQ== X-Proofpoint-ORIG-GUID: M1hRHk8c-XYkljDPqrmSOSQ_9oqpSjUw X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-29_05,2026-03-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 bulkscore=0 malwarescore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603300065 Content-Type: text/plain; charset="utf-8" Start the graph at trigger callback. Staring the graph at prepare does not make sense as there is no data transfer at this point. Moving this to trigger will also help cope situation where pipewire is not happy if display port is not connected during start. Signed-off-by: Srinivas Kandagatla --- sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 40 +++++++++++++++++-------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c b/sound/soc/qcom/qdsp6= /q6apm-lpass-dais.c index 87f6db12003e..e904066484d5 100644 --- a/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +++ b/sound/soc/qcom/qdsp6/q6apm-lpass-dais.c @@ -159,6 +159,31 @@ static void q6apm_lpass_dai_shutdown(struct snd_pcm_su= bstream *substream, struct } } =20 +static int q6apm_lpass_dai_trigger(struct snd_pcm_substream *substream, in= t cmd, + struct snd_soc_dai *dai) +{ + struct q6apm_lpass_dai_data *dai_data =3D dev_get_drvdata(dai->dev); + int ret =3D 0; + + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_RESUME: + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + if (!dai_data->is_port_started[dai->id]) { + ret =3D q6apm_graph_start(dai_data->graph[dai->id]); + if (ret < 0) + dev_err(dai->dev, "Failed to start APM port %d\n", dai->id); + else + dai_data->is_port_started[dai->id] =3D true; + } + break; + default: + break; + } + + return ret; +} + static int q6apm_lpass_dai_prepare(struct snd_pcm_substream *substream, st= ruct snd_soc_dai *dai) { struct q6apm_lpass_dai_data *dai_data =3D dev_get_drvdata(dai->dev); @@ -171,10 +196,6 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_subs= tream *substream, struct s q6apm_graph_stop(dai_data->graph[dai->id]); dai_data->is_port_started[dai->id] =3D false; =20 - if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) { - q6apm_graph_close(dai_data->graph[dai->id]); - dai_data->graph[dai->id] =3D NULL; - } } =20 /** @@ -203,14 +224,6 @@ static int q6apm_lpass_dai_prepare(struct snd_pcm_subs= tream *substream, struct s dev_err(dai->dev, "Failed to prepare Graph %d\n", rc); goto err; } - - rc =3D q6apm_graph_start(dai_data->graph[dai->id]); - if (rc < 0) { - dev_err(dai->dev, "Failed to start APM port %d\n", dai->id); - goto err; - } - dai_data->is_port_started[dai->id] =3D true; - return 0; err: if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) { @@ -254,6 +267,7 @@ static const struct snd_soc_dai_ops q6dma_ops =3D { .shutdown =3D q6apm_lpass_dai_shutdown, .set_channel_map =3D q6dma_set_channel_map, .hw_params =3D q6dma_hw_params, + .trigger =3D q6apm_lpass_dai_trigger, }; =20 static const struct snd_soc_dai_ops q6i2s_ops =3D { @@ -263,6 +277,7 @@ static const struct snd_soc_dai_ops q6i2s_ops =3D { .set_channel_map =3D q6dma_set_channel_map, .hw_params =3D q6dma_hw_params, .set_fmt =3D q6i2s_set_fmt, + .trigger =3D q6apm_lpass_dai_trigger, }; =20 static const struct snd_soc_dai_ops q6hdmi_ops =3D { @@ -271,6 +286,7 @@ static const struct snd_soc_dai_ops q6hdmi_ops =3D { .shutdown =3D q6apm_lpass_dai_shutdown, .hw_params =3D q6hdmi_hw_params, .set_fmt =3D q6i2s_set_fmt, + .trigger =3D q6apm_lpass_dai_trigger, }; =20 static const struct snd_soc_component_driver q6apm_lpass_dai_component =3D= { --=20 2.47.3