From 0e060c4f91acc3a1e3a2a9fc5dd5cda5eb2a81d4 Mon Sep 17 00:00:00 2001 From: Timple Raj M Date: Fri, 17 Nov 2023 20:52:20 +0530 Subject: [PATCH] qca: ipq: fix to correct wrong delay obtained from udelay function If usec >= 224000 usec, then: usec * GPT_FREQ_KHZ = 224000 * 19200 >= 0x100590000, which is a 33 bits value To fix this usec is typecasted to 64 bit (unsigned long long)usec * GPT_FREQ_KHZ Change-Id: Ib1642d39b0581d2c04c62e415a1fd2dfed47fff1 Signed-off-by: Timple Raj M (cherry picked from commit 72d8ec613fe67eb64569200627c8c2da80218563) --- arch/arm/cpu/armv7/qca/common/timer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/cpu/armv7/qca/common/timer.c b/arch/arm/cpu/armv7/qca/common/timer.c index 004f9cc4b1..5e0ad07204 100644 --- a/arch/arm/cpu/armv7/qca/common/timer.c +++ b/arch/arm/cpu/armv7/qca/common/timer.c @@ -153,7 +153,7 @@ void __udelay(unsigned long usec) if (usec == 0) return; - val = (usec * GPT_FREQ_KHZ) / 1000; + val = ((unsigned long long)usec * GPT_FREQ_KHZ) / 1000; if (val == 0 ) val = 1; /* Wait for atleast 1 tick */