瀏覽代碼

mfd: Ignore non-GPIO IRQs when setting wm831x IRQ types

The driver was originally tested with an additional patch which
made this unneeded but that patch had issuges and got lost on the
way to mainline, causing problems when the errors are reported.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Cc: stable@kernel.org
Mark Brown 15 年之前
父節點
當前提交
c9d66d3515
共有 1 個文件被更改,包括 7 次插入2 次删除
  1. 7 2
      drivers/mfd/wm831x-irq.c

+ 7 - 2
drivers/mfd/wm831x-irq.c

@@ -394,8 +394,13 @@ static int wm831x_irq_set_type(unsigned int irq, unsigned int type)
 
 
 	irq = irq - wm831x->irq_base;
 	irq = irq - wm831x->irq_base;
 
 
-	if (irq < WM831X_IRQ_GPIO_1 || irq > WM831X_IRQ_GPIO_11)
-		return -EINVAL;
+	if (irq < WM831X_IRQ_GPIO_1 || irq > WM831X_IRQ_GPIO_11) {
+		/* Ignore internal-only IRQs */
+		if (irq >= 0 && irq < WM831X_NUM_IRQS)
+			return 0;
+		else
+			return -EINVAL;
+	}
 
 
 	switch (type) {
 	switch (type) {
 	case IRQ_TYPE_EDGE_BOTH:
 	case IRQ_TYPE_EDGE_BOTH: