From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-m49246.qiye.163.com (mail-m49246.qiye.163.com [45.254.49.246]) (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 64F2345FFC1 for ; Mon, 21 Sep 2026 09:16:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=45.254.49.246 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982202; cv=none; b=Ecl21piFfxB9SInZbo5yKbAlGlTNGETQqBJuMyhackmJIST3ucbBbdczQcuKJBRw6QZF44ng16KxuRYVak5jCVVLBKGQWxUL1elALezfbfpa7dBv0qQCWKX65JOHmocSEfjoPhVdf+9T/yWHljJejsYxAwokSpgmPRc2Hkfb4SU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789982202; c=relaxed/simple; bh=GX4rkvzFLnBNDvYDip0AbFR7/ATZsWy1dqwa8cjP90s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=sPT/jQKnPUuyXSO5RUF8qkjnuu6N12laFRMgPQWGmHJpiDlm6VKR8UPE/wfjaXmGIHSXAl+eDSBkXDTYaCXAATvDu522qovdCQ7GJmnwet2q0zaPY4Fe4oDDjg5cf99+BDn8lKSFDamwQJXXXlysTo/ARvpS83q/FTe+UTDNQrw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rock-chips.com; spf=pass smtp.mailfrom=rock-chips.com; dkim=pass (1024-bit key) header.d=rock-chips.com header.i=@rock-chips.com header.b=U1en4AOe; arc=none smtp.client-ip=45.254.49.246 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=rock-chips.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rock-chips.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=rock-chips.com header.i=@rock-chips.com header.b="U1en4AOe" Received: from localhost.localdomain (unknown [61.154.14.86]) by smtp.qiye.163.com (Hmail) with ESMTP id 4e889c066; Mon, 21 Sep 2026 14:53:38 +0800 (GMT+08:00) From: Shawn Lin To: Ulf Hansson , Heiko Stuebner Cc: Sebastian Reichel , linux-pm@vger.kernel.org, linux-rockchip@lists.infradead.org, Shawn Lin Subject: [PATCH v3 3/4] pmdomain: rockchip: don't ignore clock lookup errors on attach Date: Mon, 21 Sep 2026 14:52:52 +0800 Message-Id: <1789973573-151146-4-git-send-email-shawn.lin@rock-chips.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1789973573-151146-1-git-send-email-shawn.lin@rock-chips.com> References: <1789973573-151146-1-git-send-email-shawn.lin@rock-chips.com> X-HM-Tid: 0aa0c2bddec603a4kunmfcbddeea30c3c0 X-HM-MType: 1 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFITzdXWRgWCB1ZQUpXWS1ZQUlXWQ8JGhUIEh9ZQVkZS05NVkpNGk1KGUJNSh1MSlYVFA kWGhdVEwETFhoSFyQUDg9ZV1kYEgtZQVlNSlVKTk9VSk9VQ01ZV1kWGg8SFR0UWUFZT0tIVUpLSU 9PT0hVSktLVUpCS0tZBg++ DKIM-Signature: a=rsa-sha256; b=U1en4AOeVs5x8FopBm5fX92B0QNGN9KYSXVzFRe2K1Osm8EVeJ12MSFr9yBECO2DRKzIS/6Bso5+wlhJ4HjSTwphxMFdkftFS1Ikqraq3ccY0QyvBMmLDRSgSy4kH+wIJ35BsbYLFovCZLVSbb5SkMuON7/mCfWdARI/VDqFgus=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=LDzfuJ9zFjGPIivIDj5ael+x0eh5KurV+j4tyeiVfgc=; h=date:mime-version:subject:message-id:from; Precedence: bulk X-Mailing-List: linux-pm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: rockchip_pd_attach_dev() treated every of_clk_get() error as the end of the clock list, so a clock that exists but is not available yet (e.g. -EPROBE_DEFER) was silently skipped and the device ended up without pm_clk management. Only -ENOENT means there are no more clocks. Fixes: 7c696693a4f5 ("soc: rockchip: power-domain: Add power domain driver") Signed-off-by: Shawn Lin Reviewed-by: Sebastian Reichel --- Changes in v3: None Changes in v2: None drivers/pmdomain/rockchip/pm-domains.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/pmdomain/rockchip/pm-domains.c b/drivers/pmdomain/rockchip/pm-domains.c index b6b099b..e193f97 100644 --- a/drivers/pmdomain/rockchip/pm-domains.c +++ b/drivers/pmdomain/rockchip/pm-domains.c @@ -759,7 +759,19 @@ static int rockchip_pd_attach_dev(struct generic_pm_domain *genpd, } i = 0; - while ((clk = of_clk_get(dev->of_node, i++)) && !IS_ERR(clk)) { + while (1) { + clk = of_clk_get(dev->of_node, i++); + if (IS_ERR(clk)) { + error = PTR_ERR(clk); + if (error == -ENOENT) + break; + + dev_err(dev, "failed to get clock %d: %d\n", i - 1, + error); + pm_clk_destroy(dev); + return error; + } + dev_dbg(dev, "adding clock '%pC' to list of PM clocks\n", clk); error = pm_clk_add_clk(dev, clk); if (error) { -- 2.7.4