]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/gpio/gpio-xilinx.c
Merge tag 'gvt-fixes-2020-02-26' of https://github.com/intel/gvt-linux into drm-intel...
[linux.git] / drivers / gpio / gpio-xilinx.c
index a9748b5198e634f6a0938cc8bdff61f14a120cbc..67f9f82e0db0ef49a59f073bdb52b982411f29ac 100644 (file)
@@ -147,9 +147,10 @@ static void xgpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
        for (i = 0; i < gc->ngpio; i++) {
                if (*mask == 0)
                        break;
+               /* Once finished with an index write it out to the register */
                if (index !=  xgpio_index(chip, i)) {
                        xgpio_writereg(chip->regs + XGPIO_DATA_OFFSET +
-                                      xgpio_regoffset(chip, i),
+                                      index * XGPIO_CHANNEL_OFFSET,
                                       chip->gpio_state[index]);
                        spin_unlock_irqrestore(&chip->gpio_lock[index], flags);
                        index =  xgpio_index(chip, i);
@@ -165,7 +166,7 @@ static void xgpio_set_multiple(struct gpio_chip *gc, unsigned long *mask,
        }
 
        xgpio_writereg(chip->regs + XGPIO_DATA_OFFSET +
-                      xgpio_regoffset(chip, i), chip->gpio_state[index]);
+                      index * XGPIO_CHANNEL_OFFSET, chip->gpio_state[index]);
 
        spin_unlock_irqrestore(&chip->gpio_lock[index], flags);
 }