Skip to content

Commit 4cfff5b

Browse files
raagjadavandy-shev
authored andcommitted
pinctrl: baytrail: consolidate common mask operation
Consolidate common mask operation outside of switch cases and limit IO operations to positive cases. 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>
1 parent 06c2afb commit 4cfff5b

File tree

1 file changed

+15
-19
lines changed

1 file changed

+15
-19
lines changed

drivers/pinctrl/intel/pinctrl-baytrail.c

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -995,8 +995,8 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
995995
void __iomem *conf_reg = byt_gpio_reg(vg, offset, BYT_CONF0_REG);
996996
void __iomem *val_reg = byt_gpio_reg(vg, offset, BYT_VAL_REG);
997997
void __iomem *db_reg = byt_gpio_reg(vg, offset, BYT_DEBOUNCE_REG);
998+
u32 conf, val, db_pulse, debounce;
998999
unsigned long flags;
999-
u32 conf, val, debounce;
10001000
int i, ret = 0;
10011001

10021002
raw_spin_lock_irqsave(&byt_lock, flags);
@@ -1053,50 +1053,46 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
10531053

10541054
break;
10551055
case PIN_CONFIG_INPUT_DEBOUNCE:
1056-
debounce = readl(db_reg);
1057-
10581056
if (arg)
10591057
conf |= BYT_DEBOUNCE_EN;
10601058
else
10611059
conf &= ~BYT_DEBOUNCE_EN;
10621060

10631061
switch (arg) {
10641062
case 375:
1065-
debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
1066-
debounce |= BYT_DEBOUNCE_PULSE_375US;
1063+
db_pulse = BYT_DEBOUNCE_PULSE_375US;
10671064
break;
10681065
case 750:
1069-
debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
1070-
debounce |= BYT_DEBOUNCE_PULSE_750US;
1066+
db_pulse = BYT_DEBOUNCE_PULSE_750US;
10711067
break;
10721068
case 1500:
1073-
debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
1074-
debounce |= BYT_DEBOUNCE_PULSE_1500US;
1069+
db_pulse = BYT_DEBOUNCE_PULSE_1500US;
10751070
break;
10761071
case 3000:
1077-
debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
1078-
debounce |= BYT_DEBOUNCE_PULSE_3MS;
1072+
db_pulse = BYT_DEBOUNCE_PULSE_3MS;
10791073
break;
10801074
case 6000:
1081-
debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
1082-
debounce |= BYT_DEBOUNCE_PULSE_6MS;
1075+
db_pulse = BYT_DEBOUNCE_PULSE_6MS;
10831076
break;
10841077
case 12000:
1085-
debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
1086-
debounce |= BYT_DEBOUNCE_PULSE_12MS;
1078+
db_pulse = BYT_DEBOUNCE_PULSE_12MS;
10871079
break;
10881080
case 24000:
1089-
debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
1090-
debounce |= BYT_DEBOUNCE_PULSE_24MS;
1081+
db_pulse = BYT_DEBOUNCE_PULSE_24MS;
10911082
break;
10921083
default:
10931084
if (arg)
10941085
ret = -EINVAL;
10951086
break;
10961087
}
10971088

1098-
if (!ret)
1099-
writel(debounce, db_reg);
1089+
if (ret)
1090+
break;
1091+
1092+
debounce = readl(db_reg);
1093+
debounce = (debounce & ~BYT_DEBOUNCE_PULSE_MASK) | db_pulse;
1094+
writel(debounce, db_reg);
1095+
11001096
break;
11011097
default:
11021098
ret = -ENOTSUPP;

0 commit comments

Comments
 (0)