diff options
author | Ronald Wahl <ronald.wahl@legrand.com> | 2024-12-11 21:51:04 +0100 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2025-01-22 11:21:58 -0600 |
commit | 3d729838b3206c7c009bbc94f49c5265719198d0 (patch) | |
tree | 2ab5d00e8ada1ab342aa0ae9ecca5f6da302a29b /drivers/fpga/intel_sdm_mb.c | |
parent | 82d262ae162d859d3b0bbcd40a9464e890b009da (diff) |
spi: cadence-quadspi: fix potential malfunction after ~49 days uptime
The get_timer function returns an unsigned long which may be calculated
from the ARM system counter. This counter is reset only on a cold reset.
U-boot divides this counter down to a 1000 Hz counter that will cross
the 32bit barrier after a bit more than 49 days. Assigning the value to
an unsigned int will truncate it on 64bit systems.
Passing this truncated value back to the get_timer function will return
a very large value that is certainly larger than the timeout and so will
go down the error path and besides stopping U-Boot will lead to messages
like
"SPI: QSPI is still busy after poll for 5000 ms."
Signed-off-by: Ronald Wahl <ronald.wahl@legrand.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Pratyush Yadav <p.yadav@ti.com>
Reviewed-by: Vignesh Raghavendra <vigneshr@ti.com>
Diffstat (limited to 'drivers/fpga/intel_sdm_mb.c')
0 files changed, 0 insertions, 0 deletions