All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] clocksource/drivers/timer-tegra186: Avoid 64-bit divide operation
@ 2025-06-14 17:55 Guenter Roeck
  2025-06-14 17:55 ` [PATCH 2/2] clocksource/drivers/timer-tegra186: Simplify calculating timeleft Guenter Roeck
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Guenter Roeck @ 2025-06-14 17:55 UTC (permalink / raw)
  To: Daniel Lezcano
  Cc: Thomas Gleixner, Thierry Reding, Jonathan Hunter, linux-kernel,
	linux-tegra, Guenter Roeck, Pohsun Su, Robert Lin

Building the driver on xtensa fails with

tensa-linux-ld: drivers/clocksource/timer-tegra186.o:
	in function `tegra186_timer_remove':
timer-tegra186.c:(.text+0x350):
	undefined reference to `__udivdi3'

Avoid the problem by rearranging the offending code to avoid the 64-bit
divide operation.

Fixes: 28c842c8b0f5 ("clocksource/drivers/timer-tegra186: Add WDIOC_GETTIMELEFT support")
Cc: Pohsun Su <pohsuns@nvidia.com>
Cc: Robert Lin <robelin@nvidia.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 drivers/clocksource/timer-tegra186.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clocksource/timer-tegra186.c b/drivers/clocksource/timer-tegra186.c
index e5394f98a02e..7b506de65438 100644
--- a/drivers/clocksource/timer-tegra186.c
+++ b/drivers/clocksource/timer-tegra186.c
@@ -267,7 +267,7 @@ static unsigned int tegra186_wdt_get_timeleft(struct watchdog_device *wdd)
 	 * counter value to the time of the counter expirations that
 	 * remain.
 	 */
-	timeleft += (((u64)wdt->base.timeout * USEC_PER_SEC) / 5) * (4 - expiration);
+	timeleft += ((u64)wdt->base.timeout * (USEC_PER_SEC / 5)) * (4 - expiration);
 
 	/*
 	 * Convert the current counter value to seconds,
-- 
2.45.2


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

end of thread, other threads:[~2025-07-25 10:31 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-14 17:55 [PATCH 1/2] clocksource/drivers/timer-tegra186: Avoid 64-bit divide operation Guenter Roeck
2025-06-14 17:55 ` [PATCH 2/2] clocksource/drivers/timer-tegra186: Simplify calculating timeleft Guenter Roeck
2025-06-19  7:25   ` Jon Hunter
2025-07-23  7:17   ` [tip: timers/clocksource] " tip-bot2 for Guenter Roeck
2025-07-25 10:31   ` tip-bot2 for Guenter Roeck
2025-06-19  7:17 ` [PATCH 1/2] clocksource/drivers/timer-tegra186: Avoid 64-bit divide operation Jon Hunter
2025-06-24 14:32 ` Daniel Lezcano
2025-07-03 12:34   ` Jon Hunter
2025-07-03 12:42     ` Daniel Lezcano
2025-07-15 11:11 ` Daniel Lezcano
2025-07-23  7:17 ` [tip: timers/clocksource] " tip-bot2 for Guenter Roeck
2025-07-25 10:31 ` tip-bot2 for Guenter Roeck

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.