LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH 0/4] Add support for PCI mapped devices and rmmod
@ 2014-12-08 15:07 Ricardo Ribalda Delgado
  2014-12-08 15:07 ` [PATCH 1/4] gpio/xilinx: remove offset property Ricardo Ribalda Delgado
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Ricardo Ribalda Delgado @ 2014-12-08 15:07 UTC (permalink / raw)
  To: Linus Walleij, Alexandre Courbot, Michal Simek,
	Sören Brinkmann, linux-gpio, linux-kernel
  Cc: Ricardo Ribalda Delgado

The main purpose of this patchset is to use the driver on a PCI mapped fpga.

This patchset also converts the driver to platform device, so it will support
hot plugged devices and rmmod.

Ricardo Ribalda Delgado (4):
  gpio/xilinx: remove offset property
  gpio/xilinx: Convert the driver to platform device interface
  gpio-xilinx: Implement remove callback
  gpio-xilinx: Add support for X86 Arch

 drivers/gpio/Kconfig       |   4 +-
 drivers/gpio/gpio-xilinx.c | 114 ++++++++++++++++++++++++++++-----------------
 2 files changed, 73 insertions(+), 45 deletions(-)

-- 
2.1.3


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/4] gpio/xilinx: remove offset property
  2014-12-08 15:07 [PATCH 0/4] Add support for PCI mapped devices and rmmod Ricardo Ribalda Delgado
@ 2014-12-08 15:07 ` Ricardo Ribalda Delgado
  2014-12-10 10:41   ` Alexandre Courbot
  2014-12-08 15:07 ` [PATCH 2/4] gpio/xilinx: Convert the driver to platform device interface Ricardo Ribalda Delgado
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Ricardo Ribalda Delgado @ 2014-12-08 15:07 UTC (permalink / raw)
  To: Linus Walleij, Alexandre Courbot, Michal Simek,
	Sören Brinkmann, linux-gpio, linux-kernel
  Cc: Ricardo Ribalda Delgado

Instead of calculating the register offset per call, pre-calculate it on
probe time.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
 drivers/gpio/gpio-xilinx.c | 33 +++++++++++----------------------
 1 file changed, 11 insertions(+), 22 deletions(-)

diff --git a/drivers/gpio/gpio-xilinx.c b/drivers/gpio/gpio-xilinx.c
index ba18b06..9483950 100644
--- a/drivers/gpio/gpio-xilinx.c
+++ b/drivers/gpio/gpio-xilinx.c
@@ -50,7 +50,6 @@ struct xgpio_instance {
 	struct of_mm_gpio_chip mmchip;
 	u32 gpio_state;
 	u32 gpio_dir;
-	u32 offset;
 	spinlock_t gpio_lock;
 };
 
@@ -65,12 +64,8 @@ struct xgpio_instance {
 static int xgpio_get(struct gpio_chip *gc, unsigned int gpio)
 {
 	struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
-	struct xgpio_instance *chip =
-	    container_of(mm_gc, struct xgpio_instance, mmchip);
 
-	void __iomem *regs = mm_gc->regs + chip->offset;
-
-	return !!(xgpio_readreg(regs + XGPIO_DATA_OFFSET) & BIT(gpio));
+	return !!(xgpio_readreg(mm_gc->regs + XGPIO_DATA_OFFSET) & BIT(gpio));
 }
 
 /**
@@ -88,7 +83,6 @@ static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
 	struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
 	struct xgpio_instance *chip =
 	    container_of(mm_gc, struct xgpio_instance, mmchip);
-	void __iomem *regs = mm_gc->regs;
 
 	spin_lock_irqsave(&chip->gpio_lock, flags);
 
@@ -98,8 +92,7 @@ static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
 	else
 		chip->gpio_state &= ~BIT(gpio);
 
-	xgpio_writereg(regs + chip->offset + XGPIO_DATA_OFFSET,
-							 chip->gpio_state);
+	xgpio_writereg(mm_gc->regs + XGPIO_DATA_OFFSET, chip->gpio_state);
 
 	spin_unlock_irqrestore(&chip->gpio_lock, flags);
 }
@@ -119,13 +112,12 @@ static int xgpio_dir_in(struct gpio_chip *gc, unsigned int gpio)
 	struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
 	struct xgpio_instance *chip =
 	    container_of(mm_gc, struct xgpio_instance, mmchip);
-	void __iomem *regs = mm_gc->regs;
 
 	spin_lock_irqsave(&chip->gpio_lock, flags);
 
 	/* Set the GPIO bit in shadow register and set direction as input */
 	chip->gpio_dir |= BIT(gpio);
-	xgpio_writereg(regs + chip->offset + XGPIO_TRI_OFFSET, chip->gpio_dir);
+	xgpio_writereg(mm_gc->regs + XGPIO_TRI_OFFSET, chip->gpio_dir);
 
 	spin_unlock_irqrestore(&chip->gpio_lock, flags);
 
@@ -148,7 +140,6 @@ static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
 	struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
 	struct xgpio_instance *chip =
 	    container_of(mm_gc, struct xgpio_instance, mmchip);
-	void __iomem *regs = mm_gc->regs;
 
 	spin_lock_irqsave(&chip->gpio_lock, flags);
 
@@ -157,12 +148,11 @@ static int xgpio_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
 		chip->gpio_state |= BIT(gpio);
 	else
 		chip->gpio_state &= ~BIT(gpio);
-	xgpio_writereg(regs + chip->offset + XGPIO_DATA_OFFSET,
-		       chip->gpio_state);
+	xgpio_writereg(mm_gc->regs + XGPIO_DATA_OFFSET, chip->gpio_state);
 
 	/* Clear the GPIO bit in shadow register and set direction as output */
 	chip->gpio_dir &= ~BIT(gpio);
-	xgpio_writereg(regs + chip->offset + XGPIO_TRI_OFFSET, chip->gpio_dir);
+	xgpio_writereg(mm_gc->regs + XGPIO_TRI_OFFSET, chip->gpio_dir);
 
 	spin_unlock_irqrestore(&chip->gpio_lock, flags);
 
@@ -178,10 +168,8 @@ static void xgpio_save_regs(struct of_mm_gpio_chip *mm_gc)
 	struct xgpio_instance *chip =
 	    container_of(mm_gc, struct xgpio_instance, mmchip);
 
-	xgpio_writereg(mm_gc->regs + chip->offset + XGPIO_DATA_OFFSET,
-							chip->gpio_state);
-	xgpio_writereg(mm_gc->regs + chip->offset + XGPIO_TRI_OFFSET,
-							 chip->gpio_dir);
+	xgpio_writereg(mm_gc->regs + XGPIO_DATA_OFFSET,	chip->gpio_state);
+	xgpio_writereg(mm_gc->regs + XGPIO_TRI_OFFSET, chip->gpio_dir);
 }
 
 /**
@@ -247,9 +235,6 @@ static int xgpio_of_probe(struct device_node *np)
 		if (!chip)
 			return -ENOMEM;
 
-		/* Add dual channel offset */
-		chip->offset = XGPIO_CHANNEL_OFFSET;
-
 		/* Update GPIO state shadow register with default value */
 		of_property_read_u32(np, "xlnx,dout-default-2",
 				     &chip->gpio_state);
@@ -285,6 +270,10 @@ static int xgpio_of_probe(struct device_node *np)
 			np->full_name, status);
 			return status;
 		}
+
+		/* Add dual channel offset */
+		chip->mmchip.regs += XGPIO_CHANNEL_OFFSET;
+
 		pr_info("XGpio: %s: dual channel registered, base is %d\n",
 					np->full_name, chip->mmchip.gc.base);
 	}
-- 
2.1.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/4] gpio/xilinx: Convert the driver to platform device interface
  2014-12-08 15:07 [PATCH 0/4] Add support for PCI mapped devices and rmmod Ricardo Ribalda Delgado
  2014-12-08 15:07 ` [PATCH 1/4] gpio/xilinx: remove offset property Ricardo Ribalda Delgado
@ 2014-12-08 15:07 ` Ricardo Ribalda Delgado
  2014-12-10 10:49   ` Alexandre Courbot
  2014-12-08 15:07 ` [PATCH 3/4] gpio-xilinx: Implement remove callback Ricardo Ribalda Delgado
  2014-12-08 15:07 ` [PATCH 4/4] gpio-xilinx: Add support for X86 Arch Ricardo Ribalda Delgado
  3 siblings, 1 reply; 10+ messages in thread
From: Ricardo Ribalda Delgado @ 2014-12-08 15:07 UTC (permalink / raw)
  To: Linus Walleij, Alexandre Courbot, Michal Simek,
	Sören Brinkmann, linux-gpio, linux-kernel
  Cc: Ricardo Ribalda Delgado

This way we do not need to transverse the device tree manually and we
support hot plugged devices.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
 drivers/gpio/gpio-xilinx.c | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/drivers/gpio/gpio-xilinx.c b/drivers/gpio/gpio-xilinx.c
index 9483950..1199a31 100644
--- a/drivers/gpio/gpio-xilinx.c
+++ b/drivers/gpio/gpio-xilinx.c
@@ -174,16 +174,16 @@ static void xgpio_save_regs(struct of_mm_gpio_chip *mm_gc)
 
 /**
  * xgpio_of_probe - Probe method for the GPIO device.
- * @np: pointer to device tree node
  *
  * This function probes the GPIO device in the device tree. It initializes the
  * driver data structure. It returns 0, if the driver is bound to the GPIO
  * device, or a negative value if there is an error.
  */
-static int xgpio_of_probe(struct device_node *np)
+static int xgpio_probe(struct platform_device *pdev)
 {
 	struct xgpio_instance *chip;
 	int status = 0;
+	struct device_node *np = pdev->dev.of_node;
 	const u32 *tree_info;
 	u32 ngpio;
 
@@ -210,6 +210,7 @@ static int xgpio_of_probe(struct device_node *np)
 
 	spin_lock_init(&chip->gpio_lock);
 
+	chip->mmchip.gc.dev = &pdev->dev;
 	chip->mmchip.gc.direction_input = xgpio_dir_in;
 	chip->mmchip.gc.direction_output = xgpio_dir_out;
 	chip->mmchip.gc.get = xgpio_get;
@@ -255,6 +256,7 @@ static int xgpio_of_probe(struct device_node *np)
 
 		spin_lock_init(&chip->gpio_lock);
 
+		chip->mmchip.gc.dev = &pdev->dev;
 		chip->mmchip.gc.direction_input = xgpio_dir_in;
 		chip->mmchip.gc.direction_output = xgpio_dir_out;
 		chip->mmchip.gc.get = xgpio_get;
@@ -286,19 +288,18 @@ static const struct of_device_id xgpio_of_match[] = {
 	{ /* end of list */ },
 };
 
-static int __init xgpio_init(void)
-{
-	struct device_node *np;
-
-	for_each_matching_node(np, xgpio_of_match)
-		xgpio_of_probe(np);
+MODULE_DEVICE_TABLE(of, xgpio_of_match);
 
-	return 0;
-}
+static struct platform_driver xgpio_plat_driver = {
+	.probe		= xgpio_probe,
+	.driver		= {
+			.name = "gpio-xilinx",
+			.owner = THIS_MODULE,
+			.of_match_table	= xgpio_of_match,
+	},
+};
 
-/* Make sure we get initialized before anyone else tries to use us */
-subsys_initcall(xgpio_init);
-/* No exit call at the moment as we cannot unregister of GPIO chips */
+module_platform_driver(xgpio_plat_driver);
 
 MODULE_AUTHOR("Xilinx, Inc.");
 MODULE_DESCRIPTION("Xilinx GPIO driver");
-- 
2.1.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/4] gpio-xilinx: Implement remove callback
  2014-12-08 15:07 [PATCH 0/4] Add support for PCI mapped devices and rmmod Ricardo Ribalda Delgado
  2014-12-08 15:07 ` [PATCH 1/4] gpio/xilinx: remove offset property Ricardo Ribalda Delgado
  2014-12-08 15:07 ` [PATCH 2/4] gpio/xilinx: Convert the driver to platform device interface Ricardo Ribalda Delgado
@ 2014-12-08 15:07 ` Ricardo Ribalda Delgado
  2014-12-08 15:07 ` [PATCH 4/4] gpio-xilinx: Add support for X86 Arch Ricardo Ribalda Delgado
  3 siblings, 0 replies; 10+ messages in thread
From: Ricardo Ribalda Delgado @ 2014-12-08 15:07 UTC (permalink / raw)
  To: Linus Walleij, Alexandre Courbot, Michal Simek,
	Sören Brinkmann, linux-gpio, linux-kernel
  Cc: Ricardo Ribalda Delgado

This way the driver can me unloaded.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
 drivers/gpio/gpio-xilinx.c | 52 +++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 45 insertions(+), 7 deletions(-)

diff --git a/drivers/gpio/gpio-xilinx.c b/drivers/gpio/gpio-xilinx.c
index 1199a31..f946d96 100644
--- a/drivers/gpio/gpio-xilinx.c
+++ b/drivers/gpio/gpio-xilinx.c
@@ -51,6 +51,11 @@ struct xgpio_instance {
 	u32 gpio_state;
 	u32 gpio_dir;
 	spinlock_t gpio_lock;
+	bool inited;
+};
+
+struct xgpio {
+	struct xgpio_instance port[2];
 };
 
 /**
@@ -173,7 +178,34 @@ static void xgpio_save_regs(struct of_mm_gpio_chip *mm_gc)
 }
 
 /**
+ * xgpio_remove - Remove method for the GPIO device.
+ * @pdev: pointer to the platform device
+ *
+ * This function remove gpiochips and frees all the allocated resources.
+ */
+static int xgpio_remove(struct platform_device *pdev)
+{
+	struct xgpio *xgpio = platform_get_drvdata(pdev);
+	int i;
+
+	for (i = 0; i < 2; i++) {
+		if (!xgpio->port[i].inited)
+			continue;
+		gpiochip_remove(&xgpio->port[i].mmchip.gc);
+
+		if (i == 1)
+			xgpio->port[i].mmchip.regs -= XGPIO_CHANNEL_OFFSET;
+
+		iounmap(xgpio->port[i].mmchip.regs);
+		kfree(xgpio->port[i].mmchip.gc.label);
+	}
+
+	return 0;
+}
+
+/**
  * xgpio_of_probe - Probe method for the GPIO device.
+ * @pdev: pointer to the platform device
  *
  * This function probes the GPIO device in the device tree. It initializes the
  * driver data structure. It returns 0, if the driver is bound to the GPIO
@@ -181,16 +213,22 @@ static void xgpio_save_regs(struct of_mm_gpio_chip *mm_gc)
  */
 static int xgpio_probe(struct platform_device *pdev)
 {
+	struct xgpio *xgpio;
 	struct xgpio_instance *chip;
 	int status = 0;
 	struct device_node *np = pdev->dev.of_node;
 	const u32 *tree_info;
 	u32 ngpio;
 
-	chip = kzalloc(sizeof(*chip), GFP_KERNEL);
-	if (!chip)
+	xgpio = (struct xgpio *) devm_kzalloc(&pdev->dev, sizeof(*xgpio),
+					      GFP_KERNEL);
+	if (!xgpio)
 		return -ENOMEM;
 
+	platform_set_drvdata(pdev, xgpio);
+
+	chip = &xgpio->port[0];
+
 	/* Update GPIO state shadow register with default value */
 	of_property_read_u32(np, "xlnx,dout-default", &chip->gpio_state);
 
@@ -221,20 +259,18 @@ static int xgpio_probe(struct platform_device *pdev)
 	/* Call the OF gpio helper to setup and register the GPIO device */
 	status = of_mm_gpiochip_add(np, &chip->mmchip);
 	if (status) {
-		kfree(chip);
 		pr_err("%s: error in probe function with status %d\n",
 		       np->full_name, status);
 		return status;
 	}
+	chip->inited = true;
 
 	pr_info("XGpio: %s: registered, base is %d\n", np->full_name,
 							chip->mmchip.gc.base);
 
 	tree_info = of_get_property(np, "xlnx,is-dual", NULL);
 	if (tree_info && be32_to_cpup(tree_info)) {
-		chip = kzalloc(sizeof(*chip), GFP_KERNEL);
-		if (!chip)
-			return -ENOMEM;
+		chip = &xgpio->port[1];
 
 		/* Update GPIO state shadow register with default value */
 		of_property_read_u32(np, "xlnx,dout-default-2",
@@ -267,7 +303,7 @@ static int xgpio_probe(struct platform_device *pdev)
 		/* Call the OF gpio helper to setup and register the GPIO dev */
 		status = of_mm_gpiochip_add(np, &chip->mmchip);
 		if (status) {
-			kfree(chip);
+			xgpio_remove(pdev);
 			pr_err("%s: error in probe function with status %d\n",
 			np->full_name, status);
 			return status;
@@ -275,6 +311,7 @@ static int xgpio_probe(struct platform_device *pdev)
 
 		/* Add dual channel offset */
 		chip->mmchip.regs += XGPIO_CHANNEL_OFFSET;
+		chip->inited = true;
 
 		pr_info("XGpio: %s: dual channel registered, base is %d\n",
 					np->full_name, chip->mmchip.gc.base);
@@ -292,6 +329,7 @@ MODULE_DEVICE_TABLE(of, xgpio_of_match);
 
 static struct platform_driver xgpio_plat_driver = {
 	.probe		= xgpio_probe,
+	.remove		= xgpio_remove,
 	.driver		= {
 			.name = "gpio-xilinx",
 			.owner = THIS_MODULE,
-- 
2.1.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/4] gpio-xilinx: Add support for X86 Arch
  2014-12-08 15:07 [PATCH 0/4] Add support for PCI mapped devices and rmmod Ricardo Ribalda Delgado
                   ` (2 preceding siblings ...)
  2014-12-08 15:07 ` [PATCH 3/4] gpio-xilinx: Implement remove callback Ricardo Ribalda Delgado
@ 2014-12-08 15:07 ` Ricardo Ribalda Delgado
  3 siblings, 0 replies; 10+ messages in thread
From: Ricardo Ribalda Delgado @ 2014-12-08 15:07 UTC (permalink / raw)
  To: Linus Walleij, Alexandre Courbot, Michal Simek,
	Sören Brinkmann, linux-gpio, linux-kernel
  Cc: Ricardo Ribalda Delgado

Core can be accessed via PCIe on X86 platform.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
---
 drivers/gpio/Kconfig       | 4 ++--
 drivers/gpio/gpio-xilinx.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 0959ca9..7f8ba83 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -343,8 +343,8 @@ config GPIO_XGENE
 	  here to enable the GFC GPIO functionality.
 
 config GPIO_XILINX
-	bool "Xilinx GPIO support"
-	depends on PPC_OF || MICROBLAZE || ARCH_ZYNQ
+	tristate "Xilinx GPIO support"
+	depends on OF_GPIO && (PPC_OF || MICROBLAZE || ARCH_ZYNQ || ARCH_X86)
 	help
 	  Say yes here to support the Xilinx FPGA GPIO device
 
diff --git a/drivers/gpio/gpio-xilinx.c b/drivers/gpio/gpio-xilinx.c
index f946d96..5463540 100644
--- a/drivers/gpio/gpio-xilinx.c
+++ b/drivers/gpio/gpio-xilinx.c
@@ -30,7 +30,7 @@
 #define XGPIO_CHANNEL_OFFSET	0x8
 
 /* Read/Write access to the GPIO registers */
-#ifdef CONFIG_ARCH_ZYNQ
+#if defined(CONFIG_ARCH_ZYNQ) || defined(CONFIG_X86)
 # define xgpio_readreg(offset)		readl(offset)
 # define xgpio_writereg(offset, val)	writel(val, offset)
 #else
-- 
2.1.3


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/4] gpio/xilinx: remove offset property
  2014-12-08 15:07 ` [PATCH 1/4] gpio/xilinx: remove offset property Ricardo Ribalda Delgado
@ 2014-12-10 10:41   ` Alexandre Courbot
  0 siblings, 0 replies; 10+ messages in thread
From: Alexandre Courbot @ 2014-12-10 10:41 UTC (permalink / raw)
  To: Ricardo Ribalda Delgado
  Cc: Linus Walleij, Michal Simek, Sören Brinkmann, linux-gpio,
	Linux Kernel Mailing List

On Tue, Dec 9, 2014 at 12:07 AM, Ricardo Ribalda Delgado
<ricardo.ribalda@gmail.com> wrote:
> Instead of calculating the register offset per call, pre-calculate it on
> probe time.
>
> Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>

Nice optimization.

Acked-by: Alexandre Courbot <acourbot@nvidia.com>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/4] gpio/xilinx: Convert the driver to platform device interface
  2014-12-08 15:07 ` [PATCH 2/4] gpio/xilinx: Convert the driver to platform device interface Ricardo Ribalda Delgado
@ 2014-12-10 10:49   ` Alexandre Courbot
  2014-12-10 13:07     ` Ricardo Ribalda Delgado
  0 siblings, 1 reply; 10+ messages in thread
From: Alexandre Courbot @ 2014-12-10 10:49 UTC (permalink / raw)
  To: Ricardo Ribalda Delgado
  Cc: Linus Walleij, Michal Simek, Sören Brinkmann, linux-gpio,
	Linux Kernel Mailing List

On Tue, Dec 9, 2014 at 12:07 AM, Ricardo Ribalda Delgado
<ricardo.ribalda@gmail.com> wrote:
> This way we do not need to transverse the device tree manually and we
> support hot plugged devices.

Looks ok at first sight, but I think patch 3 should be merged into
this one. They are really closely related.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/4] gpio/xilinx: Convert the driver to platform device interface
  2014-12-10 10:49   ` Alexandre Courbot
@ 2014-12-10 13:07     ` Ricardo Ribalda Delgado
  2014-12-10 13:09       ` Alexandre Courbot
  0 siblings, 1 reply; 10+ messages in thread
From: Ricardo Ribalda Delgado @ 2014-12-10 13:07 UTC (permalink / raw)
  To: Alexandre Courbot
  Cc: Linus Walleij, Michal Simek, Sören Brinkmann, linux-gpio,
	Linux Kernel Mailing List

Hello Alexandre

Will merge them and resend. May I add your acked by to the merged 2/3?

Thanks!

On Wed, Dec 10, 2014 at 11:49 AM, Alexandre Courbot <gnurou@gmail.com> wrote:
> On Tue, Dec 9, 2014 at 12:07 AM, Ricardo Ribalda Delgado
> <ricardo.ribalda@gmail.com> wrote:
>> This way we do not need to transverse the device tree manually and we
>> support hot plugged devices.
>
> Looks ok at first sight, but I think patch 3 should be merged into
> this one. They are really closely related.



-- 
Ricardo Ribalda

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/4] gpio/xilinx: Convert the driver to platform device interface
  2014-12-10 13:07     ` Ricardo Ribalda Delgado
@ 2014-12-10 13:09       ` Alexandre Courbot
  2014-12-10 13:22         ` Ricardo Ribalda Delgado
  0 siblings, 1 reply; 10+ messages in thread
From: Alexandre Courbot @ 2014-12-10 13:09 UTC (permalink / raw)
  To: Ricardo Ribalda Delgado
  Cc: Linus Walleij, Michal Simek, Sören Brinkmann, linux-gpio,
	Linux Kernel Mailing List

On Wed, Dec 10, 2014 at 10:07 PM, Ricardo Ribalda Delgado
<ricardo.ribalda@gmail.com> wrote:
> Hello Alexandre
>
> Will merge them and resend. May I add your acked by to the merged 2/3?

Not yet, I'd like to review the merged patch to get a good picture of
what it is doing.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/4] gpio/xilinx: Convert the driver to platform device interface
  2014-12-10 13:09       ` Alexandre Courbot
@ 2014-12-10 13:22         ` Ricardo Ribalda Delgado
  0 siblings, 0 replies; 10+ messages in thread
From: Ricardo Ribalda Delgado @ 2014-12-10 13:22 UTC (permalink / raw)
  To: Alexandre Courbot
  Cc: Linus Walleij, Michal Simek, Sören Brinkmann, linux-gpio,
	Linux Kernel Mailing List

I have just resend the whole patchet. I prefer 2 and 3 splited, so if
you change your mind It is not a problem to split them again :)

Regards!

On Wed, Dec 10, 2014 at 2:09 PM, Alexandre Courbot <gnurou@gmail.com> wrote:
> On Wed, Dec 10, 2014 at 10:07 PM, Ricardo Ribalda Delgado
> <ricardo.ribalda@gmail.com> wrote:
>> Hello Alexandre
>>
>> Will merge them and resend. May I add your acked by to the merged 2/3?
>
> Not yet, I'd like to review the merged patch to get a good picture of
> what it is doing.



-- 
Ricardo Ribalda

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-12-10 13:23 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-08 15:07 [PATCH 0/4] Add support for PCI mapped devices and rmmod Ricardo Ribalda Delgado
2014-12-08 15:07 ` [PATCH 1/4] gpio/xilinx: remove offset property Ricardo Ribalda Delgado
2014-12-10 10:41   ` Alexandre Courbot
2014-12-08 15:07 ` [PATCH 2/4] gpio/xilinx: Convert the driver to platform device interface Ricardo Ribalda Delgado
2014-12-10 10:49   ` Alexandre Courbot
2014-12-10 13:07     ` Ricardo Ribalda Delgado
2014-12-10 13:09       ` Alexandre Courbot
2014-12-10 13:22         ` Ricardo Ribalda Delgado
2014-12-08 15:07 ` [PATCH 3/4] gpio-xilinx: Implement remove callback Ricardo Ribalda Delgado
2014-12-08 15:07 ` [PATCH 4/4] gpio-xilinx: Add support for X86 Arch Ricardo Ribalda Delgado

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).