All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org>
Cc: Linus Walleij
	<linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
	Jonathan Hunter
	<jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
	linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v2 00/16] gpio: Tight IRQ chip integration and banked infrastructure
Date: Fri, 6 Oct 2017 13:11:19 +0200	[thread overview]
Message-ID: <20171006111119.GC22706@ulmo> (raw)
In-Reply-To: <20171006110749.GB22706@ulmo>

[-- Attachment #1: Type: text/plain, Size: 2002 bytes --]

On Fri, Oct 06, 2017 at 01:07:49PM +0200, Thierry Reding wrote:
> On Thu, Sep 28, 2017 at 09:22:17AM -0500, Grygorii Strashko wrote:
[...]
> > - all GPIO IRQs mapped statically
> 
> This series predates your work on the dynamic IRQ mapping, so I hadn't
> picked up those changes. This should be easily solved by the attached
> patch, though.

Here's the patch.

Thierry

--- >8 ---
commit 139c254bf963bf373d83970e530a56599f1832cc
Author: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Date:   Fri Oct 6 12:12:27 2017 +0200

    fixup! gpio: Implement tighter IRQ chip integration

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index b3bd19b793d3..2e450afe61b3 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1708,9 +1708,23 @@ static void gpiochip_irq_relres(struct irq_data *d)
 
 static int gpiochip_to_irq(struct gpio_chip *chip, unsigned offset)
 {
+	unsigned int irq;
+	int err;
+
 	if (!gpiochip_irqchip_irq_valid(chip, offset))
 		return -ENXIO;
-	return irq_create_mapping(chip->irq.domain, offset);
+
+	irq = irq_create_mapping(chip->irq.domain, offset);
+	if (!irq)
+		return 0;
+
+	if (chip->irq.map) {
+		err = irq_set_parent(irq, chip->irq.map[offset]);
+		if (err < 0)
+			return err;
+	}
+
+	return irq;
 }
 
 /**
@@ -1856,27 +1870,6 @@ static int gpiochip_add_irqchip(struct gpio_chip *gpiochip)
 		gpiochip->irq.nested = true;
 	}
 
-	/*
-	 * Prepare the mapping since the IRQ chip shall be orthogonal to any
-	 * GPIO chip calls.
-	 */
-	for (i = 0; i < gpiochip->ngpio; i++) {
-		unsigned int irq;
-
-		if (!gpiochip_irqchip_irq_valid(gpiochip, i))
-			continue;
-
-		irq = irq_create_mapping(gpiochip->irq.domain, i);
-		if (!irq) {
-			chip_err(gpiochip,
-				 "failed to create IRQ mapping for GPIO#%u\n",
-				 i);
-			continue;
-		}
-
-		irq_set_parent(irq, gpiochip->irq.map[i]);
-	}
-
 	acpi_gpiochip_request_interrupts(gpiochip);
 
 	return 0;

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <thierry.reding@gmail.com>
To: Grygorii Strashko <grygorii.strashko@ti.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	linux-gpio@vger.kernel.org, linux-tegra@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 00/16] gpio: Tight IRQ chip integration and banked infrastructure
Date: Fri, 6 Oct 2017 13:11:19 +0200	[thread overview]
Message-ID: <20171006111119.GC22706@ulmo> (raw)
In-Reply-To: <20171006110749.GB22706@ulmo>

[-- Attachment #1: Type: text/plain, Size: 1973 bytes --]

On Fri, Oct 06, 2017 at 01:07:49PM +0200, Thierry Reding wrote:
> On Thu, Sep 28, 2017 at 09:22:17AM -0500, Grygorii Strashko wrote:
[...]
> > - all GPIO IRQs mapped statically
> 
> This series predates your work on the dynamic IRQ mapping, so I hadn't
> picked up those changes. This should be easily solved by the attached
> patch, though.

Here's the patch.

Thierry

--- >8 ---
commit 139c254bf963bf373d83970e530a56599f1832cc
Author: Thierry Reding <treding@nvidia.com>
Date:   Fri Oct 6 12:12:27 2017 +0200

    fixup! gpio: Implement tighter IRQ chip integration

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index b3bd19b793d3..2e450afe61b3 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1708,9 +1708,23 @@ static void gpiochip_irq_relres(struct irq_data *d)
 
 static int gpiochip_to_irq(struct gpio_chip *chip, unsigned offset)
 {
+	unsigned int irq;
+	int err;
+
 	if (!gpiochip_irqchip_irq_valid(chip, offset))
 		return -ENXIO;
-	return irq_create_mapping(chip->irq.domain, offset);
+
+	irq = irq_create_mapping(chip->irq.domain, offset);
+	if (!irq)
+		return 0;
+
+	if (chip->irq.map) {
+		err = irq_set_parent(irq, chip->irq.map[offset]);
+		if (err < 0)
+			return err;
+	}
+
+	return irq;
 }
 
 /**
@@ -1856,27 +1870,6 @@ static int gpiochip_add_irqchip(struct gpio_chip *gpiochip)
 		gpiochip->irq.nested = true;
 	}
 
-	/*
-	 * Prepare the mapping since the IRQ chip shall be orthogonal to any
-	 * GPIO chip calls.
-	 */
-	for (i = 0; i < gpiochip->ngpio; i++) {
-		unsigned int irq;
-
-		if (!gpiochip_irqchip_irq_valid(gpiochip, i))
-			continue;
-
-		irq = irq_create_mapping(gpiochip->irq.domain, i);
-		if (!irq) {
-			chip_err(gpiochip,
-				 "failed to create IRQ mapping for GPIO#%u\n",
-				 i);
-			continue;
-		}
-
-		irq_set_parent(irq, gpiochip->irq.map[i]);
-	}
-
 	acpi_gpiochip_request_interrupts(gpiochip);
 
 	return 0;

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2017-10-06 11:11 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-28  9:56 [PATCH v2 00/16] gpio: Tight IRQ chip integration and banked infrastructure Thierry Reding
2017-09-28  9:56 ` Thierry Reding
2017-09-28  9:56 ` [PATCH v2 01/16] gpio: Implement tighter IRQ chip integration Thierry Reding
     [not found]   ` <20170928095628.21966-2-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-09-28 14:22     ` Grygorii Strashko
2017-09-28 14:22       ` Grygorii Strashko
2017-10-10 22:56     ` Grygorii Strashko
2017-10-10 22:56       ` Grygorii Strashko
2017-09-28  9:56 ` [PATCH v2 03/16] gpio: Move irqdomain into struct gpio_irq_chip Thierry Reding
2017-09-28  9:56 ` [PATCH v2 04/16] gpio: Move irq_base to " Thierry Reding
2017-09-28  9:56 ` [PATCH v2 05/16] gpio: Move irq_handler " Thierry Reding
2017-09-28  9:56 ` [PATCH v2 06/16] gpio: Move irq_default_type " Thierry Reding
2017-09-28  9:56 ` [PATCH v2 08/16] gpio: Move irq_nested into " Thierry Reding
2017-09-28  9:56 ` [PATCH v2 10/16] gpio: Move lock_key " Thierry Reding
2017-09-28  9:56 ` [PATCH v2 11/16] gpio: Add Tegra186 support Thierry Reding
2017-09-28  9:56 ` [PATCH v2 12/16] gpio: omap: Fix checkpatch warnings Thierry Reding
2017-09-28  9:56 ` [PATCH v2 13/16] gpio: omap: Rename struct gpio_bank to struct omap_gpio_bank Thierry Reding
     [not found] ` <20170928095628.21966-1-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-09-28  9:56   ` [PATCH v2 02/16] gpio: Move irqchip into struct gpio_irq_chip Thierry Reding
2017-09-28  9:56     ` Thierry Reding
2017-09-28  9:56   ` [PATCH v2 07/16] gpio: Move irq_chained_parent to " Thierry Reding
2017-09-28  9:56     ` Thierry Reding
2017-09-28  9:56   ` [PATCH v2 09/16] gpio: Move irq_valid_mask into " Thierry Reding
2017-09-28  9:56     ` Thierry Reding
2017-09-28  9:56   ` [PATCH v2 14/16] gpio: Add support for banked GPIO controllers Thierry Reding
2017-09-28  9:56     ` Thierry Reding
     [not found]     ` <20170928095628.21966-15-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-10-09 21:52       ` Grygorii Strashko
2017-10-09 21:52         ` Grygorii Strashko
     [not found]         ` <ff3b45ec-2af0-5f34-aae8-bb54e892a64a-l0cyMroinI0@public.gmane.org>
2017-10-10 11:00           ` Thierry Reding
2017-10-10 11:00             ` Thierry Reding
2017-10-10 22:12             ` Grygorii Strashko
2017-10-10 22:12               ` Grygorii Strashko
2017-09-28  9:56   ` [PATCH v2 15/16] gpio: tegra: Use banked GPIO infrastructure Thierry Reding
2017-09-28  9:56     ` Thierry Reding
     [not found]     ` <20170928095628.21966-16-thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-10-09 21:22       ` Grygorii Strashko
2017-10-09 21:22         ` Grygorii Strashko
2017-10-10 10:27         ` Thierry Reding
2017-10-10 19:31           ` Grygorii Strashko
2017-10-10 19:31             ` Grygorii Strashko
2017-09-28 14:22   ` [PATCH v2 00/16] gpio: Tight IRQ chip integration and banked infrastructure Grygorii Strashko
2017-09-28 14:22     ` Grygorii Strashko
2017-10-02  7:55     ` Linus Walleij
     [not found]       ` <CACRpkdagAxotP=VZr1NUvmNmHgACfr4x2aHkh=nyyEhUWWgzPw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-10-03 18:26         ` Grygorii Strashko
2017-10-03 18:26           ` Grygorii Strashko
2017-10-05 11:19           ` Linus Walleij
2017-10-05 11:14         ` Linus Walleij
2017-10-05 11:14           ` Linus Walleij
     [not found]     ` <44cf41e3-834e-ddb3-4c9e-8ab00e0866cb-l0cyMroinI0@public.gmane.org>
2017-10-06 11:07       ` Thierry Reding
2017-10-06 11:07         ` Thierry Reding
2017-10-06 11:11         ` Thierry Reding [this message]
2017-10-06 11:11           ` Thierry Reding
2017-10-09 21:56         ` Grygorii Strashko
2017-10-09 21:56           ` Grygorii Strashko
     [not found]           ` <2c1abc4e-828e-8cd6-cce7-73050f5322fb-l0cyMroinI0@public.gmane.org>
2017-10-10 11:27             ` Thierry Reding
2017-10-10 11:27               ` Thierry Reding
2017-10-10 22:56               ` Grygorii Strashko
2017-10-10 22:56                 ` Grygorii Strashko
2017-09-28  9:56 ` [PATCH v2 16/16] gpio: tegra186: Use banked GPIO infrastructure Thierry Reding

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171006111119.GC22706@ulmo \
    --to=thierry.reding-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=grygorii.strashko-l0cyMroinI0@public.gmane.org \
    --cc=jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
    --cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
    --cc=linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.