diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-04 10:31:26 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-07-04 10:31:26 -0700 |
commit | dd0888c264c0d5feb5d86eb69c1fdbcdb42566af (patch) | |
tree | d224f6e96bc29b9a9dc3b2f60cb2f8808d41844e | |
parent | 14c1b7c212de7c7c9231d5a676eb96f28c088338 (diff) | |
parent | 1c90ea2c7eb3b24a07a2f82164323588fb029bc1 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
mfd: fix pcap adc locking
mfd: sm501, fix lock imbalance
-rw-r--r-- | drivers/mfd/ezx-pcap.c | 4 | ||||
-rw-r--r-- | drivers/mfd/sm501.c | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c index 671a7efe86a..c1de4afa89a 100644 --- a/drivers/mfd/ezx-pcap.c +++ b/drivers/mfd/ezx-pcap.c @@ -238,8 +238,10 @@ static irqreturn_t pcap_adc_irq(int irq, void *_pcap) mutex_lock(&pcap->adc_mutex); req = pcap->adc_queue[pcap->adc_head]; - if (WARN(!req, KERN_WARNING "adc irq without pending request\n")) + if (WARN(!req, KERN_WARNING "adc irq without pending request\n")) { + mutex_unlock(&pcap->adc_mutex); return IRQ_HANDLED; + } /* read requested channels results */ ezx_pcap_read(pcap, PCAP_REG_ADC, &tmp); diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c index 4c7b7962f6b..0cc5eeff5ee 100644 --- a/drivers/mfd/sm501.c +++ b/drivers/mfd/sm501.c @@ -367,7 +367,8 @@ int sm501_unit_power(struct device *dev, unsigned int unit, unsigned int to) break; default: - return -1; + gate = -1; + goto already; } writel(mode, sm->regs + SM501_POWER_MODE_CONTROL); |