At Fri, 31 Jan 2014 15:29:58 +0000, Mark Brown wrote:
From: Mark Brown broonie@linaro.org
If the device is runtime suspended then we can't interact with it as it may have been powered off and the register map will be in cache only mode.
Signed-off-by: Mark Brown broonie@linaro.org
sound/soc/codecs/wm8962.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c index 97db3b45b411..aa7ae76d5e28 100644 --- a/sound/soc/codecs/wm8962.c +++ b/sound/soc/codecs/wm8962.c @@ -3003,6 +3003,12 @@ static irqreturn_t wm8962_irq(int irq, void *data) unsigned int active; int reg, ret;
- ret = pm_runtime_get_sync(dev);
- if (ret < 0) {
dev_err(dev, "Failed to resume: %d\n", ret);
return ret;
Shouldn't here return IRQ_XXX?
Takashi
- }
- ret = regmap_read(wm8962->regmap, WM8962_INTERRUPT_STATUS_2_MASK, &mask); if (ret != 0) {
@@ -3019,8 +3025,10 @@ static irqreturn_t wm8962_irq(int irq, void *data)
active &= ~mask;
- if (!active)
if (!active) {
pm_runtime_put(dev);
return IRQ_NONE;
}
/* Acknowledge the interrupts */ ret = regmap_write(wm8962->regmap, WM8962_INTERRUPT_STATUS_2, active);
@@ -3070,6 +3078,8 @@ static irqreturn_t wm8962_irq(int irq, void *data) msecs_to_jiffies(250)); }
- pm_runtime_put(dev);
- return IRQ_HANDLED;
}
-- 1.9.rc1
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel