]> Pileus Git - ~andy/linux/blobdiff - drivers/mfd/wm831x-irq.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[~andy/linux] / drivers / mfd / wm831x-irq.c
index ec10004200c9807f7f90bef2ab0aa3be7a952538..7dabe4dbd3732e1d75c396b9b1e01bdeafafa57c 100644 (file)
@@ -490,6 +490,14 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
 
        mutex_init(&wm831x->irq_lock);
 
+       /* Mask the individual interrupt sources */
+       for (i = 0; i < ARRAY_SIZE(wm831x->irq_masks_cur); i++) {
+               wm831x->irq_masks_cur[i] = 0xffff;
+               wm831x->irq_masks_cache[i] = 0xffff;
+               wm831x_reg_write(wm831x, WM831X_INTERRUPT_STATUS_1_MASK + i,
+                                0xffff);
+       }
+
        if (!irq) {
                dev_warn(wm831x->dev,
                         "No interrupt specified - functionality limited\n");
@@ -505,14 +513,6 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
        wm831x->irq = irq;
        wm831x->irq_base = pdata->irq_base;
 
-       /* Mask the individual interrupt sources */
-       for (i = 0; i < ARRAY_SIZE(wm831x->irq_masks_cur); i++) {
-               wm831x->irq_masks_cur[i] = 0xffff;
-               wm831x->irq_masks_cache[i] = 0xffff;
-               wm831x_reg_write(wm831x, WM831X_INTERRUPT_STATUS_1_MASK + i,
-                                0xffff);
-       }
-
        /* Register them with genirq */
        for (cur_irq = wm831x->irq_base;
             cur_irq < ARRAY_SIZE(wm831x_irqs) + wm831x->irq_base;