ARM: OMAP: DRA7: hwmod: Add data for McASP3
Subsystems (4)
PATCH 1/1 ARM: OMAP: DRA7: hwmod: Add data for McASP3
From: Peter Ujfalusi <[email protected]>
McASP3 is used by default on DRA7x based boards for audio.
This fixes following error with Beagle x15:
[ 0.402190] platform 48468000.mcasp: Cannot lookup hwmod 'mcasp3'
which is followed by a splat:
[ 11.207663] Unhandled fault: imprecise external abort (0x1406) at 0x00000000 [ 11.207670] ------------[ cut here ]------------ [ 11.207683] WARNING: CPU: 0 PID: 272 at /home/balbi/workspace/linux/drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x220/0x34c() [ 11.207688] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4_PER2_P3 (Read): Data Access in User mode during Functional access [ 11.207742] Modules linked in: snd_soc_simple_card(+) omapdss leds_gpio led_class gpio_fan extcon_usb_gpio cpufreq_dt omap_wdt phy_omap_usb2 snd_soc_davinci_mcasp snd_soc_edma snd_soc_omap snd_soc_tlv320aic3x rtc_omap snd_soc_core ti_soc_thermal dwc3_omap snd_pcm_dmaengine snd_pcm extcon_palmas snd_timer extcon snd rtc_palmas rtc_ds1307 tmp102 palmas_pwrbutton thermal_sys soundcore hwmon autofs4 [ 11.207748] CPU: 0 PID: 272 Comm: systemd-udevd Not tainted 4.3.0-11482-g3d26f1f5fc82-dirty #27 [ 11.207751] Hardware name: Generic DRA74X (Flattened Device Tree) [ 11.207765] [<c0017c3c>] (unwind_backtrace) from [<c0013f80>] (show_stack+0x10/0x14) [ 11.207772] [<c0013f80>] (show_stack) from [<c034d444>] (dump_stack+0x84/0x9c) [ 11.207783] [<c034d444>] (dump_stack) from [<c003cc24>] (warn_slowpath_common+0x78/0xb4) [ 11.207790] [<c003cc24>] (warn_slowpath_common) from [<c003cc90>] (warn_slowpath_fmt+0x30/0x40) [ 11.207798] [<c003cc90>] (warn_slowpath_fmt) from [<c0379ce0>] (l3_interrupt_handler+0x220/0x34c) [ 11.207805] [<c0379ce0>] (l3_interrupt_handler) from [<c009d9c0>] (handle_irq_event_percpu+0x44/0x1f0) [ 11.207811] [<c009d9c0>] (handle_irq_event_percpu) from [<c009dba4>] (handle_irq_event+0x38/0x5c) [ 11.207818] [<c009dba4>] (handle_irq_event) from [<c00a0d68>] (handle_fasteoi_irq+0xcc/0x1b0) [ 11.207824] [<c00a0d68>] (handle_fasteoi_irq) from [<c009d070>] (generic_handle_irq+0x20/0x34) [ 11.207829] [<c009d070>] (generic_handle_irq) from [<c009d350>] (__handle_domain_irq+0x64/0xe0) [ 11.207835] [<c009d350>] (__handle_domain_irq) from [<c0009520>] (gic_handle_irq+0x40/0x8c) [ 11.207842] [<c0009520>] (gic_handle_irq) from [<c06521b4>] (__irq_usr+0x54/0x80) [ 11.207846] Exception stack(0xed143fb0 to 0xed143ff8) [ 11.207851] 3fa0: 7f69b370 7f69b368 00000370 00000000 [ 11.207857] 3fc0: b6ddb4e0 7f69b370 00000016 7f69b308 be8db278 be8db2a0 7f68b024 00000001 [ 11.207863] 3fe0: b6ddb4e0 be8db180 b6d46a47 b6d46a50 60000030 ffffffff [ 11.207866] ---[ end trace 7d8de48d1bc8fbac ]---
--- arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 41 +++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)
arch/arm/mach-omap2/omap_hwmod_7xx_data.c +41 -0
@@ -1298,6 +1298,38 @@ static struct omap_hwmod dra7xx_mcspi4_hwmod = { };/* +* 'mcasp' class +* +*/ +static struct omap_hwmod_class_sysconfig dra7xx_mcasp_sysc = { + .sysc_offs =0x0004 , + .sysc_flags =SYSC_HAS_SIDLEMODE , + .idlemodes = (SIDLE_FORCE |SIDLE_NO |SIDLE_SMART ), + .sysc_fields = &omap_hwmod_sysc_type3, +}; + +static struct omap_hwmod_class dra7xx_mcasp_hwmod_class = { + .name ="mcasp" , + .sysc = &dra7xx_mcasp_sysc, +}; + +/* mcasp3 */ +static struct omap_hwmod dra7xx_mcasp3_hwmod = { + .name ="mcasp3" , + .class = &dra7xx_mcasp_hwmod_class, + .clkdm_name ="l4per2_clkdm" , + .main_clk ="mcasp3_ahclkx_mux" , + .flags =HWMOD_SWSUP_SIDLE , + .prcm = { + .omap4 = { + .clkctrl_offs =DRA7XX_CM_L4PER2_MCASP3_CLKCTRL_OFFSET , + .context_offs =DRA7XX_RM_L4PER2_MCASP3_CONTEXT_OFFSET , + .modulemode =MODULEMODE_SWCTRL , + }, + }, +}; + +/* * 'mmc' class * */
@@ -2566,6 +2598,14 @@ static struct omap_hwmod_ocp_if dra7xx_l3_main_1__hdmi = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* l4_per2 -> mcasp3 */ +static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp3 = { + .master = &dra7xx_l4_per2_hwmod, + .slave = &dra7xx_mcasp3_hwmod, + .clk ="l3_iclk_div" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* l4_per1 -> elm */ static struct omap_hwmod_ocp_if dra7xx_l4_per1__elm = { .master = &dra7xx_l4_per1_hwmod,
@@ -3308,6 +3348,7 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { &dra7xx_l4_wkup__dcan1, &dra7xx_l4_per2__dcan2, &dra7xx_l4_per2__cpgmac0, + &dra7xx_l4_per2__mcasp3, &dra7xx_gmac__mdio, &dra7xx_l4_cfg__dma_system, &dra7xx_l3_main_1__dss,
Signature · 1 line
2.6.2
PATCH 1/1 ARM: OMAP: DRA7: hwmod: Add data for McASP3
Felipe,
Quoted 3 lines · Felipe Balbi
From: Peter Ujfalusi <[email protected]>
McASP3 is used by default on DRA7x based boards for audio.
While this patch works, it is not the correct one(s) to apply.
https://lkml.org/lkml/2015/10/30/91
is the series which should have been applied to 4.4.
Paul acked the series, but for some reason it missed the initial ARM pull for 4.4
Signature · 1 line
P?ter
Quoted 105 lines
This fixes following error with Beagle x15:
[ 0.402190] platform 48468000.mcasp: Cannot lookup hwmod 'mcasp3'which is followed by a splat:
[ 11.207663] Unhandled fault: imprecise external abort (0x1406) at 0x00000000 [ 11.207670] ------------[ cut here ]------------ [ 11.207683] WARNING: CPU: 0 PID: 272 at /home/balbi/workspace/linux/drivers/bus/omap_l3_noc.c:147 l3_interrupt_handler+0x220/0x34c() [ 11.207688] 44000000.ocp:L3 Custom Error: MASTER MPU TARGET L4_PER2_P3 (Read): Data Access in User mode during Functional access [ 11.207742] Modules linked in: snd_soc_simple_card(+) omapdss leds_gpio led_class gpio_fan extcon_usb_gpio cpufreq_dt omap_wdt phy_omap_usb2 snd_soc_davinci_mcasp snd_soc_edma snd_soc_omap snd_soc_tlv320aic3x rtc_omap snd_soc_core ti_soc_thermal dwc3_omap snd_pcm_dmaengine snd_pcm extcon_palmas snd_timer extcon snd rtc_palmas rtc_ds1307 tmp102 palmas_pwrbutton thermal_sys soundcore hwmon autofs4 [ 11.207748] CPU: 0 PID: 272 Comm: systemd-udevd Not tainted 4.3.0-11482-g3d26f1f5fc82-dirty #27 [ 11.207751] Hardware name: Generic DRA74X (Flattened Device Tree) [ 11.207765] [<c0017c3c>] (unwind_backtrace) from [<c0013f80>] (show_stack+0x10/0x14) [ 11.207772] [<c0013f80>] (show_stack) from [<c034d444>] (dump_stack+0x84/0x9c) [ 11.207783] [<c034d444>] (dump_stack) from [<c003cc24>] (warn_slowpath_common+0x78/0xb4) [ 11.207790] [<c003cc24>] (warn_slowpath_common) from [<c003cc90>] (warn_slowpath_fmt+0x30/0x40) [ 11.207798] [<c003cc90>] (warn_slowpath_fmt) from [<c0379ce0>] (l3_interrupt_handler+0x220/0x34c) [ 11.207805] [<c0379ce0>] (l3_interrupt_handler) from [<c009d9c0>] (handle_irq_event_percpu+0x44/0x1f0) [ 11.207811] [<c009d9c0>] (handle_irq_event_percpu) from [<c009dba4>] (handle_irq_event+0x38/0x5c) [ 11.207818] [<c009dba4>] (handle_irq_event) from [<c00a0d68>] (handle_fasteoi_irq+0xcc/0x1b0) [ 11.207824] [<c00a0d68>] (handle_fasteoi_irq) from [<c009d070>] (generic_handle_irq+0x20/0x34) [ 11.207829] [<c009d070>] (generic_handle_irq) from [<c009d350>] (__handle_domain_irq+0x64/0xe0) [ 11.207835] [<c009d350>] (__handle_domain_irq) from [<c0009520>] (gic_handle_irq+0x40/0x8c) [ 11.207842] [<c0009520>] (gic_handle_irq) from [<c06521b4>] (__irq_usr+0x54/0x80) [ 11.207846] Exception stack(0xed143fb0 to 0xed143ff8) [ 11.207851] 3fa0: 7f69b370 7f69b368 00000370 00000000 [ 11.207857] 3fc0: b6ddb4e0 7f69b370 00000016 7f69b308 be8db278 be8db2a0 7f68b024 00000001 [ 11.207863] 3fe0: b6ddb4e0 be8db180 b6d46a47 b6d46a50 60000030 ffffffff [ 11.207866] ---[ end trace 7d8de48d1bc8fbac ]---Signed-off-by Peter Ujfalusi <[email protected]>Signed-off-by Felipe Balbi <[email protected]>--- arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 41 +++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+)arch/arm/mach-omap2/omap_hwmod_7xx_data.c +41
-0@@ -1298,6 +1298,38 @@ static struct omap_hwmod dra7xx_mcspi4_hwmod = { };/* +* 'mcasp' class +* +*/ +static struct omap_hwmod_class_sysconfig dra7xx_mcasp_sysc = { + .sysc_offs =0x0004 , + .sysc_flags =SYSC_HAS_SIDLEMODE , + .idlemodes = (SIDLE_FORCE |SIDLE_NO |SIDLE_SMART ), + .sysc_fields = &omap_hwmod_sysc_type3, +}; + +static struct omap_hwmod_class dra7xx_mcasp_hwmod_class = { + .name ="mcasp" , + .sysc = &dra7xx_mcasp_sysc, +}; + +/* mcasp3 */ +static struct omap_hwmod dra7xx_mcasp3_hwmod = { + .name ="mcasp3" , + .class = &dra7xx_mcasp_hwmod_class, + .clkdm_name ="l4per2_clkdm" , + .main_clk ="mcasp3_ahclkx_mux" , + .flags =HWMOD_SWSUP_SIDLE , + .prcm = { + .omap4 = { + .clkctrl_offs =DRA7XX_CM_L4PER2_MCASP3_CLKCTRL_OFFSET , + .context_offs =DRA7XX_RM_L4PER2_MCASP3_CONTEXT_OFFSET , + .modulemode =MODULEMODE_SWCTRL , + }, + }, +}; + +/* * 'mmc' class * */ @@ -2566,6 +2598,14 @@ static struct omap_hwmod_ocp_if dra7xx_l3_main_1__hdmi = { .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* l4_per2 -> mcasp3 */ +static struct omap_hwmod_ocp_if dra7xx_l4_per2__mcasp3 = { + .master = &dra7xx_l4_per2_hwmod, + .slave = &dra7xx_mcasp3_hwmod, + .clk ="l3_iclk_div" , + .user =OCP_USER_MPU |OCP_USER_SDMA , +}; +/* l4_per1 -> elm */ static struct omap_hwmod_ocp_if dra7xx_l4_per1__elm = { .master = &dra7xx_l4_per1_hwmod,@@ -3308,6 +3348,7 @@ static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = { &dra7xx_l4_wkup__dcan1, &dra7xx_l4_per2__dcan2, &dra7xx_l4_per2__cpgmac0, + &dra7xx_l4_per2__mcasp3, &dra7xx_gmac__mdio, &dra7xx_l4_cfg__dma_system, &dra7xx_l3_main_1__dss,
PATCH 1/1 ARM: OMAP: DRA7: hwmod: Add data for McASP3
Hi,
Quoted 5 lines · Peter Ujfalusi
Felipe,
Quoted 2 lines · Felipe Balbi
From: Peter Ujfalusi <[email protected]>
Quoted 8 lines
Quoted 1 line
McASP3 is used by default on DRA7x based boards for audio.
While this patch works, it is not the correct one(s) to apply.
https://lkml.org/lkml/2015/10/30/91
is the series which should have been applied to 4.4.Paul acked the series, but for some reason it missed the initial ARM pull for 4.4
okay, cool. Hopefully Tony will apply shortly.
Signature · 8 lines
balbi -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 818 bytes Desc: not available URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20151111/c3d2dbf7/attachment.sig>
Paul Walmsley
maintainerPATCH 1/1 ARM: OMAP: DRA7: hwmod: Add data for McASP3
In reply to Peter UjfalusiQuoted 9 lines · Peter Ujfalusi
Quoted 3 lines · Felipe Balbi
From: Peter Ujfalusi <[email protected]>
McASP3 is used by default on DRA7x based boards for audio.
While this patch works, it is not the correct one(s) to apply.
https://lkml.org/lkml/2015/10/30/91
is the series which should have been applied to 4.4.
Paul acked the series, but for some reason it missed the initial ARM pull for 4.4
It missed it because I was late getting my patches out for 4.4...
- Paul
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP: DRA7: hwmod: Add data for McASP3
Quoted 5 lines · Paul Walmsley
Quoted 3 lines · Peter Ujfalusi
Quoted 2 lines · Felipe Balbi
From: Peter Ujfalusi <[email protected]>
Quoted 8 lines
Quoted 6 lines
Quoted 1 line
McASP3 is used by default on DRA7x based boards for audio.
While this patch works, it is not the correct one(s) to apply.
https://lkml.org/lkml/2015/10/30/91
is the series which should have been applied to 4.4.
Paul acked the series, but for some reason it missed the initial ARM pull for 4.4It missed it because I was late getting my patches out for 4.4...
OK applying all three as fixes with your ack like you requested in the original thread.
Tony
Tony Lindgren
maintainerPATCH 1/1 ARM: OMAP: DRA7: hwmod: Add data for McASP3
Quoted 13 lines · Tony Lindgren
Quoted 12 lines · Paul Walmsley
Quoted 9 lines · Peter Ujfalusi
Quoted 3 lines · Felipe Balbi
From: Peter Ujfalusi <[email protected]>
McASP3 is used by default on DRA7x based boards for audio.
While this patch works, it is not the correct one(s) to apply.
https://lkml.org/lkml/2015/10/30/91
is the series which should have been applied to 4.4.
Paul acked the series, but for some reason it missed the initial ARM pull for 4.4
Quoted 4 lines
Quoted 1 line
It missed it because I was late getting my patches out for 4.4...
OK applying all three as fixes with your ack like you requested in the original thread.
Except one of them no longer applies cleanly against the current mainline. So waiting until Peter rebases until applying anything.
Regards,
Tony