All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <marc.zyngier@arm.com>
To: Mika Westerberg <mika.westerberg@linux.intel.com>,
	Linus Walleij <linus.walleij@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Phidias Chiang <phidias.chiang@canonical.com>,
	Anisse Astier <anisse@astier.eu>,
	Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Yu C Chen <yu.c.chen@intel.com>,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] gpiolib: Add possibility to mask which GPIOs are added to IRQ domain
Date: Thu, 15 Sep 2016 17:07:58 +0100	[thread overview]
Message-ID: <57DAC75E.5080203@arm.com> (raw)
In-Reply-To: <20160915155210.94413-1-mika.westerberg@linux.intel.com>

Mika,

On 15/09/16 16:52, Mika Westerberg wrote:
> When using GPIO irqchip helpers to setup irqchip for a gpiolib based
> driver, it is not possible to select which GPIOs to add to the IRQ domain.
> Instead it just adds all GPIOs which is not always desired. For example
> there might be GPIOs that for some reason just cannot be used as interrupts
> at all.
> 
> To make this possible we add valid_mask to each gpio_chip and by default
> assume all GPIOs can be used as interrupts. Drivers can then tune this
> using clear_bit() or similar before they call gpiochip_irqchip_add().
> 
> Suggested-by: Linus Walleij <linus.walleij@linaro.org>
> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> ---
>  drivers/gpio/gpiolib.c      | 32 +++++++++++++++++++++++++++++---
>  include/linux/gpio/driver.h |  1 +
>  2 files changed, 30 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> index 53ff25ac66d8..d84c23b47f44 100644
> --- a/drivers/gpio/gpiolib.c
> +++ b/drivers/gpio/gpiolib.c
> @@ -1186,6 +1186,18 @@ int gpiochip_add_data(struct gpio_chip *chip, void *data)
>  		if (status)
>  			goto err_remove_chip;
>  	}
> +
> +#ifdef CONFIG_GPIOLIB_IRQCHIP
> +	chip->valid_mask = kcalloc(BITS_TO_LONGS(chip->ngpio), sizeof(long),
> +				   GFP_KERNEL);

Do we really want to make this a mandatory thing? In most cases, I'd
expect this valid_mask to have all bits set, so you might as well not
allocate it at all in that case (and only allocate it if you actually
need it).

> +	if (!chip->valid_mask)
> +		return -ENOMEM;

You really want to revise your error handling here.

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

  parent reply	other threads:[~2016-09-15 16:08 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-22  7:56 [PATCH] pinctrl: cherryview: Do not mask all interrupts on probe Mika Westerberg
2015-06-01  9:23 ` Mika Westerberg
2015-06-02 13:53   ` Linus Walleij
2015-06-02 14:15     ` Mika Westerberg
2015-07-29  8:51       ` João Paulo Rechi Vita
2016-08-16 16:12       ` Anisse Astier
2016-08-17  8:13         ` Mika Westerberg
2016-08-17 13:42           ` Anisse Astier
2016-08-18 12:13             ` Mika Westerberg
2016-08-18 13:52               ` Anisse Astier
2016-08-18 13:58                 ` Mika Westerberg
2016-09-08 10:13                   ` Phidias Chiang
2016-09-08 10:24                     ` Mika Westerberg
2016-09-08 16:28                       ` Phidias Chiang
2016-09-09  6:18                         ` Mika Westerberg
2016-09-09  8:23                           ` Phidias Chiang
2016-09-09  8:58                             ` Mika Westerberg
2016-09-11  8:05                               ` Mika Westerberg
2016-09-12  6:56                                 ` Phidias Chiang
2016-09-12  9:04                                   ` Mika Westerberg
2016-09-12 13:04                                     ` Phidias Chiang
2016-09-12 13:11                                       ` Mika Westerberg
2016-09-13  9:18                                         ` Linus Walleij
2016-09-13  9:33                                           ` Mika Westerberg
2016-09-13 12:22                                             ` Linus Walleij
2016-09-13 12:52                                               ` Mika Westerberg
2016-09-13 20:57                                                 ` Linus Walleij
2016-09-14  8:26                                                   ` Mika Westerberg
2016-09-14 12:46                                                     ` Linus Walleij
2016-09-14 15:12                                                       ` Mika Westerberg
2016-09-15 12:39                                                         ` Linus Walleij
2016-09-15 15:42                                                           ` Mika Westerberg
2016-09-15 15:52                                                           ` [PATCH 1/2] gpiolib: Add possibility to mask which GPIOs are added to IRQ domain Mika Westerberg
2016-09-15 15:52                                                             ` [PATCH 2/2] pinctrl: cherryview: Do not add all southwest and north GPIOs " Mika Westerberg
2016-09-15 16:07                                                             ` Marc Zyngier [this message]
2016-09-15 18:12                                                               ` [PATCH 1/2] gpiolib: Add possibility to mask which GPIOs are added " Mika Westerberg
2016-09-15 18:50                                                                 ` Thomas Gleixner
2016-09-18 11:16                                                             ` Linus Walleij

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=57DAC75E.5080203@arm.com \
    --to=marc.zyngier@arm.com \
    --cc=anisse@astier.eu \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=phidias.chiang@canonical.com \
    --cc=tglx@linutronix.de \
    --cc=yu.c.chen@intel.com \
    /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.