提交 aaf96e51 编写于 作者: W William Breathitt Gray 提交者: Linus Walleij

gpio: pci-idio-16: Fix port memory offset for get_multiple callback

The ioread8 function expects a memory offset argument. This patch fixes
the ports array to provide the memory addresses of the respective device
I/O registers.

Fixes: 810ebfc5 ("gpio: pci-idio-16: Implement get_multiple callback")
Signed-off-by: NWilliam Breathitt Gray <vilhelm.gray@gmail.com>
Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
上级 f001cc35
...@@ -116,9 +116,9 @@ static int idio_16_gpio_get_multiple(struct gpio_chip *chip, ...@@ -116,9 +116,9 @@ static int idio_16_gpio_get_multiple(struct gpio_chip *chip,
unsigned long word_mask; unsigned long word_mask;
const unsigned long port_mask = GENMASK(gpio_reg_size - 1, 0); const unsigned long port_mask = GENMASK(gpio_reg_size - 1, 0);
unsigned long port_state; unsigned long port_state;
u8 __iomem ports[] = { void __iomem *ports[] = {
idio16gpio->reg->out0_7, idio16gpio->reg->out8_15, &idio16gpio->reg->out0_7, &idio16gpio->reg->out8_15,
idio16gpio->reg->in0_7, idio16gpio->reg->in8_15, &idio16gpio->reg->in0_7, &idio16gpio->reg->in8_15,
}; };
/* clear bits array to a clean slate */ /* clear bits array to a clean slate */
...@@ -143,7 +143,7 @@ static int idio_16_gpio_get_multiple(struct gpio_chip *chip, ...@@ -143,7 +143,7 @@ static int idio_16_gpio_get_multiple(struct gpio_chip *chip,
} }
/* read bits from current gpio port */ /* read bits from current gpio port */
port_state = ioread8(ports + i); port_state = ioread8(ports[i]);
/* store acquired bits at respective bits array offset */ /* store acquired bits at respective bits array offset */
bits[word_index] |= port_state << word_offset; bits[word_index] |= port_state << word_offset;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册