From nobody Fri Apr 3 17:34:03 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