Commit be7658f7 authored by Linus Walleij's avatar Linus Walleij

MIPS: txx9: iocled: use gpiochip data pointer

This makes the driver use the data pointer added to the gpio_chip
to store a pointer to the state container instead of relying on
container_of().

Cc: linux-mips@linux-mips.org
Acked-by: default avatarRalf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 41f6f8ec
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/gpio.h> #include <linux/gpio/driver.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
...@@ -687,16 +687,14 @@ struct txx9_iocled_data { ...@@ -687,16 +687,14 @@ struct txx9_iocled_data {
static int txx9_iocled_get(struct gpio_chip *chip, unsigned int offset) static int txx9_iocled_get(struct gpio_chip *chip, unsigned int offset)
{ {
struct txx9_iocled_data *data = struct txx9_iocled_data *data = gpiochip_get_data(chip);
container_of(chip, struct txx9_iocled_data, chip);
return !!(data->cur_val & (1 << offset)); return !!(data->cur_val & (1 << offset));
} }
static void txx9_iocled_set(struct gpio_chip *chip, unsigned int offset, static void txx9_iocled_set(struct gpio_chip *chip, unsigned int offset,
int value) int value)
{ {
struct txx9_iocled_data *data = struct txx9_iocled_data *data = gpiochip_get_data(chip);
container_of(chip, struct txx9_iocled_data, chip);
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&txx9_iocled_lock, flags); spin_lock_irqsave(&txx9_iocled_lock, flags);
if (value) if (value)
...@@ -749,7 +747,7 @@ void __init txx9_iocled_init(unsigned long baseaddr, ...@@ -749,7 +747,7 @@ void __init txx9_iocled_init(unsigned long baseaddr,
iocled->chip.label = "iocled"; iocled->chip.label = "iocled";
iocled->chip.base = basenum; iocled->chip.base = basenum;
iocled->chip.ngpio = num; iocled->chip.ngpio = num;
if (gpiochip_add(&iocled->chip)) if (gpiochip_add_data(&iocled->chip, iocled))
goto out_unmap; goto out_unmap;
if (basenum < 0) if (basenum < 0)
basenum = iocled->chip.base; basenum = iocled->chip.base;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment