linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] clocksource: arm_arch_timer: Don't wait for probe of unexisting timers
@ 2014-10-23 17:32 Laurent Pinchart
  2014-10-23 17:39 ` Stephen Boyd
  0 siblings, 1 reply; 5+ messages in thread
From: Laurent Pinchart @ 2014-10-23 17:32 UTC (permalink / raw)
  To: linux-arm-kernel

Commit c387f07e6205 ("clocksource: arm_arch_timer: Discard unavailable
timers correctly") attempted to avoid waiting for probe of disabled
timers, but got its condition check wrong and resulted in the driver
waiting for probe of timers not present in DT at all. Fix it.

Fixes: c387f07e6205 ("clocksource: arm_arch_timer: Discard unavailable timers correctly")
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
 drivers/clocksource/arm_arch_timer.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

This patch fixes a regression introduced in v3.18-rc1.

diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index 2133f9d..5caf32c 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -657,17 +657,17 @@ static const struct of_device_id arch_timer_mem_of_match[] __initconst = {
 };
 
 static bool __init
-arch_timer_probed(int type, const struct of_device_id *matches)
+arch_timer_need_probe(int type, const struct of_device_id *matches)
 {
 	struct device_node *dn;
-	bool probed = false;
+	bool need_probe = false;
 
 	dn = of_find_matching_node(NULL, matches);
-	if (dn && of_device_is_available(dn) && (arch_timers_present & type))
-		probed = true;
+	if (dn && of_device_is_available(dn) && !(arch_timers_present & type))
+		need_probe = true;
 	of_node_put(dn);
 
-	return probed;
+	return need_probe;
 }
 
 static void __init arch_timer_common_init(void)
@@ -676,9 +676,10 @@ static void __init arch_timer_common_init(void)
 
 	/* Wait until both nodes are probed if we have two timers */
 	if ((arch_timers_present & mask) != mask) {
-		if (!arch_timer_probed(ARCH_MEM_TIMER, arch_timer_mem_of_match))
+		if (arch_timer_need_probe(ARCH_MEM_TIMER,
+					  arch_timer_mem_of_match))
 			return;
-		if (!arch_timer_probed(ARCH_CP15_TIMER, arch_timer_of_match))
+		if (arch_timer_need_probe(ARCH_CP15_TIMER, arch_timer_of_match))
 			return;
 	}
 
-- 
Regards,

Laurent Pinchart

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-10-23 23:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-23 17:32 [PATCH] clocksource: arm_arch_timer: Don't wait for probe of unexisting timers Laurent Pinchart
2014-10-23 17:39 ` Stephen Boyd
2014-10-23 17:43   ` Laurent Pinchart
2014-10-23 17:49   ` Mark Rutland
2014-10-23 23:29     ` Laurent Pinchart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).