From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-m1973189.qiye.163.com (mail-m1973189.qiye.163.com [220.197.31.89]) (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 1893317B50F for ; Sat, 19 Sep 2026 00:40:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=220.197.31.89 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789778461; cv=none; b=KHntzUNgjqJ6eS9pSTnnLsF5L2xdparlvaPZOM4fCipGzepHIRxyeKyOQq6OxyyvUYzbcsYYYcEO26wmiS+UC6mZRp4rXRWVjDMxA7f4JkmwYHR16eg/Ma3lukjdeamDd+qA1KXvsfJDLFauAbH2MXm8fCNe13yOvbeSr2pq0HE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789778461; c=relaxed/simple; bh=H5hSSCcwB/a/OUKaJejkcv4f/IZpXXlA2t2MIic9M4I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=iu8yRHcP7OCg9TQpOo6Kpnu6Qy4CxyHJfmCJpQoH5kI3NgCSp11T7pVQbNp5RT/nIfKbAjWgsLemXWxHPfYHXWb91E1aJrWlbS4+o6xF+VhgxyG+ICugImhQ9J3WnofOkqr4M+wPvVHrDXEqRguzkxxNlZapYfZdSAUvFP7hBZA= 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=EcNiWVMh; arc=none smtp.client-ip=220.197.31.89 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="EcNiWVMh" Received: from localhost.localdomain (unknown [58.22.7.114]) by smtp.qiye.163.com (Hmail) with ESMTP id 4e57cbc48; Sat, 19 Sep 2026 08:35: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 v2 3/4] pmdomain: rockchip: don't ignore clock lookup errors on attach Date: Sat, 19 Sep 2026 08:35:10 +0800 Message-Id: <1789778111-173149-4-git-send-email-shawn.lin@rock-chips.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1789778111-173149-1-git-send-email-shawn.lin@rock-chips.com> References: <1789778111-173149-1-git-send-email-shawn.lin@rock-chips.com> X-HM-Tid: 0aa0b717176703a4kunm44a9997f1a8f7c X-HM-MType: 1 X-HM-Spam-Status: e1kfGhgUHx5ZQUpXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFDSUNOT01LS0k3V1kYFggdWUFKV1ktWUFJV1kPCRoVCBIfWUFZQx1MQ1YdT09JGRlOHk 1KThhWFRQJFhoXVRMBExYaEhckFA4PWVdZGBILWUFZTkNVSUlVTFVKSk9ZV1kWGg8SFR0UWUFZT0 tIVUpLSU9PT0hVSktLVUpCS0tZBg++ DKIM-Signature: a=rsa-sha256; b=EcNiWVMhMtGNCGsTJXwaiheok3HlL8MgjfHHWzJU+yvdvmmbQPbHo3LTQ/ijR8StaIPt4Sre1g2g9ETsWWTpe3MIX7BNpoV/KuzA09rMuW9WL/q59/9SUGso2rwWuYyn0lth2IaZGpliKzxVItXnSqkQSZ1alIZXlf/oXyJGDAw=; s=default; c=relaxed/relaxed; d=rock-chips.com; v=1; bh=mgvmj6m957pGi+bVcTpBcCjGWsGSHBOd3BuEmdIZGXg=; 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 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 43fdb7f..9917ebf 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