From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Pramod Gurav <pramod.gurav@smartplayin.com>,
linux-kernel@vger.kernel.org
Cc: Maxime Coquelin <maxime.coquelin@st.com>,
Patrice Chotard <patrice.chotard@st.com>,
Linus Walleij <linus.walleij@linaro.org>
Subject: Re: [PATCH] pinctrl: st: Fix Sparse error
Date: Mon, 29 Sep 2014 15:46:39 +0100 [thread overview]
Message-ID: <542970CF.6040405@linaro.org> (raw)
In-Reply-To: <1411998499-20300-1-git-send-email-pramod.gurav@smartplayin.com>
On 29/09/14 14:48, Pramod Gurav wrote:
> This change fixes below sparse error,
> drivers/pinctrl/pinctrl-st.c:1515:31: error: incompatible types for operation (>)
> drivers/pinctrl/pinctrl-st.c:1515:31: left side has type void [noderef] <asn:2>*irqmux_base
> drivers/pinctrl/pinctrl-st.c:1515:31: right side has type int
>
> The fix is done by removing a check on info->irqmux_base as
> info->irqmux_base has already been checked for error when allocating it.
> Hence there is no need to redo the check.
>
> Cc: Maxime Coquelin <maxime.coquelin@st.com>
> Cc: Patrice Chotard <patrice.chotard@st.com>
> CC: Linus Walleij <linus.walleij@linaro.org>
> Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> Signed-off-by: Pramod Gurav <pramod.gurav@smartplayin.com>
> ---
> drivers/pinctrl/pinctrl-st.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
> index 5475374..ddeaeda 100644
> --- a/drivers/pinctrl/pinctrl-st.c
> +++ b/drivers/pinctrl/pinctrl-st.c
> @@ -1512,7 +1512,7 @@ static int st_gpiolib_register_bank(struct st_pinctrl *info,
> gpio_irq, st_gpio_irq_handler);
> }
>
> - if (info->irqmux_base > 0 || gpio_irq > 0) {
> + if (gpio_irq > 0) {
> err = gpiochip_irqchip_add(&bank->gpio_chip, &st_gpio_irqchip,
> 0, handle_simple_irq,
> IRQ_TYPE_LEVEL_LOW);
This is not the correct fix. Please see why irqmux_base and gpio_irq are
used in the driver.
You are breaking the logic here...
please read the below comment from the code.
/**
* GPIO bank can have one of the two possible types of
* interrupt-wirings.
*
* First type is via irqmux, single interrupt is used by multiple
* gpio banks. This reduces number of overall interrupts numbers
* required. All these banks belong to a single pincontroller.
* _________
* | |----> [gpio-bank (n) ]
* | |----> [gpio-bank (n + 1)]
* [irqN]-- | irq-mux |----> [gpio-bank (n + 2)]
* | |----> [gpio-bank (... )]
* |_________|----> [gpio-bank (n + 7)]
*
* Second type has a dedicated interrupt per each gpio bank.
*
* [irqN]----> [gpio-bank (n)]
*/
so irqmux_base is first type and gpio_irq is second type.
if you remove check for irqmux_base here you would end up NOT adding
irqchip the gpiochip in first type so you break the existing logic here.
I think the correct fix is:
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
index 5475374..4060c30 100644
--- a/drivers/pinctrl/pinctrl-st.c
+++ b/drivers/pinctrl/pinctrl-st.c
@@ -1512,7 +1512,7 @@ static int st_gpiolib_register_bank(struct
st_pinctrl *info,
gpio_irq,
st_gpio_irq_handler);
}
- if (info->irqmux_base > 0 || gpio_irq > 0) {
+ if (!IS_ERR(info->irqmux_base) || gpio_irq > 0) {
err = gpiochip_irqchip_add(&bank->gpio_chip,
&st_gpio_irqchip,
0, handle_simple_irq,
IRQ_TYPE_LEVEL_LOW);
Thanks,
srini
next prev parent reply other threads:[~2014-09-29 14:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-29 13:48 [PATCH] pinctrl: st: Fix Sparse error Pramod Gurav
2014-09-29 13:47 ` Patrice Chotard
2014-09-29 14:46 ` Srinivas Kandagatla [this message]
2014-09-29 15:05 ` Pramod Gurav
2014-09-29 15:38 ` Srinivas Kandagatla
2014-09-29 16:10 ` Pramod Gurav
2014-09-29 15:09 ` Daniel Thompson
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=542970CF.6040405@linaro.org \
--to=srinivas.kandagatla@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.coquelin@st.com \
--cc=patrice.chotard@st.com \
--cc=pramod.gurav@smartplayin.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.