From nobody Tue Dec 16 07:10:21 2025 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (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 750A623DEB6; Tue, 27 May 2025 08:25:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334320; cv=none; b=sIODWEtDm+TlLnIkQoqbNQUEqj7Eu2/H4PXJbL5gKV4Z+C9ArNpWYmD769NhBQShFmxcApxyWLrjs3l5N6ma8Kp05JgyIasUqViInM4xpkvUI7OsrODosnTNAgexULaPdfhFdvc+l3aBcqqpupGvgN/2isQ2OvgKrRVMcp5hKNY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334320; c=relaxed/simple; bh=6DdQtiGFxQaiDIO2uSARxYarp5J+wHjzYtW/u6Hxxdo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=quVAm9rnWH6867TxCuhHbZjmuhLUzM3zXxhpjF35yng4sonr5ngKlblIHJLsG7UlrclYn5bnd+bTzPdxLLB0lPnf26TOnJUoBTFjj1aLT9QIZ1eWIBx7CGonlfKaNZRcntQOaKxvyB0w9cDlDPH8x4Ck+0F0gnZGWHAqpJkhUr4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 19fda2543ad411f0b29709d653e92f7d-20250527 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.45,REQID:5288ef3e-1cc9-479a-bf8b-78673f6d54d0,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:6493067,CLOUDID:aba3c0aaf0b316ece59aa04ed4255f45,BulkI D:nil,BulkQuantity:0,Recheck:0,SF:81|82|102,TC:nil,Content:0|50,EDM:-3,IP: nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,L ES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 19fda2543ad411f0b29709d653e92f7d-20250527 Received: from node4.com.cn [(10.44.16.170)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 2003112057; Tue, 27 May 2025 16:25:09 +0800 Received: from node4.com.cn (localhost [127.0.0.1]) by node4.com.cn (NSMail) with SMTP id D729716001F49; Tue, 27 May 2025 16:25:08 +0800 (CST) X-ns-mid: postfix-683576E4-6788702683 Received: from kylin-pc.. (unknown [172.25.130.133]) by node4.com.cn (NSMail) with ESMTPA id 572B316001F55; Tue, 27 May 2025 08:25:05 +0000 (UTC) From: Ai Chao To: perex@perex.cz, tiwai@suse.com, johannes@sipsolutions.net, kuninori.morimoto.gx@renesas.com, lgirdwood@gmail.com, broonie@kernel.org, jbrunet@baylibre.com, neil.armstrong@linaro.org, khilman@baylibre.com, martin.blumenstingl@googlemail.com, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, festevam@gmail.com, nicoleotsuka@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de, srinivas.kandagatla@linaro.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, imx@lists.linux.dev, kernel@pengutronix.de, linux-arm-msm@vger.kernel.org, Ai Chao Subject: [PATCH v3 1/6] ALSA: ppc: Use helper function for_each_child_of_node_scoped() Date: Tue, 27 May 2025 16:24:41 +0800 Message-ID: <20250527082446.2265500-2-aichao@kylinos.cn> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250527082446.2265500-1-aichao@kylinos.cn> References: <20250527082446.2265500-1-aichao@kylinos.cn> 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 Content-Type: text/plain; charset="utf-8" The for_each_child_of_node_scoped() helper provides a scope-based clean-up functionality to put the device_node automatically, and as such, there is no need to call of_node_put() directly. Signed-off-by: Ai Chao --- sound/ppc/tumbler.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sound/ppc/tumbler.c b/sound/ppc/tumbler.c index 3c09660e1522..b81d0789b9fb 100644 --- a/sound/ppc/tumbler.c +++ b/sound/ppc/tumbler.c @@ -1343,7 +1343,7 @@ int snd_pmac_tumbler_init(struct snd_pmac *chip) int i, err; struct pmac_tumbler *mix; const u32 *paddr; - struct device_node *tas_node, *np; + struct device_node *tas_node; char *chipname; =20 request_module("i2c-powermac"); @@ -1358,13 +1358,12 @@ int snd_pmac_tumbler_init(struct snd_pmac *chip) mix->anded_reset =3D 0; mix->reset_on_sleep =3D 1; =20 - for_each_child_of_node(chip->node, np) { + for_each_child_of_node_scoped(chip->node, np) { if (of_node_name_eq(np, "sound")) { if (of_property_read_bool(np, "has-anded-reset")) mix->anded_reset =3D 1; if (of_property_present(np, "layout-id")) mix->reset_on_sleep =3D 0; - of_node_put(np); break; } } --=20 2.47.1 From nobody Tue Dec 16 07:10:21 2025 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (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 2F07316F841; Tue, 27 May 2025 08:25:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334321; cv=none; b=XNXPMJdo4ORCNvm+kiOoEKlL3+jPtdZipekgYQQ34TPT5wyxT2r2fDVK7Ev+RwSBu/IQ5XP+Y2IWN5PmZ5wPc6jYsrXrQlUze8SsvI0hIfB1eMK6V+I1aK03/w8WEo0rKjb9CmSD4G7R1/Cpfkc9yJuTHoEFN+IMq9WotwRY2nQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334321; c=relaxed/simple; bh=2lXgsHyitBH3vl8/oGOpJhgM0a0wjWZfp/xT88llvAU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qI06hviXd0iKCmAbUc1erD52oJlHAogIueXMpcN5IQeih9dFtLYIPfFtTxa77fGoqgtjimmF9POBMFtNkDu4imA875131kRR/WhplDr6PtvdrENQaurBESEtwjGcBYd25lsFZhVKDQlHA1qzt0IdlrsMOqItgcu8qRCBiZ6YiXE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 1be07e0c3ad411f0b29709d653e92f7d-20250527 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.45,REQID:d92f471f-a90a-48cf-9ece-d16b7edd8a45,IP:0,U RL:0,TC:0,Content:-5,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:-5 X-CID-META: VersionHash:6493067,CLOUDID:ccf9f53adcad70a7c340a906c6d1460f,BulkI D:nil,BulkQuantity:0,Recheck:0,SF:81|82|102,TC:nil,Content:0|50,EDM:-3,IP: nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,L ES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 1be07e0c3ad411f0b29709d653e92f7d-20250527 Received: from node4.com.cn [(10.44.16.170)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 974318342; Tue, 27 May 2025 16:25:12 +0800 Received: from node4.com.cn (localhost [127.0.0.1]) by node4.com.cn (NSMail) with SMTP id 124C916001F52; Tue, 27 May 2025 16:25:12 +0800 (CST) X-ns-mid: postfix-683576E7-8481202684 Received: from kylin-pc.. (unknown [172.25.130.133]) by node4.com.cn (NSMail) with ESMTPA id AC60716001F49; Tue, 27 May 2025 08:25:09 +0000 (UTC) From: Ai Chao To: perex@perex.cz, tiwai@suse.com, johannes@sipsolutions.net, kuninori.morimoto.gx@renesas.com, lgirdwood@gmail.com, broonie@kernel.org, jbrunet@baylibre.com, neil.armstrong@linaro.org, khilman@baylibre.com, martin.blumenstingl@googlemail.com, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, festevam@gmail.com, nicoleotsuka@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de, srinivas.kandagatla@linaro.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, imx@lists.linux.dev, kernel@pengutronix.de, linux-arm-msm@vger.kernel.org, Ai Chao Subject: [PATCH v3 2/6] ALSA: aoa: Use helper function for_each_child_of_node_scoped() Date: Tue, 27 May 2025 16:24:42 +0800 Message-ID: <20250527082446.2265500-3-aichao@kylinos.cn> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250527082446.2265500-1-aichao@kylinos.cn> References: <20250527082446.2265500-1-aichao@kylinos.cn> 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 Content-Type: text/plain; charset="utf-8" The for_each_child_of_node_scoped() helper provides a scope-based clean-up functionality to put the device_node automatically. Signed-off-by: Ai Chao --- sound/aoa/soundbus/i2sbus/core.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sound/aoa/soundbus/i2sbus/core.c b/sound/aoa/soundbus/i2sbus/c= ore.c index ce84288168e4..c1bd0565fc51 100644 --- a/sound/aoa/soundbus/i2sbus/core.c +++ b/sound/aoa/soundbus/i2sbus/core.c @@ -155,7 +155,7 @@ static int i2sbus_add_dev(struct macio_dev *macio, struct device_node *np) { struct i2sbus_dev *dev; - struct device_node *child, *sound =3D NULL; + struct device_node *sound =3D NULL; struct resource *r; int i, layout =3D 0, rlen, ok =3D force; char node_name[8]; @@ -178,7 +178,7 @@ static int i2sbus_add_dev(struct macio_dev *macio, return 0; =20 i =3D 0; - for_each_child_of_node(np, child) { + for_each_child_of_node_scoped(np, child) { if (of_node_name_eq(child, "sound")) { i++; sound =3D child; @@ -335,7 +335,6 @@ static int i2sbus_add_dev(struct macio_dev *macio, =20 static int i2sbus_probe(struct macio_dev* dev, const struct of_device_id *= match) { - struct device_node *np; int got =3D 0, err; struct i2sbus_control *control =3D NULL; =20 @@ -347,7 +346,7 @@ static int i2sbus_probe(struct macio_dev* dev, const st= ruct of_device_id *match) return -ENODEV; } =20 - for_each_child_of_node(dev->ofdev.dev.of_node, np) { + for_each_child_of_node_scoped(dev->ofdev.dev.of_node, np) { if (of_device_is_compatible(np, "i2sbus") || of_device_is_compatible(np, "i2s-modem")) { got +=3D i2sbus_add_dev(dev, control, np); --=20 2.47.1 From nobody Tue Dec 16 07:10:21 2025 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (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 8A47024BCF5; Tue, 27 May 2025 08:25:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334323; cv=none; b=KC2AGtC5rW/cHJQaTFNeSVkB5ox8H+NxPBRSrTgVBgZQeLNcnCXphUiaWGg59upMGGT3KZS4xIVZaCSru1JlBL2NqLMwfFM13XhzQ/xVZdJ7reMo8gQxPiAk0BsQY+wXDQ+qMGKS12jj/1Q0G/0jHPrRwpv/mzmH+49KAj5nf1k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334323; c=relaxed/simple; bh=yOymjdwydfpa+afPNd97j9EPZZ1qq88+Yaof2Tt2iBI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HXJqGhnwq+f2ZTBuO6GB9V5DTsBpf2jdbflkgPS6PoLiV5ZZqjs/KvXHLv+ydoLV6rmqT/6TdUAk0YI7vg4B4HCfUKs4JvmqBlEBTAoMg+NwWi5QkmD06qVWBTYG3mFKQLtvTt0qSo8WhMHkwhr2FOGsAReJsOGwheRliM7DGn4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 1de45bc43ad411f0b29709d653e92f7d-20250527 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.45,REQID:0dbfc6fc-0daa-4c27-99a6-e9be7b1d50ac,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:6493067,CLOUDID:786553c96efa0c9b4c71638004cb7695,BulkI D:nil,BulkQuantity:0,Recheck:0,SF:81|82|102,TC:nil,Content:0|50,EDM:-3,IP: nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,L ES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 1de45bc43ad411f0b29709d653e92f7d-20250527 Received: from node4.com.cn [(10.44.16.170)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 149048450; Tue, 27 May 2025 16:25:15 +0800 Received: from node4.com.cn (localhost [127.0.0.1]) by node4.com.cn (NSMail) with SMTP id 7470116001F52; Tue, 27 May 2025 16:25:15 +0800 (CST) X-ns-mid: postfix-683576EB-2165382685 Received: from kylin-pc.. (unknown [172.25.130.133]) by node4.com.cn (NSMail) with ESMTPA id 2032216001F49; Tue, 27 May 2025 08:25:13 +0000 (UTC) From: Ai Chao To: perex@perex.cz, tiwai@suse.com, johannes@sipsolutions.net, kuninori.morimoto.gx@renesas.com, lgirdwood@gmail.com, broonie@kernel.org, jbrunet@baylibre.com, neil.armstrong@linaro.org, khilman@baylibre.com, martin.blumenstingl@googlemail.com, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, festevam@gmail.com, nicoleotsuka@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de, srinivas.kandagatla@linaro.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, imx@lists.linux.dev, kernel@pengutronix.de, linux-arm-msm@vger.kernel.org, Ai Chao Subject: [PATCH v3 3/6] ASoC: renesas: Use helper function for_each_child_of_node_scoped() Date: Tue, 27 May 2025 16:24:43 +0800 Message-ID: <20250527082446.2265500-4-aichao@kylinos.cn> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250527082446.2265500-1-aichao@kylinos.cn> References: <20250527082446.2265500-1-aichao@kylinos.cn> 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 Content-Type: text/plain; charset="utf-8" The for_each_child_of_node_scoped() helper provides a scope-based clean-up functionality to put the device_node automatically, and as such, there is no need to call of_node_put() directly. Acked-by: Kuninori Morimoto Signed-off-by: Ai Chao --- sound/soc/renesas/rcar/core.c | 35 +++++++++++------------------------ sound/soc/renesas/rcar/ctu.c | 8 ++------ sound/soc/renesas/rcar/dma.c | 4 +--- sound/soc/renesas/rcar/dvc.c | 8 ++------ sound/soc/renesas/rcar/mix.c | 8 ++------ sound/soc/renesas/rcar/src.c | 10 ++-------- sound/soc/renesas/rcar/ssi.c | 18 +++++------------- sound/soc/renesas/rcar/ssiu.c | 7 ++----- 8 files changed, 27 insertions(+), 71 deletions(-) diff --git a/sound/soc/renesas/rcar/core.c b/sound/soc/renesas/rcar/core.c index 30afc942d381..260c71888061 100644 --- a/sound/soc/renesas/rcar/core.c +++ b/sound/soc/renesas/rcar/core.c @@ -1075,7 +1075,6 @@ static void rsnd_parse_tdm_split_mode(struct rsnd_pri= v *priv, { struct device *dev =3D rsnd_priv_to_dev(priv); struct device_node *ssiu_np =3D rsnd_ssiu_of_node(priv); - struct device_node *np; int is_play =3D rsnd_io_is_play(io); int i; =20 @@ -1094,7 +1093,7 @@ static void rsnd_parse_tdm_split_mode(struct rsnd_pri= v *priv, if (!node) break; =20 - for_each_child_of_node(ssiu_np, np) { + for_each_child_of_node_scoped(ssiu_np, np) { if (np =3D=3D node) { rsnd_flags_set(io, RSND_STREAM_TDM_SPLIT); dev_dbg(dev, "%s is part of TDM Split\n", io->name); @@ -1154,21 +1153,18 @@ void rsnd_parse_connect_common(struct rsnd_dai *rda= i, char *name, { struct rsnd_priv *priv =3D rsnd_rdai_to_priv(rdai); struct device *dev =3D rsnd_priv_to_dev(priv); - struct device_node *np; int i; =20 if (!node) return; =20 i =3D 0; - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { struct rsnd_mod *mod; =20 i =3D rsnd_node_fixed_index(dev, np, name, i); - if (i < 0) { - of_node_put(np); + if (i < 0) break; - } =20 mod =3D mod_get(priv, i); =20 @@ -1217,16 +1213,13 @@ int rsnd_node_fixed_index(struct device *dev, struc= t device_node *node, char *na int rsnd_node_count(struct rsnd_priv *priv, struct device_node *node, char= *name) { struct device *dev =3D rsnd_priv_to_dev(priv); - struct device_node *np; int i; =20 i =3D 0; - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { i =3D rsnd_node_fixed_index(dev, np, name, i); - if (i < 0) { - of_node_put(np); + if (i < 0) return 0; - } i++; } =20 @@ -1250,7 +1243,7 @@ static int rsnd_dai_of_node(struct rsnd_priv *priv, i= nt *is_graph) { struct device *dev =3D rsnd_priv_to_dev(priv); struct device_node *np =3D dev->of_node; - struct device_node *ports, *node; + struct device_node *node; int nr =3D 0; int i =3D 0; =20 @@ -1270,7 +1263,7 @@ static int rsnd_dai_of_node(struct rsnd_priv *priv, i= nt *is_graph) =20 of_node_put(node); =20 - for_each_child_of_node(np, node) { + for_each_child_of_node_scoped(np, node) { if (!of_node_name_eq(node, RSND_NODE_DAI)) continue; =20 @@ -1279,7 +1272,6 @@ static int rsnd_dai_of_node(struct rsnd_priv *priv, i= nt *is_graph) i++; if (i >=3D RSND_MAX_COMPONENT) { dev_info(dev, "reach to max component\n"); - of_node_put(node); break; } } @@ -1290,7 +1282,7 @@ static int rsnd_dai_of_node(struct rsnd_priv *priv, i= nt *is_graph) /* * Audio-Graph-Card */ - for_each_child_of_node(np, ports) { + for_each_child_of_node_scoped(np, ports) { node =3D rsnd_pick_endpoint_node_for_ports(ports, np); if (!node) continue; @@ -1299,7 +1291,6 @@ static int rsnd_dai_of_node(struct rsnd_priv *priv, i= nt *is_graph) i++; if (i >=3D RSND_MAX_COMPONENT) { dev_info(dev, "reach to max component\n"); - of_node_put(ports); break; } } @@ -1500,10 +1491,9 @@ static int rsnd_dai_probe(struct rsnd_priv *priv) dai_i =3D 0; if (is_graph) { struct device_node *dai_np_port; - struct device_node *ports; struct device_node *dai_np; =20 - for_each_child_of_node(np, ports) { + for_each_child_of_node_scoped(np, ports) { dai_np_port =3D rsnd_pick_endpoint_node_for_ports(ports, np); if (!dai_np_port) continue; @@ -1520,14 +1510,11 @@ static int rsnd_dai_probe(struct rsnd_priv *priv) } } } else { - struct device_node *node; - struct device_node *dai_np; - - for_each_child_of_node(np, node) { + for_each_child_of_node_scoped(np, node) { if (!of_node_name_eq(node, RSND_NODE_DAI)) continue; =20 - for_each_child_of_node(node, dai_np) { + for_each_child_of_node_scoped(node, dai_np) { __rsnd_dai_probe(priv, dai_np, np, dai_i, dai_i); if (!rsnd_is_gen1(priv) && !rsnd_is_gen2(priv)) { rdai =3D rsnd_rdai_get(priv, dai_i); diff --git a/sound/soc/renesas/rcar/ctu.c b/sound/soc/renesas/rcar/ctu.c index a26ec7b780cd..bd4c61f9fb3c 100644 --- a/sound/soc/renesas/rcar/ctu.c +++ b/sound/soc/renesas/rcar/ctu.c @@ -316,7 +316,6 @@ struct rsnd_mod *rsnd_ctu_mod_get(struct rsnd_priv *pri= v, int id) int rsnd_ctu_probe(struct rsnd_priv *priv) { struct device_node *node; - struct device_node *np; struct device *dev =3D rsnd_priv_to_dev(priv); struct rsnd_ctu *ctu; struct clk *clk; @@ -344,7 +343,7 @@ int rsnd_ctu_probe(struct rsnd_priv *priv) =20 i =3D 0; ret =3D 0; - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { ctu =3D rsnd_ctu_get(priv, i); =20 /* @@ -357,16 +356,13 @@ int rsnd_ctu_probe(struct rsnd_priv *priv) clk =3D devm_clk_get(dev, name); if (IS_ERR(clk)) { ret =3D PTR_ERR(clk); - of_node_put(np); goto rsnd_ctu_probe_done; } =20 ret =3D rsnd_mod_init(priv, rsnd_mod_get(ctu), &rsnd_ctu_ops, clk, RSND_MOD_CTU, i); - if (ret) { - of_node_put(np); + if (ret) goto rsnd_ctu_probe_done; - } =20 i++; } diff --git a/sound/soc/renesas/rcar/dma.c b/sound/soc/renesas/rcar/dma.c index 2342bbb6fe92..2035ce06fe4c 100644 --- a/sound/soc/renesas/rcar/dma.c +++ b/sound/soc/renesas/rcar/dma.c @@ -194,14 +194,12 @@ struct dma_chan *rsnd_dma_request_channel(struct devi= ce_node *of_node, char *nam struct rsnd_priv *priv =3D rsnd_mod_to_priv(mod); struct device *dev =3D rsnd_priv_to_dev(priv); struct dma_chan *chan =3D NULL; - struct device_node *np; int i =3D 0; =20 - for_each_child_of_node(of_node, np) { + for_each_child_of_node_scoped(of_node, np) { i =3D rsnd_node_fixed_index(dev, np, name, i); if (i < 0) { chan =3D NULL; - of_node_put(np); break; } =20 diff --git a/sound/soc/renesas/rcar/dvc.c b/sound/soc/renesas/rcar/dvc.c index da91dd301aab..988cbddbc611 100644 --- a/sound/soc/renesas/rcar/dvc.c +++ b/sound/soc/renesas/rcar/dvc.c @@ -324,7 +324,6 @@ struct rsnd_mod *rsnd_dvc_mod_get(struct rsnd_priv *pri= v, int id) int rsnd_dvc_probe(struct rsnd_priv *priv) { struct device_node *node; - struct device_node *np; struct device *dev =3D rsnd_priv_to_dev(priv); struct rsnd_dvc *dvc; struct clk *clk; @@ -352,7 +351,7 @@ int rsnd_dvc_probe(struct rsnd_priv *priv) =20 i =3D 0; ret =3D 0; - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { dvc =3D rsnd_dvc_get(priv, i); =20 snprintf(name, RSND_DVC_NAME_SIZE, "%s.%d", @@ -361,16 +360,13 @@ int rsnd_dvc_probe(struct rsnd_priv *priv) clk =3D devm_clk_get(dev, name); if (IS_ERR(clk)) { ret =3D PTR_ERR(clk); - of_node_put(np); goto rsnd_dvc_probe_done; } =20 ret =3D rsnd_mod_init(priv, rsnd_mod_get(dvc), &rsnd_dvc_ops, clk, RSND_MOD_DVC, i); - if (ret) { - of_node_put(np); + if (ret) goto rsnd_dvc_probe_done; - } =20 i++; } diff --git a/sound/soc/renesas/rcar/mix.c b/sound/soc/renesas/rcar/mix.c index 024d91cc8748..aea74e703305 100644 --- a/sound/soc/renesas/rcar/mix.c +++ b/sound/soc/renesas/rcar/mix.c @@ -288,7 +288,6 @@ struct rsnd_mod *rsnd_mix_mod_get(struct rsnd_priv *pri= v, int id) int rsnd_mix_probe(struct rsnd_priv *priv) { struct device_node *node; - struct device_node *np; struct device *dev =3D rsnd_priv_to_dev(priv); struct rsnd_mix *mix; struct clk *clk; @@ -316,7 +315,7 @@ int rsnd_mix_probe(struct rsnd_priv *priv) =20 i =3D 0; ret =3D 0; - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { mix =3D rsnd_mix_get(priv, i); =20 snprintf(name, MIX_NAME_SIZE, "%s.%d", @@ -325,16 +324,13 @@ int rsnd_mix_probe(struct rsnd_priv *priv) clk =3D devm_clk_get(dev, name); if (IS_ERR(clk)) { ret =3D PTR_ERR(clk); - of_node_put(np); goto rsnd_mix_probe_done; } =20 ret =3D rsnd_mod_init(priv, rsnd_mod_get(mix), &rsnd_mix_ops, clk, RSND_MOD_MIX, i); - if (ret) { - of_node_put(np); + if (ret) goto rsnd_mix_probe_done; - } =20 i++; } diff --git a/sound/soc/renesas/rcar/src.c b/sound/soc/renesas/rcar/src.c index 7d73b183bda6..f47bf38c2f94 100644 --- a/sound/soc/renesas/rcar/src.c +++ b/sound/soc/renesas/rcar/src.c @@ -715,7 +715,6 @@ struct rsnd_mod *rsnd_src_mod_get(struct rsnd_priv *pri= v, int id) int rsnd_src_probe(struct rsnd_priv *priv) { struct device_node *node; - struct device_node *np; struct device *dev =3D rsnd_priv_to_dev(priv); struct rsnd_src *src; struct clk *clk; @@ -742,14 +741,13 @@ int rsnd_src_probe(struct rsnd_priv *priv) priv->src =3D src; =20 i =3D 0; - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { if (!of_device_is_available(np)) goto skip; =20 i =3D rsnd_node_fixed_index(dev, np, SRC_NAME, i); if (i < 0) { ret =3D -EINVAL; - of_node_put(np); goto rsnd_src_probe_done; } =20 @@ -761,23 +759,19 @@ int rsnd_src_probe(struct rsnd_priv *priv) src->irq =3D irq_of_parse_and_map(np, 0); if (!src->irq) { ret =3D -EINVAL; - of_node_put(np); goto rsnd_src_probe_done; } =20 clk =3D devm_clk_get(dev, name); if (IS_ERR(clk)) { ret =3D PTR_ERR(clk); - of_node_put(np); goto rsnd_src_probe_done; } =20 ret =3D rsnd_mod_init(priv, rsnd_mod_get(src), &rsnd_src_ops, clk, RSND_MOD_SRC, i); - if (ret) { - of_node_put(np); + if (ret) goto rsnd_src_probe_done; - } =20 skip: i++; diff --git a/sound/soc/renesas/rcar/ssi.c b/sound/soc/renesas/rcar/ssi.c index 0c6424a1fcac..d52056caa3ec 100644 --- a/sound/soc/renesas/rcar/ssi.c +++ b/sound/soc/renesas/rcar/ssi.c @@ -1115,7 +1115,6 @@ void rsnd_parse_connect_ssi(struct rsnd_dai *rdai, struct rsnd_priv *priv =3D rsnd_rdai_to_priv(rdai); struct device *dev =3D rsnd_priv_to_dev(priv); struct device_node *node; - struct device_node *np; int i; =20 node =3D rsnd_ssi_of_node(priv); @@ -1123,14 +1122,12 @@ void rsnd_parse_connect_ssi(struct rsnd_dai *rdai, return; =20 i =3D 0; - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { struct rsnd_mod *mod; =20 i =3D rsnd_node_fixed_index(dev, np, SSI_NAME, i); - if (i < 0) { - of_node_put(np); + if (i < 0) break; - } =20 mod =3D rsnd_ssi_mod_get(priv, i); =20 @@ -1163,7 +1160,6 @@ int __rsnd_ssi_is_pin_sharing(struct rsnd_mod *mod) int rsnd_ssi_probe(struct rsnd_priv *priv) { struct device_node *node; - struct device_node *np; struct device *dev =3D rsnd_priv_to_dev(priv); struct rsnd_mod_ops *ops; struct clk *clk; @@ -1191,14 +1187,13 @@ int rsnd_ssi_probe(struct rsnd_priv *priv) priv->ssi_nr =3D nr; =20 i =3D 0; - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { if (!of_device_is_available(np)) goto skip; =20 i =3D rsnd_node_fixed_index(dev, np, SSI_NAME, i); if (i < 0) { ret =3D -EINVAL; - of_node_put(np); goto rsnd_ssi_probe_done; } =20 @@ -1210,7 +1205,6 @@ int rsnd_ssi_probe(struct rsnd_priv *priv) clk =3D devm_clk_get(dev, name); if (IS_ERR(clk)) { ret =3D PTR_ERR(clk); - of_node_put(np); goto rsnd_ssi_probe_done; } =20 @@ -1223,7 +1217,6 @@ int rsnd_ssi_probe(struct rsnd_priv *priv) ssi->irq =3D irq_of_parse_and_map(np, 0); if (!ssi->irq) { ret =3D -EINVAL; - of_node_put(np); goto rsnd_ssi_probe_done; } =20 @@ -1234,10 +1227,9 @@ int rsnd_ssi_probe(struct rsnd_priv *priv) =20 ret =3D rsnd_mod_init(priv, rsnd_mod_get(ssi), ops, clk, RSND_MOD_SSI, i); - if (ret) { - of_node_put(np); + if (ret) goto rsnd_ssi_probe_done; - } + skip: i++; } diff --git a/sound/soc/renesas/rcar/ssiu.c b/sound/soc/renesas/rcar/ssiu.c index 665e8b2db579..faf351126d57 100644 --- a/sound/soc/renesas/rcar/ssiu.c +++ b/sound/soc/renesas/rcar/ssiu.c @@ -478,17 +478,14 @@ void rsnd_parse_connect_ssiu(struct rsnd_dai *rdai, =20 /* use rcar_sound,ssiu if exist */ if (node) { - struct device_node *np; int i =3D 0; =20 - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { struct rsnd_mod *mod; =20 i =3D rsnd_node_fixed_index(dev, np, SSIU_NAME, i); - if (i < 0) { - of_node_put(np); + if (i < 0) break; - } =20 mod =3D rsnd_ssiu_mod_get(priv, i); =20 --=20 2.47.1 From nobody Tue Dec 16 07:10:21 2025 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (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 2393A24DD14; Tue, 27 May 2025 08:25:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334327; cv=none; b=CCYhehu1h4p74lYYIpzPme3tOYJ3c8fMz/uXwQjK92AEiEbUsjSvDHBt9omrCM+sKoHtPWQHNX4cgdIYYs0u3Ka+KUR2nLfR3RBQER7dKC1qC+rEAfzsY48S9vs6UoO9LcdG7mcwsSsUU54188i3juSvhKMiYu8RaC0oRgBz0BM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334327; c=relaxed/simple; bh=UhjY7OeWc+el9dkWDXC9pAljGZHiRHDqsBqhts3pNvM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OtECAGKKUa4af21jV24n32YwaLWkcHQ0zDXvb0VApjaVNrhfzjXaEeGCoaXGuxQm9bh/ILSVnwQn+hUhmXI2g2egQNVsTC1BEypUwyiSP7HUOzQuYjqTBzfR6wApUZ+JaSlALNE2XP0KKB/chrV4DDBFeP6Rpi0DxJ8mBIG2QvM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 201b0f503ad411f0b29709d653e92f7d-20250527 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.45,REQID:d318de97-d3aa-4989-ba67-d9ca33c7b027,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:6493067,CLOUDID:82ea9aad143a8f52c9b55503f9bafb9c,BulkI D:nil,BulkQuantity:0,Recheck:0,SF:81|82|102,TC:nil,Content:0|50,EDM:-3,IP: nil,URL:99|1,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV: 0,LES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_ULS X-UUID: 201b0f503ad411f0b29709d653e92f7d-20250527 Received: from node4.com.cn [(10.44.16.170)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 1785457094; Tue, 27 May 2025 16:25:19 +0800 Received: from node4.com.cn (localhost [127.0.0.1]) by node4.com.cn (NSMail) with SMTP id 1D62416001F52; Tue, 27 May 2025 16:25:19 +0800 (CST) X-ns-mid: postfix-683576EE-9087972686 Received: from kylin-pc.. (unknown [172.25.130.133]) by node4.com.cn (NSMail) with ESMTPA id 9310616001F49; Tue, 27 May 2025 08:25:16 +0000 (UTC) From: Ai Chao To: perex@perex.cz, tiwai@suse.com, johannes@sipsolutions.net, kuninori.morimoto.gx@renesas.com, lgirdwood@gmail.com, broonie@kernel.org, jbrunet@baylibre.com, neil.armstrong@linaro.org, khilman@baylibre.com, martin.blumenstingl@googlemail.com, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, festevam@gmail.com, nicoleotsuka@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de, srinivas.kandagatla@linaro.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, imx@lists.linux.dev, kernel@pengutronix.de, linux-arm-msm@vger.kernel.org, Ai Chao , kernel test robot Subject: [PATCH v3 4/6] ASoC: meson: Use helper function for_each_child_of_node_scoped() Date: Tue, 27 May 2025 16:24:44 +0800 Message-ID: <20250527082446.2265500-5-aichao@kylinos.cn> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250527082446.2265500-1-aichao@kylinos.cn> References: <20250527082446.2265500-1-aichao@kylinos.cn> 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 Content-Type: text/plain; charset="utf-8" The for_each_child_of_node_scoped() helper provides a scope-based clean-up functionality to put the device_node automatically, and as such, there is no need to call of_node_put() directly. Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202505210557.EpJig9BQ-lkp@int= el.com/ Signed-off-by: Ai Chao --- sound/soc/meson/axg-card.c | 3 +-- sound/soc/meson/meson-card-utils.c | 16 +++++----------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c index a2dfccb7990f..b4dca80e15e4 100644 --- a/sound/soc/meson/axg-card.c +++ b/sound/soc/meson/axg-card.c @@ -222,7 +222,6 @@ static int axg_card_parse_codecs_masks(struct snd_soc_c= ard *card, struct axg_dai_link_tdm_data *be) { struct axg_dai_link_tdm_mask *codec_mask; - struct device_node *np; =20 codec_mask =3D devm_kcalloc(card->dev, link->num_codecs, sizeof(*codec_mask), GFP_KERNEL); @@ -231,7 +230,7 @@ static int axg_card_parse_codecs_masks(struct snd_soc_c= ard *card, =20 be->codec_masks =3D codec_mask; =20 - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { snd_soc_of_get_slot_mask(np, "dai-tdm-slot-rx-mask", &codec_mask->rx); snd_soc_of_get_slot_mask(np, "dai-tdm-slot-tx-mask", diff --git a/sound/soc/meson/meson-card-utils.c b/sound/soc/meson/meson-car= d-utils.c index cfc7f6e41ab5..0750dece9e69 100644 --- a/sound/soc/meson/meson-card-utils.c +++ b/sound/soc/meson/meson-card-utils.c @@ -137,7 +137,6 @@ int meson_card_set_be_link(struct snd_soc_card *card, struct device_node *node) { struct snd_soc_dai_link_component *codec; - struct device_node *np; int ret, num_codecs; =20 num_codecs =3D of_get_child_count(node); @@ -154,19 +153,17 @@ int meson_card_set_be_link(struct snd_soc_card *card, link->codecs =3D codec; link->num_codecs =3D num_codecs; =20 - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { ret =3D meson_card_parse_dai(card, np, codec); - if (ret) { - of_node_put(np); + if (ret) return ret; - } =20 codec++; } =20 ret =3D meson_card_set_link_name(card, link, node, "be"); if (ret) - dev_err(card->dev, "error setting %pOFn link name\n", np); + dev_err(card->dev, "error setting %pOFn link name\n", node); =20 return ret; } @@ -198,7 +195,6 @@ static int meson_card_add_links(struct snd_soc_card *ca= rd) { struct meson_card *priv =3D snd_soc_card_get_drvdata(card); struct device_node *node =3D card->dev->of_node; - struct device_node *np; int num, i, ret; =20 num =3D of_get_child_count(node); @@ -212,12 +208,10 @@ static int meson_card_add_links(struct snd_soc_card *= card) return ret; =20 i =3D 0; - for_each_child_of_node(node, np) { + for_each_child_of_node_scoped(node, np) { ret =3D priv->match_data->add_link(card, np, &i); - if (ret) { - of_node_put(np); + if (ret) return ret; - } =20 i++; } --=20 2.47.1 From nobody Tue Dec 16 07:10:21 2025 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (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 2BB34253346; Tue, 27 May 2025 08:25:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334330; cv=none; b=K15cGTlJunCRSP6rO0Ff/Mhwao0iS15j7fgrG7MMU94GqAbHt8fdXlpoOk2HeCAlowts5pCyFx9dFsq0We1FcAOSrgvQpGLkraQy4mCK/IkG1JgwpftqD4V0j5yPrlq+IkHS57UyTIyybrVyyxlhukXBH+Bgr5sFiormZpWILKE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334330; c=relaxed/simple; bh=0VrJdg8Nl5BguTH061Cxa1EObjkDnYtLyk2yNfaEpxk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=be40S1A1Ogc6MN047TVYrt2SLLj8i17qxl9T8cSow3T79gSmgdG2nh4G/znp6l3EeNLD1uzeT7bM6FqYlfZswpyrVl50q3RyRUuRDdy7sdGKuudzWWcGb98n0VoNz/ptHFhBgoqkIID4Zg5hKXtjVFDET77vUgrwE3S4aSlUxJo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 223956f23ad411f0b29709d653e92f7d-20250527 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.45,REQID:d5db8501-0ce9-4cde-b853-aec134198ab3,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:6493067,CLOUDID:960212652df79bafbda8332d2bf24c97,BulkI D:nil,BulkQuantity:0,Recheck:0,SF:81|82|102,TC:nil,Content:0|50,EDM:-3,IP: nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,L ES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 223956f23ad411f0b29709d653e92f7d-20250527 Received: from node4.com.cn [(10.44.16.170)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 1451708132; Tue, 27 May 2025 16:25:23 +0800 Received: from node4.com.cn (localhost [127.0.0.1]) by node4.com.cn (NSMail) with SMTP id B1BA616001F52; Tue, 27 May 2025 16:25:22 +0800 (CST) X-ns-mid: postfix-683576F1-9270232691 Received: from kylin-pc.. (unknown [172.25.130.133]) by node4.com.cn (NSMail) with ESMTPA id D775C16001F49; Tue, 27 May 2025 08:25:19 +0000 (UTC) From: Ai Chao To: perex@perex.cz, tiwai@suse.com, johannes@sipsolutions.net, kuninori.morimoto.gx@renesas.com, lgirdwood@gmail.com, broonie@kernel.org, jbrunet@baylibre.com, neil.armstrong@linaro.org, khilman@baylibre.com, martin.blumenstingl@googlemail.com, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, festevam@gmail.com, nicoleotsuka@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de, srinivas.kandagatla@linaro.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, imx@lists.linux.dev, kernel@pengutronix.de, linux-arm-msm@vger.kernel.org, Ai Chao Subject: [PATCH v3 5/6] ASoC: imx-card: Use helper function for_each_child_of_node_scoped() Date: Tue, 27 May 2025 16:24:45 +0800 Message-ID: <20250527082446.2265500-6-aichao@kylinos.cn> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250527082446.2265500-1-aichao@kylinos.cn> References: <20250527082446.2265500-1-aichao@kylinos.cn> 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 Content-Type: text/plain; charset="utf-8" The for_each_child_of_node_scoped() helper provides a scope-based clean-up functionality to put the device_node automatically, and as such, there is no need to call of_node_put() directly. Signed-off-by: Ai Chao --- sound/soc/fsl/imx-card.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/sound/soc/fsl/imx-card.c b/sound/soc/fsl/imx-card.c index 45e000f61ecc..f0bf4eb05329 100644 --- a/sound/soc/fsl/imx-card.c +++ b/sound/soc/fsl/imx-card.c @@ -513,7 +513,6 @@ static int imx_card_parse_of(struct imx_card_data *data) struct device_node *platform =3D NULL; struct device_node *codec =3D NULL; struct device_node *cpu =3D NULL; - struct device_node *np; struct device *dev =3D card->dev; struct snd_soc_dai_link *link; struct dai_link_data *link_data; @@ -552,11 +551,10 @@ static int imx_card_parse_of(struct imx_card_data *da= ta) link =3D card->dai_link; link_data =3D data->link_data; =20 - for_each_child_of_node(dev->of_node, np) { + for_each_child_of_node_scoped(dev->of_node, np) { dlc =3D devm_kzalloc(dev, 2 * sizeof(*dlc), GFP_KERNEL); if (!dlc) { - ret =3D -ENOMEM; - goto err_put_np; + return -ENOMEM; } =20 link->cpus =3D &dlc[0]; @@ -567,8 +565,8 @@ static int imx_card_parse_of(struct imx_card_data *data) =20 ret =3D of_property_read_string(np, "link-name", &link->name); if (ret) { - dev_err(card->dev, "error getting codec dai_link name\n"); - goto err_put_np; + return dev_err_probe(card->dev, ret, + "error getting codec dai_link name\n"); } =20 cpu =3D of_get_child_by_name(np, "cpu"); @@ -722,8 +720,7 @@ static int imx_card_parse_of(struct imx_card_data *data) of_node_put(cpu); of_node_put(codec); of_node_put(platform); -err_put_np: - of_node_put(np); + return ret; } =20 --=20 2.47.1 From nobody Tue Dec 16 07:10:21 2025 Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (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 2F2DC24BC09; Tue, 27 May 2025 08:25:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=124.126.103.232 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334336; cv=none; b=dEbb+97HXKGCQSlQmdpXpZAdGeo1LLjr2FoNA5uitKqppGdfyODYgVFpBg3F8N5O9npe4yoYkMW6jnRSoUtM3jjTrrSU6BRVx2WJJSKyf0Ao6/6Ii909tzCHqAF4T0T40IyUsFKv5N1aTYe+7vpe81251VvEJxznyYbLd60d1dY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748334336; c=relaxed/simple; bh=lF0fH/CcTAKBcrZbNRqHAOvKHyMZ3rKqL2ZNyw3DfZo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MJetO38wYiBdY1DFPScaPdgkbtUgWlyrv9Ok8wct78sDmOFhwkJJa54sXsaZFJx5i2ruR6LHMIWhwGouHZP2irsb0mmA3UskfOH/5WzuYM2peGAe1OIiMBat0NOs3sXfArFE9TMc4t1KNGJ3CATMTgwQmGoVScKT/t6+Fr0pt3I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn; spf=pass smtp.mailfrom=kylinos.cn; arc=none smtp.client-ip=124.126.103.232 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=kylinos.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=kylinos.cn X-UUID: 2590c2fe3ad411f0b29709d653e92f7d-20250527 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.45,REQID:0172e8e5-1cbf-4d9b-a76d-b519d316b39c,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:0,FILE:0,BULK:0,RULE:Release_Ham,ACTION: release,TS:0 X-CID-META: VersionHash:6493067,CLOUDID:9db441d4c2ed8449c5036e642977de72,BulkI D:nil,BulkQuantity:0,Recheck:0,SF:81|82|102,TC:nil,Content:0|50,EDM:-3,IP: nil,URL:0,File:nil,RT:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,L ES:1,SPR:NO,DKR:0,DKP:0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 0 X-CID-BAS: 0,_,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR X-UUID: 2590c2fe3ad411f0b29709d653e92f7d-20250527 Received: from node4.com.cn [(10.44.16.170)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA) with ESMTP id 1846934354; Tue, 27 May 2025 16:25:28 +0800 Received: from node4.com.cn (localhost [127.0.0.1]) by node4.com.cn (NSMail) with SMTP id C228016001F52; Tue, 27 May 2025 16:25:27 +0800 (CST) X-ns-mid: postfix-683576F5-5122252692 Received: from kylin-pc.. (unknown [172.25.130.133]) by node4.com.cn (NSMail) with ESMTPA id 7548716001F49; Tue, 27 May 2025 08:25:23 +0000 (UTC) From: Ai Chao To: perex@perex.cz, tiwai@suse.com, johannes@sipsolutions.net, kuninori.morimoto.gx@renesas.com, lgirdwood@gmail.com, broonie@kernel.org, jbrunet@baylibre.com, neil.armstrong@linaro.org, khilman@baylibre.com, martin.blumenstingl@googlemail.com, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, festevam@gmail.com, nicoleotsuka@gmail.com, shawnguo@kernel.org, s.hauer@pengutronix.de, srinivas.kandagatla@linaro.org Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-renesas-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, imx@lists.linux.dev, kernel@pengutronix.de, linux-arm-msm@vger.kernel.org, Ai Chao Subject: [PATCH v3 6/6] ASoC: qcom: Use helper function for_each_child_of_node_scoped() Date: Tue, 27 May 2025 16:24:46 +0800 Message-ID: <20250527082446.2265500-7-aichao@kylinos.cn> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250527082446.2265500-1-aichao@kylinos.cn> References: <20250527082446.2265500-1-aichao@kylinos.cn> 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 Content-Type: text/plain; charset="utf-8" The for_each_child_of_node_scoped() helper provides a scope-based clean-up functionality to put the device_node automatically. Signed-off-by: Ai Chao --- sound/soc/qcom/lpass-cpu.c | 3 +-- sound/soc/qcom/qdsp6/q6afe-dai.c | 3 +-- sound/soc/qcom/qdsp6/q6asm-dai.c | 4 +--- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c index 242bc16da36d..62f49fe46273 100644 --- a/sound/soc/qcom/lpass-cpu.c +++ b/sound/soc/qcom/lpass-cpu.c @@ -1046,7 +1046,6 @@ static unsigned int of_lpass_cpu_parse_sd_lines(struc= t device *dev, static void of_lpass_cpu_parse_dai_data(struct device *dev, struct lpass_data *data) { - struct device_node *node; int ret, i, id; =20 /* Allow all channels by default for backwards compatibility */ @@ -1056,7 +1055,7 @@ static void of_lpass_cpu_parse_dai_data(struct device= *dev, data->mi2s_capture_sd_mode[id] =3D LPAIF_I2SCTL_MODE_8CH; } =20 - for_each_child_of_node(dev->of_node, node) { + for_each_child_of_node_scoped(dev->of_node, node) { ret =3D of_property_read_u32(node, "reg", &id); if (ret || id < 0) { dev_err(dev, "valid dai id not found: %d\n", ret); diff --git a/sound/soc/qcom/qdsp6/q6afe-dai.c b/sound/soc/qcom/qdsp6/q6afe-= dai.c index 7d9628cda875..64735f2adf8f 100644 --- a/sound/soc/qcom/qdsp6/q6afe-dai.c +++ b/sound/soc/qcom/qdsp6/q6afe-dai.c @@ -962,10 +962,9 @@ static const struct snd_soc_component_driver q6afe_dai= _component =3D { static void of_q6afe_parse_dai_data(struct device *dev, struct q6afe_dai_data *data) { - struct device_node *node; int ret; =20 - for_each_child_of_node(dev->of_node, node) { + for_each_child_of_node_scoped(dev->of_node, node) { unsigned int lines[Q6AFE_MAX_MI2S_LINES]; struct q6afe_dai_priv_data *priv; int id, i, num_lines; diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-= dai.c index a400c9a31fea..d7680dd3a3bb 100644 --- a/sound/soc/qcom/qdsp6/q6asm-dai.c +++ b/sound/soc/qcom/qdsp6/q6asm-dai.c @@ -1236,10 +1236,8 @@ static int of_q6asm_parse_dai_data(struct device *de= v, { struct snd_soc_dai_driver *dai_drv; struct snd_soc_pcm_stream empty_stream; - struct device_node *node; int ret, id, dir, idx =3D 0; =20 - pdata->num_dais =3D of_get_child_count(dev->of_node); if (!pdata->num_dais) { dev_err(dev, "No dais found in DT\n"); @@ -1253,7 +1251,7 @@ static int of_q6asm_parse_dai_data(struct device *dev, =20 memset(&empty_stream, 0, sizeof(empty_stream)); =20 - for_each_child_of_node(dev->of_node, node) { + for_each_child_of_node_scoped(dev->of_node, node) { ret =3D of_property_read_u32(node, "reg", &id); if (ret || id >=3D MAX_SESSIONS || id < 0) { dev_err(dev, "valid dai id not found:%d\n", ret); --=20 2.47.1