pinctrl: baytrail: fix debounce disable case
authorRaag Jadav <raag.jadav@intel.com>
Tue, 12 Sep 2023 15:48:15 +0000 (21:18 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:59:24 +0000 (11:59 +0100)
[ Upstream commit 2d325e54d9e2e4ae247c9fd03f810208ce958c51 ]

We don't need to update debounce pulse value in case debounce is to be
disabled. Break such a case where arg value is zero.

Fixes: 4cfff5b7af8b ("pinctrl: baytrail: consolidate common mask operation")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/linux-gpio/d164d471-5432-4c3c-afdb-33dc8f53d043@moroto.mountain/
Signed-off-by: Raag Jadav <raag.jadav@intel.com>
Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pinctrl/intel/pinctrl-baytrail.c

index faa8b7f..ec76e43 100644 (file)
@@ -983,11 +983,18 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
 
                        break;
                case PIN_CONFIG_INPUT_DEBOUNCE:
-                       if (arg)
+                       if (arg) {
                                conf |= BYT_DEBOUNCE_EN;
-                       else
+                       } else {
                                conf &= ~BYT_DEBOUNCE_EN;
 
+                               /*
+                                * No need to update the pulse value.
+                                * Debounce is going to be disabled.
+                                */
+                               break;
+                       }
+
                        switch (arg) {
                        case 375:
                                db_pulse = BYT_DEBOUNCE_PULSE_375US;