Re: [PATCH 155/182] input: adp5588-keys: use gpiochip data pointer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 09, 2015 at 02:42:48PM +0100, Michael Hennerich wrote:
> On 12/09/2015 02:44 PM, Linus Walleij wrote:
> >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: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> >Cc: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> >Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> 
> Acked-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> 
> >---
> >Dmitry: please ACK this so I can take it through the GPIO tree.

In case you decided to continue with this approach:

Acked-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>

> >---
> >  drivers/input/keyboard/adp5588-keys.c | 10 +++++-----
> >  1 file changed, 5 insertions(+), 5 deletions(-)
> >
> >diff --git a/drivers/input/keyboard/adp5588-keys.c b/drivers/input/keyboard/adp5588-keys.c
> >index 21a62d0fa764..53fe9a3fb620 100644
> >--- a/drivers/input/keyboard/adp5588-keys.c
> >+++ b/drivers/input/keyboard/adp5588-keys.c
> >@@ -73,7 +73,7 @@ static int adp5588_write(struct i2c_client *client, u8 reg, u8 val)
> >  #ifdef CONFIG_GPIOLIB
> >  static int adp5588_gpio_get_value(struct gpio_chip *chip, unsigned off)
> >  {
> >-	struct adp5588_kpad *kpad = container_of(chip, struct adp5588_kpad, gc);
> >+	struct adp5588_kpad *kpad = gpiochip_get_data(chip);
> >  	unsigned int bank = ADP5588_BANK(kpad->gpiomap[off]);
> >  	unsigned int bit = ADP5588_BIT(kpad->gpiomap[off]);
> >  	int val;
> >@@ -93,7 +93,7 @@ static int adp5588_gpio_get_value(struct gpio_chip *chip, unsigned off)
> >  static void adp5588_gpio_set_value(struct gpio_chip *chip,
> >  				   unsigned off, int val)
> >  {
> >-	struct adp5588_kpad *kpad = container_of(chip, struct adp5588_kpad, gc);
> >+	struct adp5588_kpad *kpad = gpiochip_get_data(chip);
> >  	unsigned int bank = ADP5588_BANK(kpad->gpiomap[off]);
> >  	unsigned int bit = ADP5588_BIT(kpad->gpiomap[off]);
> >
> >@@ -112,7 +112,7 @@ static void adp5588_gpio_set_value(struct gpio_chip *chip,
> >
> >  static int adp5588_gpio_direction_input(struct gpio_chip *chip, unsigned off)
> >  {
> >-	struct adp5588_kpad *kpad = container_of(chip, struct adp5588_kpad, gc);
> >+	struct adp5588_kpad *kpad = gpiochip_get_data(chip);
> >  	unsigned int bank = ADP5588_BANK(kpad->gpiomap[off]);
> >  	unsigned int bit = ADP5588_BIT(kpad->gpiomap[off]);
> >  	int ret;
> >@@ -130,7 +130,7 @@ static int adp5588_gpio_direction_input(struct gpio_chip *chip, unsigned off)
> >  static int adp5588_gpio_direction_output(struct gpio_chip *chip,
> >  					 unsigned off, int val)
> >  {
> >-	struct adp5588_kpad *kpad = container_of(chip, struct adp5588_kpad, gc);
> >+	struct adp5588_kpad *kpad = gpiochip_get_data(chip);
> >  	unsigned int bank = ADP5588_BANK(kpad->gpiomap[off]);
> >  	unsigned int bit = ADP5588_BIT(kpad->gpiomap[off]);
> >  	int ret;
> >@@ -210,7 +210,7 @@ static int adp5588_gpio_add(struct adp5588_kpad *kpad)
> >
> >  	mutex_init(&kpad->gpio_lock);
> >
> >-	error = gpiochip_add(&kpad->gc);
> >+	error = gpiochip_add_data(&kpad->gc, kpad);
> >  	if (error) {
> >  		dev_err(dev, "gpiochip_add failed, err: %d\n", error);
> >  		return error;
> >
> 
> 
> -- 
> Greetings,
> Michael
> 
> --
> Analog Devices GmbH      Wilhelm-Wagenfeld-Str. 6      80807 Muenchen
> Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368;
> Geschaeftsfuehrer:Dr.Carsten Suckrow, Thomas Wessel, William A. Martin,
> Margaret Seif

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux