Input: matrix_keypad - use fsleep for delays after activating columns
authorMarkus Burri <markus.burri@mt.com>
Tue, 25 Feb 2025 18:59:00 +0000 (10:59 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 25 Feb 2025 19:22:00 +0000 (11:22 -0800)
The delay is specified in a device property, so the duration can be
arbitrarily large. fsleep() determines the best way of delaying (sleep
vs spin) based on duration.

see Documentation/timers/delay_sleep_functions.rst

Signed-off-by: Markus Burri <markus.burri@mt.com>
Reviewed-by: Manuel Traut <manuel.traut@mt.com>
Link: https://lore.kernel.org/r/20250110054906.354296-2-markus.burri@mt.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/keyboard/matrix_keypad.c

index 889505e59f851b3feca09ec40737341cdb7bf611..e46473cb817c21da6cbeaaaf9c53de6367a98222 100644 (file)
@@ -69,7 +69,7 @@ static void activate_col(struct matrix_keypad *keypad, int col, bool on)
        __activate_col(keypad, col, on);
 
        if (on && keypad->col_scan_delay_us)
-               udelay(keypad->col_scan_delay_us);
+               fsleep(keypad->col_scan_delay_us);
 }
 
 static void activate_all_cols(struct matrix_keypad *keypad, bool on)