Commit 4cfff5b7 authored by Raag Jadav's avatar Raag Jadav Committed by Andy Shevchenko
Browse files

pinctrl: baytrail: consolidate common mask operation



Consolidate common mask operation outside of switch cases and
limit IO operations to positive cases.

Signed-off-by: default avatarRaag Jadav <raag.jadav@intel.com>
Acked-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
parent 06c2afb8
Loading
Loading
Loading
Loading
+15 −19
Original line number Original line Diff line number Diff line
@@ -995,8 +995,8 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
	void __iomem *conf_reg = byt_gpio_reg(vg, offset, BYT_CONF0_REG);
	void __iomem *conf_reg = byt_gpio_reg(vg, offset, BYT_CONF0_REG);
	void __iomem *val_reg = byt_gpio_reg(vg, offset, BYT_VAL_REG);
	void __iomem *val_reg = byt_gpio_reg(vg, offset, BYT_VAL_REG);
	void __iomem *db_reg = byt_gpio_reg(vg, offset, BYT_DEBOUNCE_REG);
	void __iomem *db_reg = byt_gpio_reg(vg, offset, BYT_DEBOUNCE_REG);
	u32 conf, val, db_pulse, debounce;
	unsigned long flags;
	unsigned long flags;
	u32 conf, val, debounce;
	int i, ret = 0;
	int i, ret = 0;


	raw_spin_lock_irqsave(&byt_lock, flags);
	raw_spin_lock_irqsave(&byt_lock, flags);
@@ -1053,8 +1053,6 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,


			break;
			break;
		case PIN_CONFIG_INPUT_DEBOUNCE:
		case PIN_CONFIG_INPUT_DEBOUNCE:
			debounce = readl(db_reg);

			if (arg)
			if (arg)
				conf |= BYT_DEBOUNCE_EN;
				conf |= BYT_DEBOUNCE_EN;
			else
			else
@@ -1062,32 +1060,25 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,


			switch (arg) {
			switch (arg) {
			case 375:
			case 375:
				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
				db_pulse = BYT_DEBOUNCE_PULSE_375US;
				debounce |= BYT_DEBOUNCE_PULSE_375US;
				break;
				break;
			case 750:
			case 750:
				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
				db_pulse = BYT_DEBOUNCE_PULSE_750US;
				debounce |= BYT_DEBOUNCE_PULSE_750US;
				break;
				break;
			case 1500:
			case 1500:
				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
				db_pulse = BYT_DEBOUNCE_PULSE_1500US;
				debounce |= BYT_DEBOUNCE_PULSE_1500US;
				break;
				break;
			case 3000:
			case 3000:
				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
				db_pulse = BYT_DEBOUNCE_PULSE_3MS;
				debounce |= BYT_DEBOUNCE_PULSE_3MS;
				break;
				break;
			case 6000:
			case 6000:
				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
				db_pulse = BYT_DEBOUNCE_PULSE_6MS;
				debounce |= BYT_DEBOUNCE_PULSE_6MS;
				break;
				break;
			case 12000:
			case 12000:
				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
				db_pulse = BYT_DEBOUNCE_PULSE_12MS;
				debounce |= BYT_DEBOUNCE_PULSE_12MS;
				break;
				break;
			case 24000:
			case 24000:
				debounce &= ~BYT_DEBOUNCE_PULSE_MASK;
				db_pulse = BYT_DEBOUNCE_PULSE_24MS;
				debounce |= BYT_DEBOUNCE_PULSE_24MS;
				break;
				break;
			default:
			default:
				if (arg)
				if (arg)
@@ -1095,8 +1086,13 @@ static int byt_pin_config_set(struct pinctrl_dev *pctl_dev,
				break;
				break;
			}
			}


			if (!ret)
			if (ret)
				break;

			debounce = readl(db_reg);
			debounce = (debounce & ~BYT_DEBOUNCE_PULSE_MASK) | db_pulse;
			writel(debounce, db_reg);
			writel(debounce, db_reg);

			break;
			break;
		default:
		default:
			ret = -ENOTSUPP;
			ret = -ENOTSUPP;