From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D6DD236A02C for ; Sun, 10 May 2026 08:44:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778402667; cv=none; b=UnMiqfVVD4Gf6MXOG0hMFCXRhHyUgFF07A9X0L17q5eE4Wqi1uJfVzq4AdYn0dHQf6Ox0sy7ov3vGcnmL/CNLyfb3MG3bB4lECMX3YVzkgMJXWhpuCGzlNJ16ci05v2+FYcfa+VR/HIv46kfeSMDCktMt+lPxTiFk+Tc1mnQeEI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778402667; c=relaxed/simple; bh=QvovCQmJ+gNwOKXmFubp1pSBgHFF8PAaDYbodfMiqpM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MBdDdsQ0lTXT6E26kxf1QlUwCWr/eIvHJK5fNoKDGKTyyEcyD3rAsizIMRB3FKgId3CuVDGoGvTAqLpAOUQZ3pFnx2XgwEKq7eWk3SMQ18y5g43ybK8umWQ66qd5MfH/+15kLyqpARkdsKNOeDwPKnel/NLFxHuSzLZ2TaJMOz8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CZLJjTuF; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CZLJjTuF" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2b45cb89f7eso21740535ad.0 for ; Sun, 10 May 2026 01:44:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778402665; x=1779007465; 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=CZTpCoLEIdwznMLuQjUiCorab+JEwmfq0roatC9e14g=; b=CZLJjTuFWFe0/9JkJ77ScGRPDSqFksBX6HeLmJ3JFiJ3owlDrgBZW3rvEN+4M3k1cN 6MVZM9CFNBiDhx6fKhgPPvS+4U7Y+Bsvy084fmWV0j/64zG7xdQs69vzsLeEa1JXZtNd zakQvtf11NsFX/wcGNzSNPZUYYcDv8BtgDN9MtG7ZXFms8100BfHiTrMw01qlY47MIsF XhMWeB6evIgRk3KzSF9+tK1nliL2jIyJfeTm5NcTnnxDPWhz2CiMdUSjMHf7A/dMn2Zb TEpnNaFxic3CAjmKkCJTzM7oB0i1/SGVsLJcwsWJfBQyL7S+HnwUTMUSwGDZzNzkRPd3 qUkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778402665; x=1779007465; 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=CZTpCoLEIdwznMLuQjUiCorab+JEwmfq0roatC9e14g=; b=mBYsq9gbaRVDclOquZjzOpzkkgtUlSNcRa59xMPb46g7DFaoxVTLCs9jLUR2UfQq3n lMQP+2hn01MVBcQLnIDjIz3+4hqlSVcPhJlqEDWGkW1znN8q6sig30J6xR5GIGCeeNBT b16Ko1oxRqLDE6aQ/uQ1XS9u9xtdgucb/bbNoQ3ui+mSmFjfmcmH28F5+xvu/KdToOmz 4h/krtAqBlAkHg2b4UhiVrReKKvW0UsPPiuQs8VatUxmb7XnPesq3OyI1UCUuIrsiMjg sp5zTnK5rfpXMk91/xJvajrLSYKjvZITMfEdYElZRN/qEwAzlEmvQl55K2ZMNB1MITxd 8yng== X-Forwarded-Encrypted: i=1; AFNElJ95tVylo7qYc2+6ENTbT3du/SeMvFsZx9HNYvWzN39VOeIA1p6xmRe3tLuOa2+fHvutmsb29zDoUaqAzqQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzbEHjPu8Pyfy73uQJ40YoUgK6tgpnn9zu8A8dekRcmJxtOR9Ne 6pJEWdN1rFilta/8EfqnaQ6Ox4f6aZEY/DZ29bNsp97ysO1e88lKQys5 X-Gm-Gg: Acq92OGT+eeIZHaGCB7hrmOaq0YBarV32gxiTi5hH3TMT+s+1MIDwUQxkKRzzlPi997 jMck9K5uFQRBuXgyZ4dqubZCUoAEh8MWkkhjuP5ac1bHexnWDO9XU0PJqjo5kHV2NT5tpmXxzXY CGKs++hGopOazZ+euKx7iW75LXZIUUrN87yMDr6AcNYiAgg6WFZ6YIQKqbsOhgIDfiOLmVLE1Xy SoPL7RnNbk8o7wbaYXMPjjMRRHDr5Agc15KkEdzlELx4sCCWtVylWm0iZsa7xiYGJsilM88Jz3j pAJZW2oIH5I5+eHtFi+zNb69kBKTRrTSFQ1AQY5z/tjL4k3jGjdfnsasBGYdbxq/mKfEssbE7gR 8X++Sq9KIBVUzCX1/3cmrBUbG11x2Vz/4m2Vk1pbYAllpZNbgVf6R3viCQJv3Mx6Pfp/ewevoq+ YFk7s92WvCZQQV9K5EonOQdWAGl396HjHBUs67quvDlhhgNjKg9WW8RS29yQ== X-Received: by 2002:a17:902:ea0e:b0:2b4:5743:2395 with SMTP id d9443c01a7336-2ba79287ac5mr216845705ad.19.1778402665317; Sun, 10 May 2026 01:44:25 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2baf1d3ffa0sm70471005ad.25.2026.05.10.01.44.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 May 2026 01:44:25 -0700 (PDT) From: phucduc.bui@gmail.com To: kuninori.morimoto.gx@renesas.com Cc: broonie@kernel.org, conor+dt@kernel.org, devicetree@vger.kernel.org, geert+renesas@glider.be, krzk+dt@kernel.org, lgirdwood@gmail.com, linux-kernel@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-sound@vger.kernel.org, magnus.damm@gmail.com, perex@perex.cz, robh@kernel.org, tiwai@suse.com, bui duc phuc Subject: [PATCH v3 09/10] ASoC: renesas: fsi: Use clock prepare handling in startup/shutdown Date: Sun, 10 May 2026 15:43:02 +0700 Message-ID: <20260510084303.122426-10-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260510084303.122426-1-phucduc.bui@gmail.com> References: <20260510084303.122426-1-phucduc.bui@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: bui duc phuc Use fsi_clk_prepare() and fsi_clk_unprepare() in dai_startup() and dai_shutdown(). Prepare clocks only during active audio streams to reduce unnecessary power usage, and ensure clk_prepare() and related operations run in non-atomic contexts. Signed-off-by: bui duc phuc --- sound/soc/renesas/fsi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/renesas/fsi.c b/sound/soc/renesas/fsi.c index b93809b5da15..c3ac8b30f342 100644 --- a/sound/soc/renesas/fsi.c +++ b/sound/soc/renesas/fsi.c @@ -1644,9 +1644,16 @@ static int fsi_dai_startup(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { struct fsi_priv *fsi = fsi_get_priv(substream); + int ret; fsi_clk_invalid(fsi); + if (fsi->clock.count == 0) { + ret = fsi_clk_prepare(fsi); + if (ret) + return ret; + } + return 0; } @@ -1655,6 +1662,8 @@ static void fsi_dai_shutdown(struct snd_pcm_substream *substream, { struct fsi_priv *fsi = fsi_get_priv(substream); + if (fsi->clock.count == 0) + fsi_clk_unprepare(fsi); fsi_clk_invalid(fsi); } -- 2.43.0