From: Marc Kleine-Budde <mkl@pengutronix.de> Date: 2015-05-15 12:31:45
On 05/15/2015 02:15 PM, Mirza Krak wrote:
Hi.
I am running a 4.0.2 kernel on a Colibri VF61 SOM.
I wanted to test the "suspend to RAM" functionality when I got
following error during suspend:
root@mx4-v61-1000000:~# echo standby > /sys/power/state
[ 40.390281] PM: Syncing filesystems ... done.
[ 40.407716] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 40.416040] Freezing remaining freezable tasks ... (elapsed 0.001
seconds) done.
[ 40.429099] mx4_io_spi spi1.0: Entering suspend state.
[ 40.434692] mx4_io_spi spi1.0: Suspend succeeded after 0 retries
[ 40.441408] Unhandled fault: external abort on non-linefetch
(0x1008) at 0x909a0000
[ 40.449100] pgd = 8e200000
[ 40.451825] [909a0000] *pgd=8e805811, *pte=400d4653, *ppte=400d4453
[ 40.458173] Internal error: : 1008 [#1] ARM
[ 40.462373] Modules linked in: mx4_pic(O)
[ 40.466445] CPU: 0 PID: 278 Comm: sh Tainted: G O
4.0.2-01554-g73efc16 #30
[ 40.474473] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
[ 40.480945] task: 8d832640 ti: 8e076000 task.ti: 8e076000
[ 40.486383] PC is at flexcan_chip_disable+0x10/0xa8
[ 40.491288] LR is at flexcan_suspend+0x18/0x88
[ 40.495757] pc : [<802f4648>] lr : [<802f4750>] psr: a00f0013
[ 40.495757] sp : 8e077d60 ip : 8e077d80 fp : 8e077d7c
[ 40.507279] r10: 8061d86c r9 : 00000000 r8 : 8e8b6a44
[ 40.512530] r7 : 00000002 r6 : 8065dfe4 r5 : 8029c0dc r4 : 909a0000
[ 40.519086] r3 : 802f4738 r2 : 80498c04 r1 : 8e8b6a10 r0 : 8e943ca0
[ 40.525641] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 40.532800] Control: 10c5387d Table: 8e200059 DAC: 00000015
[ 40.538567] Process sh (pid: 278, stack limit = 0x8e076208)
[ 40.544164] Stack: (0x8e077d60 to 0x8e078000)
[ 40.548556] 7d60: 802f4738 8e943800 8029c0dc 8065dfe4 8e077d94
8e077d80 802f4750 802f4644
[ 40.556774] 7d80: 8e8b6a10 8029c0dc 8e077da4 8e077d98 8029c110
802f4744 8e077dc4 8e077da8
[ 40.565025] 7da0: 802a3ae0 8029c0e8 8046c3b0 8046af84 8e8b6a10
00000000 8e077dfc 8e077dc8
[ 40.573294] 7dc0: 802a450c 802a3ac8 69e37ae7 00000009 8046afbc
0046af04 8e8b6a68 8e8b6a10
[ 40.581564] 7de0: 8062907c 8065dfe4 806290a8 8061d86c 8e077e44
8e077e00 802a5718 802a43f4
[ 40.589834] 7e00: 68f6c591 00000009 802a5ac8 00000002 68f6c591
00000009 00000000 00000002
[ 40.598096] 7e20: 80640f30 00000002 00000007 8e24ad00 00000000
00000008 8e077e5c 8e077e48
[ 40.606358] 7e40: 802a5b90 802a56c8 00000000 80640f30 8e077ea4
8e077e60 800449f4 802a5b3c
[ 40.614628] 7e60: 80467b04 80047eec 00000002 8e077e84 8e077ea4
8e077e90 80044734 00000000
[ 40.622890] 7e80: 00000002 80640f3c 00000007 8e24ad00 00000000
00000008 8e077ebc 8e077ea8
[ 40.631152] 7ea0: 80044e88 80044974 00000002 80569a2c 8e077ee4
8e077ec0 80043adc 80044d24
[ 40.639423] 7ec0: 8e834b90 8e24ad00 00000008 8e077f78 00000000
8e24a040 8e077ef4 8e077ee8
[ 40.647693] 7ee0: 8023a520 80043a74 8e077f0c 8e077ef8 80113d9c
8023a510 8e24ad00 8e24a04c
[ 40.655963] 7f00: 8e077f44 8e077f10 801133f4 80113d5c 00000000
00000000 00000000 8e0ef9c0
[ 40.664234] 7f20: 00000008 00e41408 8e077f78 00000008 8e076000
00e41408 8e077f74 8e077f48
[ 40.672505] 7f40: 800b807c 80113340 800d0174 800d00f4 00000000
00000000 8e0ef9c0 8e0ef9c0
[ 40.680775] 7f60: 00000008 00e41408 8e077fa4 8e077f78 800b83b4
800b7fe0 00000000 00000000
[ 40.689045] 7f80: 00000008 00e41408 76ef0a78 00000004 8000ea44
00000000 00000000 8e077fa8
[ 40.697316] 7fa0: 8000e8a0 800b837c 00000008 00e41408 00000001
00e41408 00000008 00000000
[ 40.705586] 7fc0: 00000008 00e41408 76ef0a78 00000004 00000008
00000008 00e41408 00000000
[ 40.713848] 7fe0: 00000000 7ef52984 76e2e9a0 76e80a5c 600f0010
00000001 02131c06 1b18018f
[ 40.722103] Backtrace:
[ 40.724612] [<802f4638>] (flexcan_chip_disable) from [<802f4750>]
(flexcan_suspend+0x18/0x88)
[ 40.733216] r6:8065dfe4 r5:8029c0dc r4:8e943800 r3:802f4738
[ 40.739002] [<802f4738>] (flexcan_suspend) from [<8029c110>]
(platform_pm_suspend+0x34/0x5c)
[ 40.747517] r5:8029c0dc r4:8e8b6a10
[ 40.751192] [<8029c0dc>] (platform_pm_suspend) from [<802a3ae0>]
(dpm_run_callback.isra.10+0x24/0x50)
[ 40.760513] [<802a3abc>] (dpm_run_callback.isra.10) from
[<802a450c>] (__device_suspend+0x124/0x2c4)
[ 40.769726] r5:00000000 r4:8e8b6a10
[ 40.773392] [<802a43e8>] (__device_suspend) from [<802a5718>]
(dpm_suspend+0x5c/0x218)
[ 40.781387] r10:8061d86c r8:806290a8 r7:8065dfe4 r6:8062907c
r5:8e8b6a10 r4:8e8b6a68
[ 40.789387] [<802a56bc>] (dpm_suspend) from [<802a5b90>]
(dpm_suspend_start+0x60/0x68)
[ 40.797381] r10:00000008 r9:00000000 r8:8e24ad00 r7:00000007
r6:00000002 r5:80640f30
[ 40.805363] r4:00000002
[ 40.807958] [<802a5b30>] (dpm_suspend_start) from [<800449f4>]
(suspend_devices_and_enter+0x8c/0x3b0)
[ 40.817258] r5:80640f30 r4:00000000
[ 40.820918] [<80044968>] (suspend_devices_and_enter) from
[<80044e88>] (pm_suspend+0x170/0x210)
[ 40.829692] r10:00000008 r9:00000000 r8:8e24ad00 r7:00000007
r6:80640f3c r5:00000002
[ 40.837672] r4:00000000
[ 40.840272] [<80044d18>] (pm_suspend) from [<80043adc>]
(state_store+0x74/0xc4)
[ 40.847653] r5:80569a2c r4:00000002
[ 40.851321] [<80043a68>] (state_store) from [<8023a520>]
(kobj_attr_store+0x1c/0x28)
[ 40.859136] r10:8e24a040 r8:00000000 r7:8e077f78 r6:00000008
r5:8e24ad00 r4:8e834b90
[ 40.867146] [<8023a504>] (kobj_attr_store) from [<80113d9c>]
(sysfs_kf_write+0x4c/0x50)
[ 40.875245] [<80113d50>] (sysfs_kf_write) from [<801133f4>]
(kernfs_fop_write+0xc0/0x19c)
[ 40.883497] r5:8e24a04c r4:8e24ad00
[ 40.887166] [<80113334>] (kernfs_fop_write) from [<800b807c>]
(vfs_write+0xa8/0x1b0)
[ 40.894986] r10:00e41408 r9:8e076000 r8:00000008 r7:8e077f78
r6:00e41408 r5:00000008
[ 40.902969] r4:8e0ef9c0
[ 40.905558] [<800b7fd4>] (vfs_write) from [<800b83b4>] (SyS_write+0x44/0x90)
[ 40.912654] r10:00e41408 r8:00000008 r7:8e0ef9c0 r6:8e0ef9c0
r5:00000000 r4:00000000
[ 40.920652] [<800b8370>] (SyS_write) from [<8000e8a0>]
(ret_fast_syscall+0x0/0x34)
[ 40.928293] r10:00000000 r8:8000ea44 r7:00000004 r6:76ef0a78
r5:00e41408 r4:00000008
[ 40.936280] Code: e1a0c00d e92dd878 e24cb004 e5904120 (e5945000)
[ 40.942427] ---[ end trace a4e15b05423e6882 ]---
I suspected that the clocks are disabled when flexcan_suspend is
called. When I explicitly enabled the clocks in flexcan_suspend it
worked fine.
Before sending a patch I wanted to check for your thoughts?
Sounds reasonable. I think we have to convert the flexcan driver to
proper runtime_pm.
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
From: Stefan Agner <stefan@agner.ch> Date: 2015-05-15 13:01:54
On 2015-05-15 14:31, Marc Kleine-Budde wrote:
On 05/15/2015 02:15 PM, Mirza Krak wrote:
quoted
Hi.
I am running a 4.0.2 kernel on a Colibri VF61 SOM.
I wanted to test the "suspend to RAM" functionality when I got
following error during suspend:
root@mx4-v61-1000000:~# echo standby > /sys/power/state
[ 40.390281] PM: Syncing filesystems ... done.
[ 40.407716] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 40.416040] Freezing remaining freezable tasks ... (elapsed 0.001
seconds) done.
[ 40.429099] mx4_io_spi spi1.0: Entering suspend state.
[ 40.434692] mx4_io_spi spi1.0: Suspend succeeded after 0 retries
[ 40.441408] Unhandled fault: external abort on non-linefetch
(0x1008) at 0x909a0000
[ 40.449100] pgd = 8e200000
[ 40.451825] [909a0000] *pgd=8e805811, *pte=400d4653, *ppte=400d4453
[ 40.458173] Internal error: : 1008 [#1] ARM
[ 40.462373] Modules linked in: mx4_pic(O)
[ 40.466445] CPU: 0 PID: 278 Comm: sh Tainted: G O
4.0.2-01554-g73efc16 #30
[ 40.474473] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
[ 40.480945] task: 8d832640 ti: 8e076000 task.ti: 8e076000
[ 40.486383] PC is at flexcan_chip_disable+0x10/0xa8
[ 40.491288] LR is at flexcan_suspend+0x18/0x88
[ 40.495757] pc : [<802f4648>] lr : [<802f4750>] psr: a00f0013
[ 40.495757] sp : 8e077d60 ip : 8e077d80 fp : 8e077d7c
[ 40.507279] r10: 8061d86c r9 : 00000000 r8 : 8e8b6a44
[ 40.512530] r7 : 00000002 r6 : 8065dfe4 r5 : 8029c0dc r4 : 909a0000
[ 40.519086] r3 : 802f4738 r2 : 80498c04 r1 : 8e8b6a10 r0 : 8e943ca0
[ 40.525641] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 40.532800] Control: 10c5387d Table: 8e200059 DAC: 00000015
[ 40.538567] Process sh (pid: 278, stack limit = 0x8e076208)
[ 40.544164] Stack: (0x8e077d60 to 0x8e078000)
[ 40.548556] 7d60: 802f4738 8e943800 8029c0dc 8065dfe4 8e077d94
8e077d80 802f4750 802f4644
[ 40.556774] 7d80: 8e8b6a10 8029c0dc 8e077da4 8e077d98 8029c110
802f4744 8e077dc4 8e077da8
[ 40.565025] 7da0: 802a3ae0 8029c0e8 8046c3b0 8046af84 8e8b6a10
00000000 8e077dfc 8e077dc8
[ 40.573294] 7dc0: 802a450c 802a3ac8 69e37ae7 00000009 8046afbc
0046af04 8e8b6a68 8e8b6a10
[ 40.581564] 7de0: 8062907c 8065dfe4 806290a8 8061d86c 8e077e44
8e077e00 802a5718 802a43f4
[ 40.589834] 7e00: 68f6c591 00000009 802a5ac8 00000002 68f6c591
00000009 00000000 00000002
[ 40.598096] 7e20: 80640f30 00000002 00000007 8e24ad00 00000000
00000008 8e077e5c 8e077e48
[ 40.606358] 7e40: 802a5b90 802a56c8 00000000 80640f30 8e077ea4
8e077e60 800449f4 802a5b3c
[ 40.614628] 7e60: 80467b04 80047eec 00000002 8e077e84 8e077ea4
8e077e90 80044734 00000000
[ 40.622890] 7e80: 00000002 80640f3c 00000007 8e24ad00 00000000
00000008 8e077ebc 8e077ea8
[ 40.631152] 7ea0: 80044e88 80044974 00000002 80569a2c 8e077ee4
8e077ec0 80043adc 80044d24
[ 40.639423] 7ec0: 8e834b90 8e24ad00 00000008 8e077f78 00000000
8e24a040 8e077ef4 8e077ee8
[ 40.647693] 7ee0: 8023a520 80043a74 8e077f0c 8e077ef8 80113d9c
8023a510 8e24ad00 8e24a04c
[ 40.655963] 7f00: 8e077f44 8e077f10 801133f4 80113d5c 00000000
00000000 00000000 8e0ef9c0
[ 40.664234] 7f20: 00000008 00e41408 8e077f78 00000008 8e076000
00e41408 8e077f74 8e077f48
[ 40.672505] 7f40: 800b807c 80113340 800d0174 800d00f4 00000000
00000000 8e0ef9c0 8e0ef9c0
[ 40.680775] 7f60: 00000008 00e41408 8e077fa4 8e077f78 800b83b4
800b7fe0 00000000 00000000
[ 40.689045] 7f80: 00000008 00e41408 76ef0a78 00000004 8000ea44
00000000 00000000 8e077fa8
[ 40.697316] 7fa0: 8000e8a0 800b837c 00000008 00e41408 00000001
00e41408 00000008 00000000
[ 40.705586] 7fc0: 00000008 00e41408 76ef0a78 00000004 00000008
00000008 00e41408 00000000
[ 40.713848] 7fe0: 00000000 7ef52984 76e2e9a0 76e80a5c 600f0010
00000001 02131c06 1b18018f
[ 40.722103] Backtrace:
[ 40.724612] [<802f4638>] (flexcan_chip_disable) from [<802f4750>]
(flexcan_suspend+0x18/0x88)
[ 40.733216] r6:8065dfe4 r5:8029c0dc r4:8e943800 r3:802f4738
[ 40.739002] [<802f4738>] (flexcan_suspend) from [<8029c110>]
(platform_pm_suspend+0x34/0x5c)
[ 40.747517] r5:8029c0dc r4:8e8b6a10
[ 40.751192] [<8029c0dc>] (platform_pm_suspend) from [<802a3ae0>]
(dpm_run_callback.isra.10+0x24/0x50)
[ 40.760513] [<802a3abc>] (dpm_run_callback.isra.10) from
[<802a450c>] (__device_suspend+0x124/0x2c4)
[ 40.769726] r5:00000000 r4:8e8b6a10
[ 40.773392] [<802a43e8>] (__device_suspend) from [<802a5718>]
(dpm_suspend+0x5c/0x218)
[ 40.781387] r10:8061d86c r8:806290a8 r7:8065dfe4 r6:8062907c
r5:8e8b6a10 r4:8e8b6a68
[ 40.789387] [<802a56bc>] (dpm_suspend) from [<802a5b90>]
(dpm_suspend_start+0x60/0x68)
[ 40.797381] r10:00000008 r9:00000000 r8:8e24ad00 r7:00000007
r6:00000002 r5:80640f30
[ 40.805363] r4:00000002
[ 40.807958] [<802a5b30>] (dpm_suspend_start) from [<800449f4>]
(suspend_devices_and_enter+0x8c/0x3b0)
[ 40.817258] r5:80640f30 r4:00000000
[ 40.820918] [<80044968>] (suspend_devices_and_enter) from
[<80044e88>] (pm_suspend+0x170/0x210)
[ 40.829692] r10:00000008 r9:00000000 r8:8e24ad00 r7:00000007
r6:80640f3c r5:00000002
[ 40.837672] r4:00000000
[ 40.840272] [<80044d18>] (pm_suspend) from [<80043adc>]
(state_store+0x74/0xc4)
[ 40.847653] r5:80569a2c r4:00000002
[ 40.851321] [<80043a68>] (state_store) from [<8023a520>]
(kobj_attr_store+0x1c/0x28)
[ 40.859136] r10:8e24a040 r8:00000000 r7:8e077f78 r6:00000008
r5:8e24ad00 r4:8e834b90
[ 40.867146] [<8023a504>] (kobj_attr_store) from [<80113d9c>]
(sysfs_kf_write+0x4c/0x50)
[ 40.875245] [<80113d50>] (sysfs_kf_write) from [<801133f4>]
(kernfs_fop_write+0xc0/0x19c)
[ 40.883497] r5:8e24a04c r4:8e24ad00
[ 40.887166] [<80113334>] (kernfs_fop_write) from [<800b807c>]
(vfs_write+0xa8/0x1b0)
[ 40.894986] r10:00e41408 r9:8e076000 r8:00000008 r7:8e077f78
r6:00e41408 r5:00000008
[ 40.902969] r4:8e0ef9c0
[ 40.905558] [<800b7fd4>] (vfs_write) from [<800b83b4>] (SyS_write+0x44/0x90)
[ 40.912654] r10:00e41408 r8:00000008 r7:8e0ef9c0 r6:8e0ef9c0
r5:00000000 r4:00000000
[ 40.920652] [<800b8370>] (SyS_write) from [<8000e8a0>]
(ret_fast_syscall+0x0/0x34)
[ 40.928293] r10:00000000 r8:8000ea44 r7:00000004 r6:76ef0a78
r5:00e41408 r4:00000008
[ 40.936280] Code: e1a0c00d e92dd878 e24cb004 e5904120 (e5945000)
[ 40.942427] ---[ end trace a4e15b05423e6882 ]---
I suspected that the clocks are disabled when flexcan_suspend is
called. When I explicitly enabled the clocks in flexcan_suspend it
worked fine.
Before sending a patch I wanted to check for your thoughts?
Sounds reasonable. I think we have to convert the flexcan driver to
proper runtime_pm.
Hm, but we don't have runtime PM, so the question is why are they
actually disabled at that time? I guess its because the device has not
been opened or has already been closed at that point, in any case,
afaik, flexcan_chip_disable should not be required. Not sure how to
detect whether the chip is opened or not, but maybe just move the
flexcan_chip_disable within the netif_running if block?
--
Stefan
From: Marc Kleine-Budde <mkl@pengutronix.de> Date: 2015-05-15 13:16:02
On 05/15/2015 03:00 PM, Stefan Agner wrote:
On 2015-05-15 14:31, Marc Kleine-Budde wrote:
quoted
On 05/15/2015 02:15 PM, Mirza Krak wrote:
quoted
Hi.
I am running a 4.0.2 kernel on a Colibri VF61 SOM.
I wanted to test the "suspend to RAM" functionality when I got
following error during suspend:
root@mx4-v61-1000000:~# echo standby > /sys/power/state
[ 40.390281] PM: Syncing filesystems ... done.
[ 40.407716] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 40.416040] Freezing remaining freezable tasks ... (elapsed 0.001
seconds) done.
[ 40.429099] mx4_io_spi spi1.0: Entering suspend state.
[ 40.434692] mx4_io_spi spi1.0: Suspend succeeded after 0 retries
[ 40.441408] Unhandled fault: external abort on non-linefetch
(0x1008) at 0x909a0000
[ 40.449100] pgd = 8e200000
[ 40.451825] [909a0000] *pgd=8e805811, *pte=400d4653, *ppte=400d4453
[ 40.458173] Internal error: : 1008 [#1] ARM
[ 40.462373] Modules linked in: mx4_pic(O)
[ 40.466445] CPU: 0 PID: 278 Comm: sh Tainted: G O
4.0.2-01554-g73efc16 #30
[ 40.474473] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
[ 40.480945] task: 8d832640 ti: 8e076000 task.ti: 8e076000
[ 40.486383] PC is at flexcan_chip_disable+0x10/0xa8
[ 40.491288] LR is at flexcan_suspend+0x18/0x88
[ 40.495757] pc : [<802f4648>] lr : [<802f4750>] psr: a00f0013
[ 40.495757] sp : 8e077d60 ip : 8e077d80 fp : 8e077d7c
[ 40.507279] r10: 8061d86c r9 : 00000000 r8 : 8e8b6a44
[ 40.512530] r7 : 00000002 r6 : 8065dfe4 r5 : 8029c0dc r4 : 909a0000
[ 40.519086] r3 : 802f4738 r2 : 80498c04 r1 : 8e8b6a10 r0 : 8e943ca0
[ 40.525641] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 40.532800] Control: 10c5387d Table: 8e200059 DAC: 00000015
[ 40.538567] Process sh (pid: 278, stack limit = 0x8e076208)
[ 40.544164] Stack: (0x8e077d60 to 0x8e078000)
[ 40.548556] 7d60: 802f4738 8e943800 8029c0dc 8065dfe4 8e077d94
8e077d80 802f4750 802f4644
[ 40.556774] 7d80: 8e8b6a10 8029c0dc 8e077da4 8e077d98 8029c110
802f4744 8e077dc4 8e077da8
[ 40.565025] 7da0: 802a3ae0 8029c0e8 8046c3b0 8046af84 8e8b6a10
00000000 8e077dfc 8e077dc8
[ 40.573294] 7dc0: 802a450c 802a3ac8 69e37ae7 00000009 8046afbc
0046af04 8e8b6a68 8e8b6a10
[ 40.581564] 7de0: 8062907c 8065dfe4 806290a8 8061d86c 8e077e44
8e077e00 802a5718 802a43f4
[ 40.589834] 7e00: 68f6c591 00000009 802a5ac8 00000002 68f6c591
00000009 00000000 00000002
[ 40.598096] 7e20: 80640f30 00000002 00000007 8e24ad00 00000000
00000008 8e077e5c 8e077e48
[ 40.606358] 7e40: 802a5b90 802a56c8 00000000 80640f30 8e077ea4
8e077e60 800449f4 802a5b3c
[ 40.614628] 7e60: 80467b04 80047eec 00000002 8e077e84 8e077ea4
8e077e90 80044734 00000000
[ 40.622890] 7e80: 00000002 80640f3c 00000007 8e24ad00 00000000
00000008 8e077ebc 8e077ea8
[ 40.631152] 7ea0: 80044e88 80044974 00000002 80569a2c 8e077ee4
8e077ec0 80043adc 80044d24
[ 40.639423] 7ec0: 8e834b90 8e24ad00 00000008 8e077f78 00000000
8e24a040 8e077ef4 8e077ee8
[ 40.647693] 7ee0: 8023a520 80043a74 8e077f0c 8e077ef8 80113d9c
8023a510 8e24ad00 8e24a04c
[ 40.655963] 7f00: 8e077f44 8e077f10 801133f4 80113d5c 00000000
00000000 00000000 8e0ef9c0
[ 40.664234] 7f20: 00000008 00e41408 8e077f78 00000008 8e076000
00e41408 8e077f74 8e077f48
[ 40.672505] 7f40: 800b807c 80113340 800d0174 800d00f4 00000000
00000000 8e0ef9c0 8e0ef9c0
[ 40.680775] 7f60: 00000008 00e41408 8e077fa4 8e077f78 800b83b4
800b7fe0 00000000 00000000
[ 40.689045] 7f80: 00000008 00e41408 76ef0a78 00000004 8000ea44
00000000 00000000 8e077fa8
[ 40.697316] 7fa0: 8000e8a0 800b837c 00000008 00e41408 00000001
00e41408 00000008 00000000
[ 40.705586] 7fc0: 00000008 00e41408 76ef0a78 00000004 00000008
00000008 00e41408 00000000
[ 40.713848] 7fe0: 00000000 7ef52984 76e2e9a0 76e80a5c 600f0010
00000001 02131c06 1b18018f
[ 40.722103] Backtrace:
[ 40.724612] [<802f4638>] (flexcan_chip_disable) from [<802f4750>]
(flexcan_suspend+0x18/0x88)
[ 40.733216] r6:8065dfe4 r5:8029c0dc r4:8e943800 r3:802f4738
[ 40.739002] [<802f4738>] (flexcan_suspend) from [<8029c110>]
(platform_pm_suspend+0x34/0x5c)
[ 40.747517] r5:8029c0dc r4:8e8b6a10
[ 40.751192] [<8029c0dc>] (platform_pm_suspend) from [<802a3ae0>]
(dpm_run_callback.isra.10+0x24/0x50)
[ 40.760513] [<802a3abc>] (dpm_run_callback.isra.10) from
[<802a450c>] (__device_suspend+0x124/0x2c4)
[ 40.769726] r5:00000000 r4:8e8b6a10
[ 40.773392] [<802a43e8>] (__device_suspend) from [<802a5718>]
(dpm_suspend+0x5c/0x218)
[ 40.781387] r10:8061d86c r8:806290a8 r7:8065dfe4 r6:8062907c
r5:8e8b6a10 r4:8e8b6a68
[ 40.789387] [<802a56bc>] (dpm_suspend) from [<802a5b90>]
(dpm_suspend_start+0x60/0x68)
[ 40.797381] r10:00000008 r9:00000000 r8:8e24ad00 r7:00000007
r6:00000002 r5:80640f30
[ 40.805363] r4:00000002
[ 40.807958] [<802a5b30>] (dpm_suspend_start) from [<800449f4>]
(suspend_devices_and_enter+0x8c/0x3b0)
[ 40.817258] r5:80640f30 r4:00000000
[ 40.820918] [<80044968>] (suspend_devices_and_enter) from
[<80044e88>] (pm_suspend+0x170/0x210)
[ 40.829692] r10:00000008 r9:00000000 r8:8e24ad00 r7:00000007
r6:80640f3c r5:00000002
[ 40.837672] r4:00000000
[ 40.840272] [<80044d18>] (pm_suspend) from [<80043adc>]
(state_store+0x74/0xc4)
[ 40.847653] r5:80569a2c r4:00000002
[ 40.851321] [<80043a68>] (state_store) from [<8023a520>]
(kobj_attr_store+0x1c/0x28)
[ 40.859136] r10:8e24a040 r8:00000000 r7:8e077f78 r6:00000008
r5:8e24ad00 r4:8e834b90
[ 40.867146] [<8023a504>] (kobj_attr_store) from [<80113d9c>]
(sysfs_kf_write+0x4c/0x50)
[ 40.875245] [<80113d50>] (sysfs_kf_write) from [<801133f4>]
(kernfs_fop_write+0xc0/0x19c)
[ 40.883497] r5:8e24a04c r4:8e24ad00
[ 40.887166] [<80113334>] (kernfs_fop_write) from [<800b807c>]
(vfs_write+0xa8/0x1b0)
[ 40.894986] r10:00e41408 r9:8e076000 r8:00000008 r7:8e077f78
r6:00e41408 r5:00000008
[ 40.902969] r4:8e0ef9c0
[ 40.905558] [<800b7fd4>] (vfs_write) from [<800b83b4>] (SyS_write+0x44/0x90)
[ 40.912654] r10:00e41408 r8:00000008 r7:8e0ef9c0 r6:8e0ef9c0
r5:00000000 r4:00000000
[ 40.920652] [<800b8370>] (SyS_write) from [<8000e8a0>]
(ret_fast_syscall+0x0/0x34)
[ 40.928293] r10:00000000 r8:8000ea44 r7:00000004 r6:76ef0a78
r5:00e41408 r4:00000008
[ 40.936280] Code: e1a0c00d e92dd878 e24cb004 e5904120 (e5945000)
[ 40.942427] ---[ end trace a4e15b05423e6882 ]---
I suspected that the clocks are disabled when flexcan_suspend is
called. When I explicitly enabled the clocks in flexcan_suspend it
worked fine.
Before sending a patch I wanted to check for your thoughts?
Sounds reasonable. I think we have to convert the flexcan driver to
proper runtime_pm.
Hm, but we don't have runtime PM, so the question is why are they
This is why I asked to convert the driver to runtime_pm. There is the
same problem for the xilinx driver, see discussion on this list some
month ago.....the final xilinx patch was not sent, though.
actually disabled at that time? I guess its because the device has not
been opened or has already been closed at that point, in any case,
afaik, flexcan_chip_disable should not be required. Not sure how to
detect whether the chip is opened or not, but maybe just move the
flexcan_chip_disable within the netif_running if block?
Make use of runtime_pm, then you don't have to worry about
netif_runningm etc....
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
2015-05-15 15:15 GMT+02:00 Marc Kleine-Budde [off-list ref]:
On 05/15/2015 03:00 PM, Stefan Agner wrote:
quoted
On 2015-05-15 14:31, Marc Kleine-Budde wrote:
quoted
On 05/15/2015 02:15 PM, Mirza Krak wrote:
quoted
Hi.
I am running a 4.0.2 kernel on a Colibri VF61 SOM.
I wanted to test the "suspend to RAM" functionality when I got
following error during suspend:
root@mx4-v61-1000000:~# echo standby > /sys/power/state
[ 40.390281] PM: Syncing filesystems ... done.
[ 40.407716] Freezing user space processes ... (elapsed 0.001 seconds) done.
[ 40.416040] Freezing remaining freezable tasks ... (elapsed 0.001
seconds) done.
[ 40.429099] mx4_io_spi spi1.0: Entering suspend state.
[ 40.434692] mx4_io_spi spi1.0: Suspend succeeded after 0 retries
[ 40.441408] Unhandled fault: external abort on non-linefetch
(0x1008) at 0x909a0000
[ 40.449100] pgd = 8e200000
[ 40.451825] [909a0000] *pgd=8e805811, *pte=400d4653, *ppte=400d4453
[ 40.458173] Internal error: : 1008 [#1] ARM
[ 40.462373] Modules linked in: mx4_pic(O)
[ 40.466445] CPU: 0 PID: 278 Comm: sh Tainted: G O
4.0.2-01554-g73efc16 #30
[ 40.474473] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
[ 40.480945] task: 8d832640 ti: 8e076000 task.ti: 8e076000
[ 40.486383] PC is at flexcan_chip_disable+0x10/0xa8
[ 40.491288] LR is at flexcan_suspend+0x18/0x88
[ 40.495757] pc : [<802f4648>] lr : [<802f4750>] psr: a00f0013
[ 40.495757] sp : 8e077d60 ip : 8e077d80 fp : 8e077d7c
[ 40.507279] r10: 8061d86c r9 : 00000000 r8 : 8e8b6a44
[ 40.512530] r7 : 00000002 r6 : 8065dfe4 r5 : 8029c0dc r4 : 909a0000
[ 40.519086] r3 : 802f4738 r2 : 80498c04 r1 : 8e8b6a10 r0 : 8e943ca0
[ 40.525641] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
[ 40.532800] Control: 10c5387d Table: 8e200059 DAC: 00000015
[ 40.538567] Process sh (pid: 278, stack limit = 0x8e076208)
[ 40.544164] Stack: (0x8e077d60 to 0x8e078000)
[ 40.548556] 7d60: 802f4738 8e943800 8029c0dc 8065dfe4 8e077d94
8e077d80 802f4750 802f4644
[ 40.556774] 7d80: 8e8b6a10 8029c0dc 8e077da4 8e077d98 8029c110
802f4744 8e077dc4 8e077da8
[ 40.565025] 7da0: 802a3ae0 8029c0e8 8046c3b0 8046af84 8e8b6a10
00000000 8e077dfc 8e077dc8
[ 40.573294] 7dc0: 802a450c 802a3ac8 69e37ae7 00000009 8046afbc
0046af04 8e8b6a68 8e8b6a10
[ 40.581564] 7de0: 8062907c 8065dfe4 806290a8 8061d86c 8e077e44
8e077e00 802a5718 802a43f4
[ 40.589834] 7e00: 68f6c591 00000009 802a5ac8 00000002 68f6c591
00000009 00000000 00000002
[ 40.598096] 7e20: 80640f30 00000002 00000007 8e24ad00 00000000
00000008 8e077e5c 8e077e48
[ 40.606358] 7e40: 802a5b90 802a56c8 00000000 80640f30 8e077ea4
8e077e60 800449f4 802a5b3c
[ 40.614628] 7e60: 80467b04 80047eec 00000002 8e077e84 8e077ea4
8e077e90 80044734 00000000
[ 40.622890] 7e80: 00000002 80640f3c 00000007 8e24ad00 00000000
00000008 8e077ebc 8e077ea8
[ 40.631152] 7ea0: 80044e88 80044974 00000002 80569a2c 8e077ee4
8e077ec0 80043adc 80044d24
[ 40.639423] 7ec0: 8e834b90 8e24ad00 00000008 8e077f78 00000000
8e24a040 8e077ef4 8e077ee8
[ 40.647693] 7ee0: 8023a520 80043a74 8e077f0c 8e077ef8 80113d9c
8023a510 8e24ad00 8e24a04c
[ 40.655963] 7f00: 8e077f44 8e077f10 801133f4 80113d5c 00000000
00000000 00000000 8e0ef9c0
[ 40.664234] 7f20: 00000008 00e41408 8e077f78 00000008 8e076000
00e41408 8e077f74 8e077f48
[ 40.672505] 7f40: 800b807c 80113340 800d0174 800d00f4 00000000
00000000 8e0ef9c0 8e0ef9c0
[ 40.680775] 7f60: 00000008 00e41408 8e077fa4 8e077f78 800b83b4
800b7fe0 00000000 00000000
[ 40.689045] 7f80: 00000008 00e41408 76ef0a78 00000004 8000ea44
00000000 00000000 8e077fa8
[ 40.697316] 7fa0: 8000e8a0 800b837c 00000008 00e41408 00000001
00e41408 00000008 00000000
[ 40.705586] 7fc0: 00000008 00e41408 76ef0a78 00000004 00000008
00000008 00e41408 00000000
[ 40.713848] 7fe0: 00000000 7ef52984 76e2e9a0 76e80a5c 600f0010
00000001 02131c06 1b18018f
[ 40.722103] Backtrace:
[ 40.724612] [<802f4638>] (flexcan_chip_disable) from [<802f4750>]
(flexcan_suspend+0x18/0x88)
[ 40.733216] r6:8065dfe4 r5:8029c0dc r4:8e943800 r3:802f4738
[ 40.739002] [<802f4738>] (flexcan_suspend) from [<8029c110>]
(platform_pm_suspend+0x34/0x5c)
[ 40.747517] r5:8029c0dc r4:8e8b6a10
[ 40.751192] [<8029c0dc>] (platform_pm_suspend) from [<802a3ae0>]
(dpm_run_callback.isra.10+0x24/0x50)
[ 40.760513] [<802a3abc>] (dpm_run_callback.isra.10) from
[<802a450c>] (__device_suspend+0x124/0x2c4)
[ 40.769726] r5:00000000 r4:8e8b6a10
[ 40.773392] [<802a43e8>] (__device_suspend) from [<802a5718>]
(dpm_suspend+0x5c/0x218)
[ 40.781387] r10:8061d86c r8:806290a8 r7:8065dfe4 r6:8062907c
r5:8e8b6a10 r4:8e8b6a68
[ 40.789387] [<802a56bc>] (dpm_suspend) from [<802a5b90>]
(dpm_suspend_start+0x60/0x68)
[ 40.797381] r10:00000008 r9:00000000 r8:8e24ad00 r7:00000007
r6:00000002 r5:80640f30
[ 40.805363] r4:00000002
[ 40.807958] [<802a5b30>] (dpm_suspend_start) from [<800449f4>]
(suspend_devices_and_enter+0x8c/0x3b0)
[ 40.817258] r5:80640f30 r4:00000000
[ 40.820918] [<80044968>] (suspend_devices_and_enter) from
[<80044e88>] (pm_suspend+0x170/0x210)
[ 40.829692] r10:00000008 r9:00000000 r8:8e24ad00 r7:00000007
r6:80640f3c r5:00000002
[ 40.837672] r4:00000000
[ 40.840272] [<80044d18>] (pm_suspend) from [<80043adc>]
(state_store+0x74/0xc4)
[ 40.847653] r5:80569a2c r4:00000002
[ 40.851321] [<80043a68>] (state_store) from [<8023a520>]
(kobj_attr_store+0x1c/0x28)
[ 40.859136] r10:8e24a040 r8:00000000 r7:8e077f78 r6:00000008
r5:8e24ad00 r4:8e834b90
[ 40.867146] [<8023a504>] (kobj_attr_store) from [<80113d9c>]
(sysfs_kf_write+0x4c/0x50)
[ 40.875245] [<80113d50>] (sysfs_kf_write) from [<801133f4>]
(kernfs_fop_write+0xc0/0x19c)
[ 40.883497] r5:8e24a04c r4:8e24ad00
[ 40.887166] [<80113334>] (kernfs_fop_write) from [<800b807c>]
(vfs_write+0xa8/0x1b0)
[ 40.894986] r10:00e41408 r9:8e076000 r8:00000008 r7:8e077f78
r6:00e41408 r5:00000008
[ 40.902969] r4:8e0ef9c0
[ 40.905558] [<800b7fd4>] (vfs_write) from [<800b83b4>] (SyS_write+0x44/0x90)
[ 40.912654] r10:00e41408 r8:00000008 r7:8e0ef9c0 r6:8e0ef9c0
r5:00000000 r4:00000000
[ 40.920652] [<800b8370>] (SyS_write) from [<8000e8a0>]
(ret_fast_syscall+0x0/0x34)
[ 40.928293] r10:00000000 r8:8000ea44 r7:00000004 r6:76ef0a78
r5:00e41408 r4:00000008
[ 40.936280] Code: e1a0c00d e92dd878 e24cb004 e5904120 (e5945000)
[ 40.942427] ---[ end trace a4e15b05423e6882 ]---
I suspected that the clocks are disabled when flexcan_suspend is
called. When I explicitly enabled the clocks in flexcan_suspend it
worked fine.
Before sending a patch I wanted to check for your thoughts?
Sounds reasonable. I think we have to convert the flexcan driver to
proper runtime_pm.
Hm, but we don't have runtime PM, so the question is why are they
This is why I asked to convert the driver to runtime_pm. There is the
same problem for the xilinx driver, see discussion on this list some
month ago.....the final xilinx patch was not sent, though.
quoted
actually disabled at that time? I guess its because the device has not
been opened or has already been closed at that point, in any case,
afaik, flexcan_chip_disable should not be required. Not sure how to
detect whether the chip is opened or not, but maybe just move the
flexcan_chip_disable within the netif_running if block?
Make use of runtime_pm, then you don't have to worry about
netif_runningm etc....
While it would probably be great fun to convert flexcan driver to use
runtime_pm, but since my knowledge is limited when it comes to
runtime_pm this would be time consuming for me, time which I do not
have at the moment.
So will probably use Stefans suggestion, to move forward in current
project and maybe do the conversion to runtime_pm later (when everyone
else is on vacation :))
Marc
--
Pengutronix e.K. | Marc Kleine-Budde |
Industrial Linux Solutions | Phone: +49-231-2826-924 |
Vertretung West/Dortmund | Fax: +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
--
Med Vänliga Hälsningar / Best Regards
*******************************************************************
Mirza Krak
Host Mobility AB
mirza.krak@hostmobility.com
Anders Personsgatan 12, 416 64 Göteborg
Sweden
http://www.hostmobility.com
Direct: +46 31 31 32 704
Phone: +46 31 31 32 700
Fax: +46 31 80 67 51
Mobile: +46 730 28 06 22
*******************************************************************