patch "iio: adc: nxp-sar-adc: Fix the delay calculation in" added to char-misc-linus
Subsystems (2)
This is a note to let you know that I've just added the patch titled
iio: adc: nxp-sar-adc: Fix the delay calculation in
to my char-misc git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
in the char-misc-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
From a9f41809bf1bd8e5c1bc4b6a1052adac58eb7ab6 Mon Sep 17 00:00:00 2001
From: Andy Shevchenko <[email protected]>
Date: Tue, 19 May 2026 23:56:06 +0200
Subject: iio: adc: nxp-sar-adc: Fix the delay calculation in
nxp_sar_adc_wait_for()
The original code was using ndelay() twice. In one case the delay is calculated as 1/3 of ADC clock and in the other as 80 ADC clocks. But according to the comments in all cases it should be a multiplier of the ADC clock, and not a fraction of it. Inadvertently nxp_sar_adc_wait_for() takes the wrong case and spread it over the code make it wrong in all places. Fix this by modifying a helper to correctly use the multiplier.
--- drivers/iio/adc/nxp-sar-adc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/iio/adc/nxp-sar-adc.c +2 -2
@@ -198,13 +198,13 @@ static void nxp_sar_adc_irq_cfg(struct nxp_sar_adc *info, bool enable)writel (0 ,NXP_SAR_ADC_IMR (info->regs)); } -static void nxp_sar_adc_wait_for (struct nxp_sar_adc *info,unsigned int cycles) +static void nxp_sar_adc_wait_for (struct nxp_sar_adc *info,u64 cycles) {u64 rate; rate =clk_get_rate (info->clk);if (rate) -ndelay (div64_u64 (NSEC_PER_SEC , rate * cycles)); +ndelay (div64_u64 (NSEC_PER_SEC * cycles, rate)); }static bool nxp_sar_adc_set_enabled (struct nxp_sar_adc *info,bool enable)
Signature · 1 line
2.55.0