Thread (9 messages) 9 messages, 8 authors, 2015-12-14

[PATCH 004/182] gpio: generic: factor into gpio_chip struct

From: liviu.dudau@arm.com (Liviu Dudau)
Date: 2015-12-09 15:45:36
Also in: linux-gpio, linux-omap, linux-samsung-soc

On Wed, Dec 09, 2015 at 02:12:40PM +0100, Linus Walleij wrote:
The separate struct bgpio_chip has been a pain to handle, both
by being confusingly similar in name to struct gpio_chip and
for being contained inside a struct so that struct gpio_chip
is contained in a struct contained in a struct, making several
steps of dereferencing necessary.

Make things simpler: include the fields directly into
<linux/gpio/driver.h>, #ifdef:ed for CONFIG_GENERIC_GPIO, and
get rid of the <linux/basic_mmio_gpio.h> altogether. Prefix
some of the member variables with bgpio_* and add proper
kerneldoc while we're at it.

Modify all users to handle the change and use a struct
gpio_chip directly. And while we're at it: replace all
container_of() dereferencing by gpiochip_get_data() and
registering the gpio_chip with gpiochip_add_data().

Cc: arm at kernel.org
Cc: Lee Jones <redacted>
Cc: Alexander Shiyan <redacted>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Kukjin Kim <kgene@kernel.org>
Cc: Krzysztof Kozlowski <redacted>
Cc: Alexandre Courbot <redacted>
Cc: Gregory Fong <redacted>
Cc: Brian Norris <computersforpeace@gmail.com>
Cc: Florian Fainelli <f.fainelli@gmail.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Sudeep Holla <redacted>
Cc: Lorenzo Pieralisi <redacted>
Cc: Nicolas Pitre <redacted>
Cc: Olof Johansson <redacted>
Cc: Vladimir Zapolskiy <redacted>
Cc: Rabin Vincent <redacted>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-omap at vger.kernel.org
Cc: linux-samsung-soc at vger.kernel.org
Cc: bcm-kernel-feedback-list at broadcom.com
Signed-off-by: Linus Walleij <redacted>
---
ARM SoC folks and Lee: it would be great if you could
ACK the few lines hitting arch/arm/* and drivers/mfd/* in this
so I can take it through the GPIO tree.
---
[....]
 drivers/mfd/vexpress-sysreg.c           |   8 +-
[....]
quoted hunk ↗ jump to hunk
diff --git a/drivers/mfd/vexpress-sysreg.c b/drivers/mfd/vexpress-sysreg.c
index 3e628df9280c..855c0204f09a 100644
--- a/drivers/mfd/vexpress-sysreg.c
+++ b/drivers/mfd/vexpress-sysreg.c
@@ -11,7 +11,7 @@
  * Copyright (C) 2012 ARM Limited
  */
 
-#include <linux/basic_mmio_gpio.h>
+#include <linux/gpio/driver.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/mfd/core.h>
@@ -164,7 +164,7 @@ static int vexpress_sysreg_probe(struct platform_device *pdev)
 {
 	struct resource *mem;
 	void __iomem *base;
-	struct bgpio_chip *mmc_gpio_chip;
+	struct gpio_chip *mmc_gpio_chip;
 	int master;
 	u32 dt_hbi;
 
@@ -201,8 +201,8 @@ static int vexpress_sysreg_probe(struct platform_device *pdev)
 		return -ENOMEM;
 	bgpio_init(mmc_gpio_chip, &pdev->dev, 0x4, base + SYS_MCI,
 			NULL, NULL, NULL, NULL, 0);
-	mmc_gpio_chip->gc.ngpio = 2;
-	gpiochip_add(&mmc_gpio_chip->gc);
+	mmc_gpio_chip->ngpio = 2;
+	gpiochip_add(mmc_gpio_chip);
 
 	return mfd_add_devices(&pdev->dev, PLATFORM_DEVID_AUTO,
 			vexpress_sysreg_cells,
[....]
-- 
2.4.3
For the drivers/mfd/vexpress-sysreg.c part:

Acked-by: Liviu Dudau <Liviu.Dudau@arm.com>


-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ?\_(?)_/?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help