Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: "Yang,Wei" <Wei.Yang@windriver.com>
To: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>,
	David Daney <ddaney@caviumnetworks.com>, <ralf@linux-mips.org>
Cc: <linux-mips@linux-mips.org>,
	"Ashfield, Bruce" <Bruce.Ashfield@windriver.com>
Subject: Re: [PATCH] MIPS: octeon: Fix warning in of_device_alloc on cn3xxx
Date: Thu, 20 Mar 2014 08:53:44 +0800	[thread overview]
Message-ID: <532A3C18.40904@windriver.com> (raw)
In-Reply-To: <20140319220330.GC4368@alberich>

On 03/20/2014 06:03 AM, Andreas Herrmann wrote:
> Starting with commit 3da5278727a895d49a601f67fd49dffa0b80f9a5 (of/irq:
> Rework of_irq_count()) the following warning is triggered on octeon
> cn3xxx:
>
> [    0.887281] WARNING: CPU: 0 PID: 1 at drivers/of/platform.c:171 of_device_alloc+0x228/0x230()
> [    0.895642] Modules linked in:
> [    0.898689] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.0-rc7-00012-g9ae51f2-dirty #41
> [    0.906860] Stack : c8b439581166d96e ffffffff816b0000 0000000040808000 ffffffff81185ddc
> [    0.906860] 	  0000000000000000 0000000000000000 0000000000000000 000000000000000b
> [    0.906860] 	  000000000000000a 000000000000000a 0000000000000000 0000000000000000
> [    0.906860] 	  ffffffff81740000 ffffffff81720000 ffffffff81615900 ffffffff816b0177
> [    0.906860] 	  ffffffff81727d10 800000041f868fb0 0000000000000001 0000000000000000
> [    0.906860] 	  0000000000000000 0000000000000038 0000000000000001 ffffffff81568484
> [    0.906860] 	  800000041f86faa8 ffffffff81145ddc 0000000000000000 ffffffff811873f4
> [    0.906860] 	  800000041f868b88 800000041f86f9c0 0000000000000000 ffffffff81569c9c
> [    0.906860] 	  0000000000000000 0000000000000000 0000000000000000 0000000000000000
> [    0.906860] 	  0000000000000000 ffffffff811205e0 0000000000000000 0000000000000000
> [    0.906860] 	  ...
> [    0.971695] Call Trace:
> [    0.974139] [<ffffffff811205e0>] show_stack+0x68/0x80
> [    0.979183] [<ffffffff81569c9c>] dump_stack+0x8c/0xe0
> [    0.984196] [<ffffffff81145efc>] warn_slowpath_common+0x84/0xb8
> [    0.990110] [<ffffffff81436888>] of_device_alloc+0x228/0x230
> [    0.995726] [<ffffffff814368d8>] of_platform_device_create_pdata+0x48/0xd0
> [    1.002593] [<ffffffff81436a94>] of_platform_bus_create+0x134/0x1e8
> [    1.008837] [<ffffffff81436af8>] of_platform_bus_create+0x198/0x1e8
> [    1.015064] [<ffffffff81436cc4>] of_platform_bus_probe+0xa4/0x100
> [    1.021149] [<ffffffff81100570>] do_one_initcall+0xd8/0x128
> [    1.026701] [<ffffffff816e2a10>] kernel_init_freeable+0x144/0x210
> [    1.032753] [<ffffffff81564bc4>] kernel_init+0x14/0x110
> [    1.037973] [<ffffffff8111bb44>] ret_from_kernel_thread+0x14/0x1c
>
> With this commit the kernel starts mapping the interrupts listed for
> gpio-controller node. irq_domain_ops for CIU (octeon_irq_ciu_map and
> octeon_irq_ciu_xlat) refuse to handle the GPIO lines (returning -EINVAL)
> and this is causing above warning in of_device_alloc().
>
> Modify irq_domain_ops for CIU and CIU2 to "gracefully handle" GPIO
> lines (neither return error code nor call octeon_irq_set_ciu_mapping
> for it). This should avoid the warning.
>
> (As before the real setup for GPIO lines will happen using
> irq_domain_ops of gpio-controller.)
>
> This patch is based on Wei's patch v2 (see
> http://marc.info/?l=linux-mips&m=139511814813247).
>
> Reported-by: Yang Wei <wei.yang@windriver.com>
> Cc: David Daney <david.daney@caviumnetworks.com>
> Signed-off-by: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>

Okay, Thank you Andreas and David for this review.


Thanks
Wei
> ---
>   arch/mips/cavium-octeon/octeon-irq.c |   22 ++++++++++++----------
>   1 file changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/arch/mips/cavium-octeon/octeon-irq.c b/arch/mips/cavium-octeon/octeon-irq.c
> index 25fbfae..c2bb4f8 100644
> --- a/arch/mips/cavium-octeon/octeon-irq.c
> +++ b/arch/mips/cavium-octeon/octeon-irq.c
> @@ -975,10 +975,6 @@ static int octeon_irq_ciu_xlat(struct irq_domain *d,
>   	if (ciu > 1 || bit > 63)
>   		return -EINVAL;
>   
> -	/* These are the GPIO lines */
> -	if (ciu == 0 && bit >= 16 && bit < 32)
> -		return -EINVAL;
> -
>   	*out_hwirq = (ciu << 6) | bit;
>   	*out_type = 0;
>   
> @@ -1007,6 +1003,10 @@ static int octeon_irq_ciu_map(struct irq_domain *d,
>   	if (!octeon_irq_virq_in_range(virq))
>   		return -EINVAL;
>   
> +	/* Don't map irq if it is reserved for GPIO. */
> +	if (line == 0 && bit >= 16 && bit <32)
> +		return 0;
> +
>   	if (line > 1 || octeon_irq_ciu_to_irq[line][bit] != 0)
>   		return -EINVAL;
>   
> @@ -1525,10 +1525,6 @@ static int octeon_irq_ciu2_xlat(struct irq_domain *d,
>   	ciu = intspec[0];
>   	bit = intspec[1];
>   
> -	/* Line 7  are the GPIO lines */
> -	if (ciu > 6 || bit > 63)
> -		return -EINVAL;
> -
>   	*out_hwirq = (ciu << 6) | bit;
>   	*out_type = 0;
>   
> @@ -1570,8 +1566,14 @@ static int octeon_irq_ciu2_map(struct irq_domain *d,
>   	if (!octeon_irq_virq_in_range(virq))
>   		return -EINVAL;
>   
> -	/* Line 7  are the GPIO lines */
> -	if (line > 6 || octeon_irq_ciu_to_irq[line][bit] != 0)
> +	/*
> +	 * Don't map irq if it is reserved for GPIO.
> +	 * (Line 7 are the GPIO lines.)
> +	 */
> +	if (line == 7)
> +		return 0;
> +
> +	if (line > 7 || octeon_irq_ciu_to_irq[line][bit] != 0)
>   		return -EINVAL;
>   
>   	if (octeon_irq_ciu2_is_edge(line, bit))

WARNING: multiple messages have this Message-ID (diff)
From: "Yang,Wei" <Wei.Yang@windriver.com>
To: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>,
	David Daney <ddaney@caviumnetworks.com>,
	ralf@linux-mips.org
Cc: linux-mips@linux-mips.org, "Ashfield,
	Bruce" <Bruce.Ashfield@windriver.com>
Subject: Re: [PATCH] MIPS: octeon: Fix warning in of_device_alloc on cn3xxx
Date: Thu, 20 Mar 2014 08:53:44 +0800	[thread overview]
Message-ID: <532A3C18.40904@windriver.com> (raw)
Message-ID: <20140320005344.KJH3sxelgEIhjsUCjyUAESoa8qFTZFrEgq_k5XxFV4M@z> (raw)
In-Reply-To: <20140319220330.GC4368@alberich>

On 03/20/2014 06:03 AM, Andreas Herrmann wrote:
> Starting with commit 3da5278727a895d49a601f67fd49dffa0b80f9a5 (of/irq:
> Rework of_irq_count()) the following warning is triggered on octeon
> cn3xxx:
>
> [    0.887281] WARNING: CPU: 0 PID: 1 at drivers/of/platform.c:171 of_device_alloc+0x228/0x230()
> [    0.895642] Modules linked in:
> [    0.898689] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.0-rc7-00012-g9ae51f2-dirty #41
> [    0.906860] Stack : c8b439581166d96e ffffffff816b0000 0000000040808000 ffffffff81185ddc
> [    0.906860] 	  0000000000000000 0000000000000000 0000000000000000 000000000000000b
> [    0.906860] 	  000000000000000a 000000000000000a 0000000000000000 0000000000000000
> [    0.906860] 	  ffffffff81740000 ffffffff81720000 ffffffff81615900 ffffffff816b0177
> [    0.906860] 	  ffffffff81727d10 800000041f868fb0 0000000000000001 0000000000000000
> [    0.906860] 	  0000000000000000 0000000000000038 0000000000000001 ffffffff81568484
> [    0.906860] 	  800000041f86faa8 ffffffff81145ddc 0000000000000000 ffffffff811873f4
> [    0.906860] 	  800000041f868b88 800000041f86f9c0 0000000000000000 ffffffff81569c9c
> [    0.906860] 	  0000000000000000 0000000000000000 0000000000000000 0000000000000000
> [    0.906860] 	  0000000000000000 ffffffff811205e0 0000000000000000 0000000000000000
> [    0.906860] 	  ...
> [    0.971695] Call Trace:
> [    0.974139] [<ffffffff811205e0>] show_stack+0x68/0x80
> [    0.979183] [<ffffffff81569c9c>] dump_stack+0x8c/0xe0
> [    0.984196] [<ffffffff81145efc>] warn_slowpath_common+0x84/0xb8
> [    0.990110] [<ffffffff81436888>] of_device_alloc+0x228/0x230
> [    0.995726] [<ffffffff814368d8>] of_platform_device_create_pdata+0x48/0xd0
> [    1.002593] [<ffffffff81436a94>] of_platform_bus_create+0x134/0x1e8
> [    1.008837] [<ffffffff81436af8>] of_platform_bus_create+0x198/0x1e8
> [    1.015064] [<ffffffff81436cc4>] of_platform_bus_probe+0xa4/0x100
> [    1.021149] [<ffffffff81100570>] do_one_initcall+0xd8/0x128
> [    1.026701] [<ffffffff816e2a10>] kernel_init_freeable+0x144/0x210
> [    1.032753] [<ffffffff81564bc4>] kernel_init+0x14/0x110
> [    1.037973] [<ffffffff8111bb44>] ret_from_kernel_thread+0x14/0x1c
>
> With this commit the kernel starts mapping the interrupts listed for
> gpio-controller node. irq_domain_ops for CIU (octeon_irq_ciu_map and
> octeon_irq_ciu_xlat) refuse to handle the GPIO lines (returning -EINVAL)
> and this is causing above warning in of_device_alloc().
>
> Modify irq_domain_ops for CIU and CIU2 to "gracefully handle" GPIO
> lines (neither return error code nor call octeon_irq_set_ciu_mapping
> for it). This should avoid the warning.
>
> (As before the real setup for GPIO lines will happen using
> irq_domain_ops of gpio-controller.)
>
> This patch is based on Wei's patch v2 (see
> http://marc.info/?l=linux-mips&m=139511814813247).
>
> Reported-by: Yang Wei <wei.yang@windriver.com>
> Cc: David Daney <david.daney@caviumnetworks.com>
> Signed-off-by: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>

Okay, Thank you Andreas and David for this review.


Thanks
Wei
> ---
>   arch/mips/cavium-octeon/octeon-irq.c |   22 ++++++++++++----------
>   1 file changed, 12 insertions(+), 10 deletions(-)
>
> diff --git a/arch/mips/cavium-octeon/octeon-irq.c b/arch/mips/cavium-octeon/octeon-irq.c
> index 25fbfae..c2bb4f8 100644
> --- a/arch/mips/cavium-octeon/octeon-irq.c
> +++ b/arch/mips/cavium-octeon/octeon-irq.c
> @@ -975,10 +975,6 @@ static int octeon_irq_ciu_xlat(struct irq_domain *d,
>   	if (ciu > 1 || bit > 63)
>   		return -EINVAL;
>   
> -	/* These are the GPIO lines */
> -	if (ciu == 0 && bit >= 16 && bit < 32)
> -		return -EINVAL;
> -
>   	*out_hwirq = (ciu << 6) | bit;
>   	*out_type = 0;
>   
> @@ -1007,6 +1003,10 @@ static int octeon_irq_ciu_map(struct irq_domain *d,
>   	if (!octeon_irq_virq_in_range(virq))
>   		return -EINVAL;
>   
> +	/* Don't map irq if it is reserved for GPIO. */
> +	if (line == 0 && bit >= 16 && bit <32)
> +		return 0;
> +
>   	if (line > 1 || octeon_irq_ciu_to_irq[line][bit] != 0)
>   		return -EINVAL;
>   
> @@ -1525,10 +1525,6 @@ static int octeon_irq_ciu2_xlat(struct irq_domain *d,
>   	ciu = intspec[0];
>   	bit = intspec[1];
>   
> -	/* Line 7  are the GPIO lines */
> -	if (ciu > 6 || bit > 63)
> -		return -EINVAL;
> -
>   	*out_hwirq = (ciu << 6) | bit;
>   	*out_type = 0;
>   
> @@ -1570,8 +1566,14 @@ static int octeon_irq_ciu2_map(struct irq_domain *d,
>   	if (!octeon_irq_virq_in_range(virq))
>   		return -EINVAL;
>   
> -	/* Line 7  are the GPIO lines */
> -	if (line > 6 || octeon_irq_ciu_to_irq[line][bit] != 0)
> +	/*
> +	 * Don't map irq if it is reserved for GPIO.
> +	 * (Line 7 are the GPIO lines.)
> +	 */
> +	if (line == 7)
> +		return 0;
> +
> +	if (line > 7 || octeon_irq_ciu_to_irq[line][bit] != 0)
>   		return -EINVAL;
>   
>   	if (octeon_irq_ciu2_is_edge(line, bit))

  parent reply	other threads:[~2014-03-20  0:54 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-18  4:48 [PATCH V2] mips/octeon_3xxx: Fix a warning on octeon_3xxx Wei.Yang
2014-03-18  4:48 ` Wei.Yang
2014-03-19  9:51 ` Yang,Wei
2014-03-19  9:51   ` Yang,Wei
2014-03-19 16:20   ` Andreas Herrmann
2014-03-19 16:20     ` Andreas Herrmann
2014-03-19 18:34     ` David Daney
2014-03-19 18:34       ` David Daney
2014-03-19 22:03       ` [PATCH] MIPS: octeon: Fix warning in of_device_alloc on cn3xxx Andreas Herrmann
2014-03-19 22:03         ` Andreas Herrmann
2014-03-19 22:12         ` David Daney
2014-03-19 22:12           ` David Daney
2014-03-19 23:11         ` Aaro Koskinen
2014-03-20  0:53         ` Yang,Wei [this message]
2014-03-20  0:53           ` Yang,Wei

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=532A3C18.40904@windriver.com \
    --to=wei.yang@windriver.com \
    --cc=Bruce.Ashfield@windriver.com \
    --cc=andreas.herrmann@caviumnetworks.com \
    --cc=ddaney@caviumnetworks.com \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox