From: Alexander Sverdlin <alexander.sverdlin@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Hubert Feurstein <hubert.feurstein@contec.at>,
Hartley Sweeten <hsweeten@visionengravers.com>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Lukasz Majewski <lukma@denx.de>
Subject: Re: [PATCH 2/6] ARM: ep93xx: enable SPARSE_IRQ
Date: Sat, 19 Oct 2019 18:42:34 +0200 [thread overview]
Message-ID: <20191019184234.4cdb37a735fe632528880d76@gmail.com> (raw)
In-Reply-To: <20191018163047.1284736-2-arnd@arndb.de>
Hello Arnd,
On Fri, 18 Oct 2019 18:29:15 +0200
Arnd Bergmann <arnd@arndb.de> wrote:
> Without CONFIG_SPARSE_IRQ, we rely on mach/irqs.h to define NR_IRQS
> globally. Do the minimal conversion by setting .nr_irqs in each
> machine descriptor.
>
> Only the vision_ep9307 machine has extra IRQs for GPIOs, so make
> .nr_irqs the original value there, while using the plain NR_EP93XX_IRQS
> everywhere else.
This patch causes multiple problems on EDB9302:
1. WARNINGs during gpiochip registration, for instance:
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at kernel/irq/chip.c:1013 __irq_do_set_handler+0x94/0x188
CPU: 0 PID: 1 Comm: swapper Tainted: G W 5.4.0-rc3 #1
Hardware name: Cirrus Logic EDB9302 Evaluation Board
[<c000e878>] (unwind_backtrace) from [<c000d574>] (show_stack+0x10/0x18)
[<c000d574>] (show_stack) from [<c0335e28>] (dump_stack+0x18/0x24)
[<c0335e28>] (dump_stack) from [<c001cf1c>] (__warn+0xa4/0xc8)
[<c001cf1c>] (__warn) from [<c001cfe8>] (warn_slowpath_fmt+0xa8/0xb8)
[<c001cfe8>] (warn_slowpath_fmt) from [<c0055668>] (__irq_do_set_handler+0x94/0x188)
[<c0055668>] (__irq_do_set_handler) from [<c005647c>] (irq_set_chained_handler_and_data+0x48/0x7c)
[<c005647c>] (irq_set_chained_handler_and_data) from [<c01ab440>] (gpiochip_add_data_with_key+0x6d4/0xabc)
[<c01ab440>] (gpiochip_add_data_with_key) from [<c01ab868>] (devm_gpiochip_add_data+0x40/0x88)
[<c01ab868>] (devm_gpiochip_add_data) from [<c01ae554>] (ep93xx_gpio_probe+0x1ac/0x280)
[<c01ae554>] (ep93xx_gpio_probe) from [<c01e0f34>] (platform_drv_probe+0x28/0x6c)
[<c01e0f34>] (platform_drv_probe) from [<c01df588>] (really_probe+0x1c8/0x340)
[<c01df588>] (really_probe) from [<c01ddfe4>] (bus_for_each_drv+0x58/0xc0)
[<c01ddfe4>] (bus_for_each_drv) from [<c01df904>] (__device_attach+0xb4/0x104)
[<c01df904>] (__device_attach) from [<c01de1d4>] (bus_probe_device+0x8c/0x94)
[<c01de1d4>] (bus_probe_device) from [<c01db5e4>] (device_add+0x3d0/0x59c)
[<c01db5e4>] (device_add) from [<c01e16d8>] (platform_device_add+0x100/0x20c)
[<c01e16d8>] (platform_device_add) from [<c03f50b0>] (ep93xx_init_devices+0x16c/0x20c)
[<c03f50b0>] (ep93xx_init_devices) from [<c03f53a0>] (edb93xx_init_machine+0xc/0x84)
[<c03f53a0>] (edb93xx_init_machine) from [<c03f1984>] (customize_machine+0x20/0x38)
[<c03f1984>] (customize_machine) from [<c03f0e54>] (do_one_initcall+0x78/0x1a0)
[<c03f0e54>] (do_one_initcall) from [<c03f1080>] (kernel_init_freeable+0x104/0x1b8)
[<c03f1080>] (kernel_init_freeable) from [<c034c358>] (kernel_init+0x8/0xf8)
[<c034c358>] (kernel_init) from [<c00090d0>] (ret_from_fork+0x14/0x24)
Exception stack(0xc4433fb0 to 0xc4433ff8)
3fa0: 00000000 00000000 00000000 00000000
3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end trace 8f9e35e2d6224882 ]---
2. Broken sound (I2S), this looks like below in the log:
ep93xx-i2s ep93xx-i2s: Missing dma channel for stream: 0
CS4271: ASoC: pcm constructor failed: -22
edb93xx-audio edb93xx-audio: ASoC: can't create pcm CS4271 HiFi :-22
And /proc/interrupts has two entries less. Without patch:
# cat /proc/interrupts
CPU0
7: 0 VIC 7 Edge i2s-pcm-out
8: 0 VIC 8 Edge i2s-pcm-in
39: 2 VIC 7 Edge eth0
51: 7532 VIC 19 Edge ep93xx timer
52: 144 VIC 20 Edge uart-pl010
53: 4 VIC 21 Edge ep93xx-spi
60: 0 VIC 28 Edge ep93xx-i2s
Err: 0
With patch:
# cat /proc/interrupts
CPU0
39: 146 VIC 7 Edge eth0
51: 162161 VIC 19 Edge ep93xx timer
52: 139 VIC 20 Edge uart-pl010
53: 4 VIC 21 Edge ep93xx-spi
60: 0 VIC 28 Edge ep93xx-i2s
Err: 0
I will try to look into I2S problem...
> ---
> It's been a while since I did this, no idea what else is needed
> here or if this is correct at all.
>
> Cc: Hartley Sweeten <hsweeten@visionengravers.com>
> Cc: Alexander Sverdlin <alexander.sverdlin@gmail.com>
> Cc: Hubert Feurstein <hubert.feurstein@contec.at>
> Cc: Lukasz Majewski <lukma@denx.de>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/arm/Kconfig | 2 ++
> arch/arm/mach-ep93xx/adssphere.c | 1 +
> arch/arm/mach-ep93xx/edb93xx.c | 8 ++++++++
> arch/arm/mach-ep93xx/gesbc9312.c | 1 +
> arch/arm/mach-ep93xx/{include/mach => }/irqs.h | 7 -------
> arch/arm/mach-ep93xx/micro9.c | 4 ++++
> arch/arm/mach-ep93xx/simone.c | 1 +
> arch/arm/mach-ep93xx/snappercl15.c | 1 +
> arch/arm/mach-ep93xx/soc.h | 1 +
> arch/arm/mach-ep93xx/ts72xx.c | 3 ++-
> arch/arm/mach-ep93xx/vision_ep9307.c | 1 +
> 11 files changed, 22 insertions(+), 8 deletions(-)
> rename arch/arm/mach-ep93xx/{include/mach => }/irqs.h (94%)
--
Alexander Sverdlin.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Alexander Sverdlin <alexander.sverdlin@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
Hartley Sweeten <hsweeten@visionengravers.com>,
Hubert Feurstein <hubert.feurstein@contec.at>,
Lukasz Majewski <lukma@denx.de>
Subject: Re: [PATCH 2/6] ARM: ep93xx: enable SPARSE_IRQ
Date: Sat, 19 Oct 2019 18:42:34 +0200 [thread overview]
Message-ID: <20191019184234.4cdb37a735fe632528880d76@gmail.com> (raw)
In-Reply-To: <20191018163047.1284736-2-arnd@arndb.de>
Hello Arnd,
On Fri, 18 Oct 2019 18:29:15 +0200
Arnd Bergmann <arnd@arndb.de> wrote:
> Without CONFIG_SPARSE_IRQ, we rely on mach/irqs.h to define NR_IRQS
> globally. Do the minimal conversion by setting .nr_irqs in each
> machine descriptor.
>
> Only the vision_ep9307 machine has extra IRQs for GPIOs, so make
> .nr_irqs the original value there, while using the plain NR_EP93XX_IRQS
> everywhere else.
This patch causes multiple problems on EDB9302:
1. WARNINGs during gpiochip registration, for instance:
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at kernel/irq/chip.c:1013 __irq_do_set_handler+0x94/0x188
CPU: 0 PID: 1 Comm: swapper Tainted: G W 5.4.0-rc3 #1
Hardware name: Cirrus Logic EDB9302 Evaluation Board
[<c000e878>] (unwind_backtrace) from [<c000d574>] (show_stack+0x10/0x18)
[<c000d574>] (show_stack) from [<c0335e28>] (dump_stack+0x18/0x24)
[<c0335e28>] (dump_stack) from [<c001cf1c>] (__warn+0xa4/0xc8)
[<c001cf1c>] (__warn) from [<c001cfe8>] (warn_slowpath_fmt+0xa8/0xb8)
[<c001cfe8>] (warn_slowpath_fmt) from [<c0055668>] (__irq_do_set_handler+0x94/0x188)
[<c0055668>] (__irq_do_set_handler) from [<c005647c>] (irq_set_chained_handler_and_data+0x48/0x7c)
[<c005647c>] (irq_set_chained_handler_and_data) from [<c01ab440>] (gpiochip_add_data_with_key+0x6d4/0xabc)
[<c01ab440>] (gpiochip_add_data_with_key) from [<c01ab868>] (devm_gpiochip_add_data+0x40/0x88)
[<c01ab868>] (devm_gpiochip_add_data) from [<c01ae554>] (ep93xx_gpio_probe+0x1ac/0x280)
[<c01ae554>] (ep93xx_gpio_probe) from [<c01e0f34>] (platform_drv_probe+0x28/0x6c)
[<c01e0f34>] (platform_drv_probe) from [<c01df588>] (really_probe+0x1c8/0x340)
[<c01df588>] (really_probe) from [<c01ddfe4>] (bus_for_each_drv+0x58/0xc0)
[<c01ddfe4>] (bus_for_each_drv) from [<c01df904>] (__device_attach+0xb4/0x104)
[<c01df904>] (__device_attach) from [<c01de1d4>] (bus_probe_device+0x8c/0x94)
[<c01de1d4>] (bus_probe_device) from [<c01db5e4>] (device_add+0x3d0/0x59c)
[<c01db5e4>] (device_add) from [<c01e16d8>] (platform_device_add+0x100/0x20c)
[<c01e16d8>] (platform_device_add) from [<c03f50b0>] (ep93xx_init_devices+0x16c/0x20c)
[<c03f50b0>] (ep93xx_init_devices) from [<c03f53a0>] (edb93xx_init_machine+0xc/0x84)
[<c03f53a0>] (edb93xx_init_machine) from [<c03f1984>] (customize_machine+0x20/0x38)
[<c03f1984>] (customize_machine) from [<c03f0e54>] (do_one_initcall+0x78/0x1a0)
[<c03f0e54>] (do_one_initcall) from [<c03f1080>] (kernel_init_freeable+0x104/0x1b8)
[<c03f1080>] (kernel_init_freeable) from [<c034c358>] (kernel_init+0x8/0xf8)
[<c034c358>] (kernel_init) from [<c00090d0>] (ret_from_fork+0x14/0x24)
Exception stack(0xc4433fb0 to 0xc4433ff8)
3fa0: 00000000 00000000 00000000 00000000
3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
---[ end trace 8f9e35e2d6224882 ]---
2. Broken sound (I2S), this looks like below in the log:
ep93xx-i2s ep93xx-i2s: Missing dma channel for stream: 0
CS4271: ASoC: pcm constructor failed: -22
edb93xx-audio edb93xx-audio: ASoC: can't create pcm CS4271 HiFi :-22
And /proc/interrupts has two entries less. Without patch:
# cat /proc/interrupts
CPU0
7: 0 VIC 7 Edge i2s-pcm-out
8: 0 VIC 8 Edge i2s-pcm-in
39: 2 VIC 7 Edge eth0
51: 7532 VIC 19 Edge ep93xx timer
52: 144 VIC 20 Edge uart-pl010
53: 4 VIC 21 Edge ep93xx-spi
60: 0 VIC 28 Edge ep93xx-i2s
Err: 0
With patch:
# cat /proc/interrupts
CPU0
39: 146 VIC 7 Edge eth0
51: 162161 VIC 19 Edge ep93xx timer
52: 139 VIC 20 Edge uart-pl010
53: 4 VIC 21 Edge ep93xx-spi
60: 0 VIC 28 Edge ep93xx-i2s
Err: 0
I will try to look into I2S problem...
> ---
> It's been a while since I did this, no idea what else is needed
> here or if this is correct at all.
>
> Cc: Hartley Sweeten <hsweeten@visionengravers.com>
> Cc: Alexander Sverdlin <alexander.sverdlin@gmail.com>
> Cc: Hubert Feurstein <hubert.feurstein@contec.at>
> Cc: Lukasz Majewski <lukma@denx.de>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/arm/Kconfig | 2 ++
> arch/arm/mach-ep93xx/adssphere.c | 1 +
> arch/arm/mach-ep93xx/edb93xx.c | 8 ++++++++
> arch/arm/mach-ep93xx/gesbc9312.c | 1 +
> arch/arm/mach-ep93xx/{include/mach => }/irqs.h | 7 -------
> arch/arm/mach-ep93xx/micro9.c | 4 ++++
> arch/arm/mach-ep93xx/simone.c | 1 +
> arch/arm/mach-ep93xx/snappercl15.c | 1 +
> arch/arm/mach-ep93xx/soc.h | 1 +
> arch/arm/mach-ep93xx/ts72xx.c | 3 ++-
> arch/arm/mach-ep93xx/vision_ep9307.c | 1 +
> 11 files changed, 22 insertions(+), 8 deletions(-)
> rename arch/arm/mach-ep93xx/{include/mach => }/irqs.h (94%)
--
Alexander Sverdlin.
next prev parent reply other threads:[~2019-10-19 16:42 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-18 16:29 [PATCH 1/6] ARM: versatile: move integrator/realview/vexpress to versatile Arnd Bergmann
2019-10-18 16:29 ` Arnd Bergmann
2019-10-18 16:29 ` [PATCH 2/6] ARM: ep93xx: enable SPARSE_IRQ Arnd Bergmann
2019-10-18 16:29 ` Arnd Bergmann
2019-10-19 16:42 ` Alexander Sverdlin [this message]
2019-10-19 16:42 ` Alexander Sverdlin
2019-10-19 20:08 ` Arnd Bergmann
2019-10-19 20:08 ` Arnd Bergmann
2019-10-19 20:24 ` Alexander Sverdlin
2019-10-19 20:24 ` Alexander Sverdlin
2019-10-19 20:44 ` Arnd Bergmann
2019-10-19 20:44 ` Arnd Bergmann
2019-10-19 21:14 ` Alexander Sverdlin
2019-10-19 21:14 ` Alexander Sverdlin
2019-10-20 11:49 ` Arnd Bergmann
2019-10-20 11:49 ` Arnd Bergmann
2019-10-20 21:45 ` Alexander Sverdlin
2019-10-20 21:45 ` Alexander Sverdlin
2019-10-21 6:53 ` Arnd Bergmann
2019-10-21 6:53 ` Arnd Bergmann
2019-10-18 16:29 ` [PATCH 3/6] ARM: ep93xx: make mach/ep93xx-regs.h local Arnd Bergmann
2019-10-18 16:29 ` Arnd Bergmann
2019-10-18 16:29 ` [PATCH 4/6] ARM: dove: multiplatform support Arnd Bergmann
2019-10-18 16:29 ` Arnd Bergmann
2019-10-18 16:29 ` [PATCH 5/6] ARM: orion/mv78xx0/dove: move to a common directory Arnd Bergmann
2019-10-18 16:29 ` Arnd Bergmann
2019-10-18 16:29 ` [PATCH 6/6] ARM: orion: unify Makefile/Kconfig files Arnd Bergmann
2019-10-18 16:29 ` Arnd Bergmann
2019-10-18 19:01 ` Andrew Lunn
2019-10-18 19:01 ` Andrew Lunn
2019-10-18 19:18 ` Arnd Bergmann
2019-10-18 19:18 ` Arnd Bergmann
2019-11-04 14:57 ` [PATCH 1/6] ARM: versatile: move integrator/realview/vexpress to versatile Linus Walleij
2019-11-04 14:57 ` Linus Walleij
2019-11-04 15:13 ` Sudeep Holla
2019-11-04 15:13 ` Sudeep Holla
2019-11-04 15:25 ` Arnd Bergmann
2019-11-04 15:25 ` Arnd Bergmann
2019-11-05 16:57 ` Sudeep Holla
2019-11-05 16:57 ` Sudeep Holla
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=20191019184234.4cdb37a735fe632528880d76@gmail.com \
--to=alexander.sverdlin@gmail.com \
--cc=arnd@arndb.de \
--cc=hsweeten@visionengravers.com \
--cc=hubert.feurstein@contec.at \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukma@denx.de \
/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.