Re: [PATCH 158/182] leds: pca9532: use gpiochip data pointer

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

 



On 12/09/2015 02:46 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: Riku Voipio <riku.voipio@xxxxxx>
Cc: Richard Purdie <rpurdie@xxxxxxxxx>
Cc: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>
Cc: linux-leds@xxxxxxxxxxxxxxx
Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
---
LEDS people: please ACK this so I can merge it in the GPIO tree.
---
  drivers/leds/leds-pca9532.c | 8 ++++----
  1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/leds/leds-pca9532.c b/drivers/leds/leds-pca9532.c
index a975b32ee8c8..1b228adfd1a7 100644
--- a/drivers/leds/leds-pca9532.c
+++ b/drivers/leds/leds-pca9532.c
@@ -245,7 +245,7 @@ static void pca9532_led_work(struct work_struct *work)
  #ifdef CONFIG_LEDS_PCA9532_GPIO
  static int pca9532_gpio_request_pin(struct gpio_chip *gc, unsigned offset)
  {
-	struct pca9532_data *data = container_of(gc, struct pca9532_data, gpio);
+	struct pca9532_data *data = gpiochip_get_data(gc);
  	struct pca9532_led *led = &data->leds[offset];

  	if (led->type == PCA9532_TYPE_GPIO)
@@ -256,7 +256,7 @@ static int pca9532_gpio_request_pin(struct gpio_chip *gc, unsigned offset)

  static void pca9532_gpio_set_value(struct gpio_chip *gc, unsigned offset, int val)
  {
-	struct pca9532_data *data = container_of(gc, struct pca9532_data, gpio);
+	struct pca9532_data *data = gpiochip_get_data(gc);
  	struct pca9532_led *led = &data->leds[offset];

  	if (val)
@@ -269,7 +269,7 @@ static void pca9532_gpio_set_value(struct gpio_chip *gc, unsigned offset, int va

  static int pca9532_gpio_get_value(struct gpio_chip *gc, unsigned offset)
  {
-	struct pca9532_data *data = container_of(gc, struct pca9532_data, gpio);
+	struct pca9532_data *data = gpiochip_get_data(gc);
  	unsigned char reg;

  	reg = i2c_smbus_read_byte_data(data->client, PCA9532_REG_INPUT(offset));
@@ -416,7 +416,7 @@ static int pca9532_configure(struct i2c_client *client,
  		data->gpio.parent = &client->dev;
  		data->gpio.owner = THIS_MODULE;

-		err = gpiochip_add(&data->gpio);
+		err = gpiochip_add_data(&data->gpio, data);
  		if (err) {
  			/* Use data->gpio.dev as a flag for freeing gpiochip */
  			data->gpio.parent = NULL;


This applies only with 3-way merge due to work queue removal related
changes that already sit on LED git. Nothing clever can be done to fix
that since those changes depend on LED core changes and this patch
depends on GPIO changes. We'll need to add relevant remarks in the pull
requests.

Acked-by: Jacek Anaszewski <j.anaszewski@xxxxxxxxxxx>

--
Best Regards,
Jacek Anaszewski
--
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