diff options
-rw-r--r-- | drivers/mfd/ti_am335x_tscadc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mfd/ti_am335x_tscadc.c b/drivers/mfd/ti_am335x_tscadc.c index dd4bf5816221..8b119ce20b93 100644 --- a/drivers/mfd/ti_am335x_tscadc.c +++ b/drivers/mfd/ti_am335x_tscadc.c | |||
@@ -53,7 +53,7 @@ void am335x_tsc_se_set_cache(struct ti_tscadc_dev *tsadc, u32 val) | |||
53 | unsigned long flags; | 53 | unsigned long flags; |
54 | 54 | ||
55 | spin_lock_irqsave(&tsadc->reg_lock, flags); | 55 | spin_lock_irqsave(&tsadc->reg_lock, flags); |
56 | tsadc->reg_se_cache = val; | 56 | tsadc->reg_se_cache |= val; |
57 | if (tsadc->adc_waiting) | 57 | if (tsadc->adc_waiting) |
58 | wake_up(&tsadc->reg_se_wait); | 58 | wake_up(&tsadc->reg_se_wait); |
59 | else if (!tsadc->adc_in_use) | 59 | else if (!tsadc->adc_in_use) |
@@ -96,6 +96,7 @@ static void am335x_tscadc_need_adc(struct ti_tscadc_dev *tsadc) | |||
96 | void am335x_tsc_se_set_once(struct ti_tscadc_dev *tsadc, u32 val) | 96 | void am335x_tsc_se_set_once(struct ti_tscadc_dev *tsadc, u32 val) |
97 | { | 97 | { |
98 | spin_lock_irq(&tsadc->reg_lock); | 98 | spin_lock_irq(&tsadc->reg_lock); |
99 | tsadc->reg_se_cache |= val; | ||
99 | am335x_tscadc_need_adc(tsadc); | 100 | am335x_tscadc_need_adc(tsadc); |
100 | 101 | ||
101 | tscadc_writel(tsadc, REG_SE, val); | 102 | tscadc_writel(tsadc, REG_SE, val); |