Re: [PATCH 00/14] Remove legacy sdma code for dt booting omaps
From: Peter Ujfalusi <hidden>
Date: 2019-12-17 09:53:59
Also in:
dmaengine, linux-devicetree, linux-omap
Hi Tony, On 17/12/2019 2.19, Tony Lindgren wrote:
Hi all, This series finally removes the legacy sdma code for omaps booting with devicetree. The legacy sdma code is still left for omap1, but makes further work a bit easier. We do the removal of legacy sdma code with the following steps: - Prepare for platform data removal by probing sdma with device tree data for the interconnect target module - Drop unused code and legacy interrupt code for omap2 and later - Update dmaengine driver to use device tree match data and add missing features - Allocate logical channels directly in the dmaengine driver - Drop legacy platform init and data
Thanks for doing this! First things first: Acked-by: Peter Ujfalusi <redacted> Tested-by: Peter Ujfalusi <redacted> But I was only able to test it with CPU_IDLE=n otherwise (even w/o this series) I got a flood of (PandaBoard-ES): [ 315.995819] ------------[ cut here ]------------ [ 316.000457] WARNING: CPU: 0 PID: 0 at drivers/bus/omap_l3_noc.c:141 l3_interrupt_handler+0x264/0x384 [ 316.009613] 44000000.ocp:L3 Standard Error: MASTER USBHOSTHS TARGET ABE (Read Link): At Address: 0x00000000 : Data Access in User mode during Functional access [ 316.023925] Modules linked in: [ 316.027008] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 5.5.0-rc1-00016-g239582d9ad0c #1078 [ 316.036590] Hardware name: Generic OMAP4 (Flattened Device Tree) [ 316.042633] [<c01105ac>] (unwind_backtrace) from [<c010b81c>] (show_stack+0x10/0x14) [ 316.050415] [<c010b81c>] (show_stack) from [<c092dbf4>] (dump_stack+0xc0/0xdc) [ 316.057678] [<c092dbf4>] (dump_stack) from [<c01366b0>] (__warn+0xa8/0xd4) [ 316.064575] [<c01366b0>] (__warn) from [<c0136770>] (warn_slowpath_fmt+0x94/0xbc) [ 316.072204] [<c0136770>] (warn_slowpath_fmt) from [<c04b27c4>] (l3_interrupt_handler+0x264/0x384) [ 316.081176] [<c04b27c4>] (l3_interrupt_handler) from [<c018b420>] (__handle_irq_event_percpu+0x3c/0x128) [ 316.090698] [<c018b420>] (__handle_irq_event_percpu) from [<c018b53c>] (handle_irq_event_percpu+0x30/0x84) [ 316.100433] [<c018b53c>] (handle_irq_event_percpu) from [<c018b5c8>] (handle_irq_event+0x38/0x5c) [ 316.109344] [<c018b5c8>] (handle_irq_event) from [<c018fdec>] (handle_fasteoi_irq+0xc8/0x180) [ 316.117889] [<c018fdec>] (handle_fasteoi_irq) from [<c018a674>] (generic_handle_irq+0x20/0x34) [ 316.127197] [<c018a674>] (generic_handle_irq) from [<c018ac44>] (__handle_domain_irq+0x64/0xdc) [ 316.135955] [<c018ac44>] (__handle_domain_irq) from [<c04b0c44>] (gic_handle_irq+0x40/0x84) [ 316.144317] [<c04b0c44>] (gic_handle_irq) from [<c0101aac>] (__irq_svc+0x6c/0xa8) [ 316.151855] Exception stack(0xc0f01e10 to 0xc0f01e58) [ 316.157348] 1e00: ffffabcf 2e645000 00000000 c0e64040 [ 316.166107] 1e20: 00000082 c0e63ffc c0f052c0 c0f00000 00000001 ee80c000 c0f052c0 c0fa19c4 [ 316.174316] 1e40: 00000000 c0f01e60 c013bc44 c0102278 60000153 ffffffff [ 316.181121] [<c0101aac>] (__irq_svc) from [<c0102278>] (__do_softirq+0x78/0x280) [ 316.188568] [<c0102278>] (__do_softirq) from [<c013bc44>] (irq_exit+0xa8/0xec) [ 316.195831] [<c013bc44>] (irq_exit) from [<c018ac4c>] (__handle_domain_irq+0x6c/0xdc) [ 316.203674] [<c018ac4c>] (__handle_domain_irq) from [<c04b0c44>] (gic_handle_irq+0x40/0x84) [ 316.213134] [<c04b0c44>] (gic_handle_irq) from [<c0101aac>] (__irq_svc+0x6c/0xa8) [ 316.221130] Exception stack(0xc0f01ee8 to 0xc0f01f30) [ 316.226196] 1ee0: 00000000 00000000 00010001 ffffffff eef01580 00000002 [ 316.234405] 1f00: ef4a8678 c0f0b750 c0f05124 eef0158c c0f05244 c0fa19c4 00000010 c0f01f38 [ 316.242645] 1f20: ef4a86e8 c0773734 60000153 ffffffff [ 316.247711] [<c0101aac>] (__irq_svc) from [<c0773734>] (cpuidle_enter_state_coupled+0x2e4/0x428) [ 316.256530] [<c0773734>] (cpuidle_enter_state_coupled) from [<c0770be8>] (cpuidle_enter+0x44/0x5c) [ 316.265533] [<c0770be8>] (cpuidle_enter) from [<c0163818>] (do_idle+0x1d8/0x2a4) [ 316.272949] [<c0163818>] (do_idle) from [<c0163bc0>] (cpu_startup_entry+0x18/0x20) [ 316.280578] [<c0163bc0>] (cpu_startup_entry) from [<c0e00d04>] (start_kernel+0x3d0/0x46c) [ 316.288787] ---[ end trace be4a25d25ab32771 ]--- - Péter
The patches are against v5.5-rc1, and need the following fixes:
2c81f0f6d3f5 ("bus: ti-sysc: Fix iterating over clocks")
e709ed70d122 ("bus: ti-sysc: Fix missing reset delay handling")
93c60483b5fe ("bus: ti-sysc: Fix missing force mstandby quirk handling")
90bdfa0b05e3 ("ARM: OMAP2+: Fix ti_sysc_find_one_clockdomain to check for to_clk_hw_omap")
To make testing easier, I've also pushed out a testing branch at [0][1].
Regards,
Tony
[0] git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git omap-for-v5.6/sdma-testing
[1] https://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git/log/?h=omap-for-v5.6/sdma-testing
Tony Lindgren (14):
ARM: dts: Add generic compatible for omap sdma instances
ARM: dts: Configure interconnect target module for omap2 sdma
ARM: dts: Configure interconnect target module for omap3 sdma
ARM: OMAP2+: Drop unused sdma functions
ARM: OMAP2+: Drop sdma interrupt handling for mach-omap2
ARM: OMAP2+: Configure sdma capabilities directly
ARM: OMAP2+: Configure dma_plat_info directly and drop dma_dev_attr
dmaengine: ti: omap-dma: Add device tree match data and use it for
cpu_pm
dmaengine: ti: omap-dma: Configure global priority register directly
dmaengine: ti: omap-dma: Pass sdma auxdata to driver and use it
dmaengine: ti: omap-dma: Allocate channels directly
dmaengine: ti: omap-dma: Use cpu notifier to block idle for omap2
ARM: OMAP2+: Drop legacy init for sdma
ARM: OMAP2+: Drop legacy platform data for sdma
arch/arm/boot/dts/dra7-l4.dtsi | 3 +-
arch/arm/boot/dts/omap2.dtsi | 43 +-
arch/arm/boot/dts/omap2430.dtsi | 4 +
arch/arm/boot/dts/omap3-n900.dts | 5 +
arch/arm/boot/dts/omap3.dtsi | 46 +-
arch/arm/boot/dts/omap36xx.dtsi | 4 +
arch/arm/boot/dts/omap4-l4.dtsi | 3 +-
arch/arm/boot/dts/omap5-l4.dtsi | 3 +-
arch/arm/mach-omap2/common.h | 3 +
arch/arm/mach-omap2/dma.c | 119 +----
arch/arm/mach-omap2/omap_device.c | 170 -------
arch/arm/mach-omap2/omap_device.h | 4 -
arch/arm/mach-omap2/omap_hwmod_2420_data.c | 34 --
arch/arm/mach-omap2/omap_hwmod_2430_data.c | 34 --
.../mach-omap2/omap_hwmod_2xxx_ipblock_data.c | 18 -
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 61 ---
arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 69 ---
arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 61 ---
arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 61 ---
arch/arm/mach-omap2/omap_hwmod_common_data.h | 1 -
arch/arm/mach-omap2/pdata-quirks.c | 1 +
arch/arm/mach-omap2/pm24xx.c | 22 +-
arch/arm/mach-omap2/pm34xx.c | 5 -
arch/arm/plat-omap/dma.c | 471 +-----------------
drivers/dma/ti/omap-dma.c | 288 ++++++++++-
include/linux/omap-dma.h | 18 -
26 files changed, 391 insertions(+), 1160 deletions(-)Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel