Re: [PATCH 2/2] gpio: pcie-idio-24: Fix port memory offset for get_multiple/set_multiple callbacks

2018-04-26 Thread Linus Walleij
On Wed, Apr 18, 2018 at 2:53 PM, William Breathitt Gray
 wrote:

> The ioread8/iowrite8 functions expect a memory offset argument. This
> patch fixes the ports array to provide the memory addresses of the
> respective device I/O registers.
>
> Fixes: ca37081595a2 ("gpio: pcie-idio-24: Implement get_multiple/set_multiple 
> callbacks")
> Signed-off-by: William Breathitt Gray 

Patch applied for fixes.

Yours,
Linus Walleij


Re: [PATCH 2/2] gpio: pcie-idio-24: Fix port memory offset for get_multiple/set_multiple callbacks

2018-04-26 Thread Linus Walleij
On Wed, Apr 18, 2018 at 2:53 PM, William Breathitt Gray
 wrote:

> The ioread8/iowrite8 functions expect a memory offset argument. This
> patch fixes the ports array to provide the memory addresses of the
> respective device I/O registers.
>
> Fixes: ca37081595a2 ("gpio: pcie-idio-24: Implement get_multiple/set_multiple 
> callbacks")
> Signed-off-by: William Breathitt Gray 

Patch applied for fixes.

Yours,
Linus Walleij


[PATCH 2/2] gpio: pcie-idio-24: Fix port memory offset for get_multiple/set_multiple callbacks

2018-04-18 Thread William Breathitt Gray
The ioread8/iowrite8 functions expect a memory offset argument. This
patch fixes the ports array to provide the memory addresses of the
respective device I/O registers.

Fixes: ca37081595a2 ("gpio: pcie-idio-24: Implement get_multiple/set_multiple 
callbacks")
Signed-off-by: William Breathitt Gray 
---
 drivers/gpio/gpio-pcie-idio-24.c | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/gpio/gpio-pcie-idio-24.c b/drivers/gpio/gpio-pcie-idio-24.c
index 835607ecf658..3e77c2a9a9fd 100644
--- a/drivers/gpio/gpio-pcie-idio-24.c
+++ b/drivers/gpio/gpio-pcie-idio-24.c
@@ -206,10 +206,10 @@ static int idio_24_gpio_get_multiple(struct gpio_chip 
*chip,
unsigned long word_mask;
const unsigned long port_mask = GENMASK(gpio_reg_size - 1, 0);
unsigned long port_state;
-   u8 __iomem ports[] = {
-   idio24gpio->reg->out0_7, idio24gpio->reg->out8_15,
-   idio24gpio->reg->out16_23, idio24gpio->reg->in0_7,
-   idio24gpio->reg->in8_15, idio24gpio->reg->in16_23,
+   void __iomem *ports[] = {
+   >reg->out0_7, >reg->out8_15,
+   >reg->out16_23, >reg->in0_7,
+   >reg->in8_15, >reg->in16_23,
};
const unsigned long out_mode_mask = BIT(1);
 
@@ -236,7 +236,7 @@ static int idio_24_gpio_get_multiple(struct gpio_chip *chip,
 
/* read bits from current gpio port (port 6 is TTL GPIO) */
if (i < 6)
-   port_state = ioread8(ports + i);
+   port_state = ioread8(ports[i]);
else if (ioread8(>reg->ctl) & out_mode_mask)
port_state = ioread8(>reg->ttl_out0_7);
else
@@ -301,9 +301,9 @@ static void idio_24_gpio_set_multiple(struct gpio_chip 
*chip,
const unsigned long port_mask = GENMASK(gpio_reg_size, 0);
unsigned long flags;
unsigned int out_state;
-   u8 __iomem ports[] = {
-   idio24gpio->reg->out0_7, idio24gpio->reg->out8_15,
-   idio24gpio->reg->out16_23
+   void __iomem *ports[] = {
+   >reg->out0_7, >reg->out8_15,
+   >reg->out16_23
};
const unsigned long out_mode_mask = BIT(1);
const unsigned int ttl_offset = 48;
@@ -327,9 +327,9 @@ static void idio_24_gpio_set_multiple(struct gpio_chip 
*chip,
raw_spin_lock_irqsave(>lock, flags);
 
/* process output lines */
-   out_state = ioread8(ports + i) & ~gpio_mask;
+   out_state = ioread8(ports[i]) & ~gpio_mask;
out_state |= (*bits >> bits_offset) & gpio_mask;
-   iowrite8(out_state, ports + i);
+   iowrite8(out_state, ports[i]);
 
raw_spin_unlock_irqrestore(>lock, flags);
}
-- 
2.16.2



[PATCH 2/2] gpio: pcie-idio-24: Fix port memory offset for get_multiple/set_multiple callbacks

2018-04-18 Thread William Breathitt Gray
The ioread8/iowrite8 functions expect a memory offset argument. This
patch fixes the ports array to provide the memory addresses of the
respective device I/O registers.

Fixes: ca37081595a2 ("gpio: pcie-idio-24: Implement get_multiple/set_multiple 
callbacks")
Signed-off-by: William Breathitt Gray 
---
 drivers/gpio/gpio-pcie-idio-24.c | 20 ++--
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/gpio/gpio-pcie-idio-24.c b/drivers/gpio/gpio-pcie-idio-24.c
index 835607ecf658..3e77c2a9a9fd 100644
--- a/drivers/gpio/gpio-pcie-idio-24.c
+++ b/drivers/gpio/gpio-pcie-idio-24.c
@@ -206,10 +206,10 @@ static int idio_24_gpio_get_multiple(struct gpio_chip 
*chip,
unsigned long word_mask;
const unsigned long port_mask = GENMASK(gpio_reg_size - 1, 0);
unsigned long port_state;
-   u8 __iomem ports[] = {
-   idio24gpio->reg->out0_7, idio24gpio->reg->out8_15,
-   idio24gpio->reg->out16_23, idio24gpio->reg->in0_7,
-   idio24gpio->reg->in8_15, idio24gpio->reg->in16_23,
+   void __iomem *ports[] = {
+   >reg->out0_7, >reg->out8_15,
+   >reg->out16_23, >reg->in0_7,
+   >reg->in8_15, >reg->in16_23,
};
const unsigned long out_mode_mask = BIT(1);
 
@@ -236,7 +236,7 @@ static int idio_24_gpio_get_multiple(struct gpio_chip *chip,
 
/* read bits from current gpio port (port 6 is TTL GPIO) */
if (i < 6)
-   port_state = ioread8(ports + i);
+   port_state = ioread8(ports[i]);
else if (ioread8(>reg->ctl) & out_mode_mask)
port_state = ioread8(>reg->ttl_out0_7);
else
@@ -301,9 +301,9 @@ static void idio_24_gpio_set_multiple(struct gpio_chip 
*chip,
const unsigned long port_mask = GENMASK(gpio_reg_size, 0);
unsigned long flags;
unsigned int out_state;
-   u8 __iomem ports[] = {
-   idio24gpio->reg->out0_7, idio24gpio->reg->out8_15,
-   idio24gpio->reg->out16_23
+   void __iomem *ports[] = {
+   >reg->out0_7, >reg->out8_15,
+   >reg->out16_23
};
const unsigned long out_mode_mask = BIT(1);
const unsigned int ttl_offset = 48;
@@ -327,9 +327,9 @@ static void idio_24_gpio_set_multiple(struct gpio_chip 
*chip,
raw_spin_lock_irqsave(>lock, flags);
 
/* process output lines */
-   out_state = ioread8(ports + i) & ~gpio_mask;
+   out_state = ioread8(ports[i]) & ~gpio_mask;
out_state |= (*bits >> bits_offset) & gpio_mask;
-   iowrite8(out_state, ports + i);
+   iowrite8(out_state, ports[i]);
 
raw_spin_unlock_irqrestore(>lock, flags);
}
-- 
2.16.2