All of lore.kernel.org
 help / color / mirror / Atom feed
* Flexcan error on suspend
@ 2015-05-15 12:15 Mirza Krak
  2015-05-15 12:31 ` Marc Kleine-Budde
  0 siblings, 1 reply; 5+ messages in thread
From: Mirza Krak @ 2015-05-15 12:15 UTC (permalink / raw)
  To: linux-can@vger.kernel.org; +Cc: stefan

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?
-- 
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
*******************************************************************

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Flexcan error on suspend
  2015-05-15 12:15 Flexcan error on suspend Mirza Krak
@ 2015-05-15 12:31 ` Marc Kleine-Budde
  2015-05-15 13:00   ` Stefan Agner
  0 siblings, 1 reply; 5+ messages in thread
From: Marc Kleine-Budde @ 2015-05-15 12:31 UTC (permalink / raw)
  To: Mirza Krak, linux-can@vger.kernel.org; +Cc: stefan

[-- Attachment #1: Type: text/plain, Size: 7252 bytes --]

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   |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Flexcan error on suspend
  2015-05-15 12:31 ` Marc Kleine-Budde
@ 2015-05-15 13:00   ` Stefan Agner
  2015-05-15 13:15     ` Marc Kleine-Budde
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Agner @ 2015-05-15 13:00 UTC (permalink / raw)
  To: Marc Kleine-Budde; +Cc: Mirza Krak, linux-can

On 2015-05-15 14:31, Marc Kleine-Budde wrote:
> 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.

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Flexcan error on suspend
  2015-05-15 13:00   ` Stefan Agner
@ 2015-05-15 13:15     ` Marc Kleine-Budde
  2015-05-19  9:13       ` Mirza Krak
  0 siblings, 1 reply; 5+ messages in thread
From: Marc Kleine-Budde @ 2015-05-15 13:15 UTC (permalink / raw)
  To: Stefan Agner; +Cc: Mirza Krak, linux-can

[-- Attachment #1: Type: text/plain, Size: 8337 bytes --]

On 05/15/2015 03:00 PM, Stefan Agner wrote:
> On 2015-05-15 14:31, Marc Kleine-Budde wrote:
>> 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.
> 
> 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   |


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 455 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Flexcan error on suspend
  2015-05-15 13:15     ` Marc Kleine-Budde
@ 2015-05-19  9:13       ` Mirza Krak
  0 siblings, 0 replies; 5+ messages in thread
From: Mirza Krak @ 2015-05-19  9:13 UTC (permalink / raw)
  To: Marc Kleine-Budde; +Cc: Stefan Agner, linux-can@vger.kernel.org

2015-05-15 15:15 GMT+02:00 Marc Kleine-Budde <mkl@pengutronix.de>:
> On 05/15/2015 03:00 PM, Stefan Agner wrote:
>> On 2015-05-15 14:31, Marc Kleine-Budde wrote:
>>> 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.
>>
>> 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....

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
*******************************************************************

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-05-19  9:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-15 12:15 Flexcan error on suspend Mirza Krak
2015-05-15 12:31 ` Marc Kleine-Budde
2015-05-15 13:00   ` Stefan Agner
2015-05-15 13:15     ` Marc Kleine-Budde
2015-05-19  9:13       ` Mirza Krak

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.