Part Number:DRA71
Tool/software: Linux
Team
We are implementing hibernation feature on our custom board.
After kernel configuration and fixing, we are enable to get this feature working on most of modules, but we have some troubles with GPU.
Trying to remove module
# lsmod Module Size Used by pvrsrvkm 235464 12 # rmmod pvrsrvkm rmmod: failed to unload pvrsrvkm: Try again
Testing hibernation we get the following errors
#echo core > /sys/power/pm_test #echo suspend > /sys/power/disk #echo disk > /sys/power/state [ 1250.813535] PM: Syncing filesystems ... done. [ 1250.818560] PM: disabling user mode helpers [ 1250.822838] PM: user mode helpers disabled [ 1250.826958] PM: user mode helpers disabled successfuly [ 1250.832651] Freezing user space processes ... (elapsed 0.002 seconds) done. [ 1250.842158] OOM killer disabled. [ 1250.845595] PM: hibernation_snapshot started. platform_mode=0 [ 1250.851370] PM: Preallocating image memory... done (allocated 79677 pages) [ 1251.162997] PM: Allocated 318708 kbytes in 0.30 seconds (1062.36 MB/s) [ 1251.169561] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. [ 1251.180273] Suspending console(s) (use no_console_suspend to debug) [ 1251.186641] PM: __device_suspend: Device gpio60 [ 1251.186660] PM: __device_suspend: Device pvr_sync [ 1251.186671] PM: __device_suspend: Device pvrsrvkm [ 1251.186682] PM: __device_suspend: Device mtp_usb ... a lot of PM: __device_suspend: logs ... [ 1251.210245] omap_hwmod: mmc1: idling [ 1251.210255] omap_hwmod: mmc1: _omap4_disable_module [ 1251.210266] CHRISTIAN->mod:mmc1 clk:l3init_clkdm [arch/arm/mach-omap2/omap_hwmod.c:_omap4_wait_target_disable:1038] [ 1251.210267] omap_hwmod: mmc1: disabling clocks [ 1251.210308] omap_hwmod: gpu: idling [ 1251.210321] omap_hwmod: gpu: _omap4_disable_module [ 1251.217561] CHRISTIAN->mod:gpu clk:gpu_clkdm [arch/arm/mach-omap2/omap_hwmod.c:_omap4_wait_target_disable:1038] -->[ 1251.217562] omap_hwmod: gpu: _wait_target_disable failed [ 1251.217566] omap_hwmod: gpu: disabling clocks [ 1251.217832] omap_hwmod: timer11: idling [ 1251.217843] omap_hwmod: timer11: _omap4_disable_module [ 1251.217858] CHRISTIAN->mod:timer11 clk:l4per_clkdm [arch/arm/mach-omap2/omap_hwmod.c:_omap4_wait_target_disable:1038] [ 1251.217859] omap_hwmod: timer11: disabling clocks ... [ 1251.614177] PM: restore of devices complete after 281.138 msecs [ 1251.614184] ------------[ cut here ]------------ [ 1251.614207] WARNING: CPU: 0 PID: 338 at drivers/cpufreq/cpufreq.c:1745 cpufreq_resume+0x170/0x194() [ 1251.614224] Modules linked in: pvrsrvkm(O) [last unloaded: usb_storage] [ 1251.614237] CPU: 0 PID: 338 Comm: sh Tainted: G W O 4.4.91-00062-g134da8a-dirty #5 [ 1251.614242] Hardware name: Generic DRA72X (Flattened Device Tree) [ 1251.614250] Backtrace: [ 1251.614267] [<c020c64c>] (dump_backtrace) from [<c020c854>] (show_stack+0x18/0x1c) [ 1251.614290] r6:60000013 r5:c1259c48 r4:00000000 r3:dc8ba65b [ 1251.614308] [<c020c83c>] (show_stack) from [<c0beb62c>] (dump_stack+0x94/0xa8) [ 1251.614325] [<c0beb598>] (dump_stack) from [<c0232748>] (warn_slowpath_null+0x8c/0xa8) [ 1251.614344] r6:c0eaf250 r5:000006d1 r4:c08af760 r3:dc8ba65b [ 1251.614358] [<c02326bc>] (warn_slowpath_null) from [<c08af760>] (cpufreq_resume+0x170/0x194) [ 1251.614374] r6:c12838b8 r5:e3dbde00 r4:00000000 [ 1251.614390] [<c08af5f0>] (cpufreq_resume) from [<c07120f4>] (dpm_resume+0x174/0x3fc) [ 1251.614409] r7:c126bd78 r6:c126bd48 r5:e3dbde00 r4:c126bd78 [ 1251.614423] [<c0711f80>] (dpm_resume) from [<c0297418>] (hibernation_snapshot+0x5f0/0x600) [ 1251.614448] r10:e33fe480 r9:00000000 r8:00000000 r7:c1202800 r6:00000000 r5:00000040 [ 1251.614456] r4:00000000 [ 1251.614467] [<c0296e28>] (hibernation_snapshot) from [<c0297bbc>] (hibernate+0x134/0x28c) [ 1251.614491] r9:00000000 r8:c12c3040 r7:c120494c r6:ffffffff r5:c121ef64 r4:c121f138 [ 1251.614506] [<c0297a88>] (hibernate) from [<c0294278>] (state_store+0x60/0x84) [ 1251.614528] r8:00000000 r7:e300df70 r6:00000005 r5:00000005 r4:e33fe380 [ 1251.614547] [<c0294218>] (state_store) from [<c05b6c4c>] (kobj_attr_store+0x1c/0x28) [ 1251.614558] r5:e33fe48c r4:c05b6c30 [ 1251.614574] [<c05b6c30>] (kobj_attr_store) from [<c0408b3c>] (sysfs_kf_write+0x44/0x50) [ 1251.614587] [<c0408af8>] (sysfs_kf_write) from [<c0408400>] (kernfs_fop_write+0x13c/0x1a4) [ 1251.614598] r4:e33fe380 r3:c0408af8 [ 1251.614612] [<c04082c4>] (kernfs_fop_write) from [<c038d82c>] (vfs_write+0xb8/0x1dc) [ 1251.614636] r10:00000000 r9:e300c000 r8:aa4aa284 r7:e300df70 r6:aa4aa284 r5:00000005 [ 1251.614643] r4:e31f0e40 [ 1251.614656] [<c038d774>] (vfs_write) from [<c038e1fc>] (SyS_write+0x5c/0xb8) [ 1251.614678] r9:e300c000 r8:aa4aa284 r7:00000005 r6:e31f0e40 r5:c120494c r4:e31f0e40 [ 1251.614693] [<c038e1a0>] (SyS_write) from [<c0207fe0>] (ret_fast_syscall+0x0/0x34) [ 1251.614715] r8:c0208184 r7:00000004 r6:bed7b7a4 r5:aa4aa284 r4:00000005 [ 1251.614721] ---[ end trace 3e18a24dac8e40cd ]--- [ 1251.721137] android_work: sent uevent USB_STATE=DISCONNECTED [ 1252.174355] android_work: sent uevent USB_STATE=CONNECTED [ 1252.179405] android_work: sent uevent USB_STATE=DISCONNECTED [ 1252.279772] android_work: sent uevent USB_STATE=CONNECTED [ 1252.323005] configfs-gadget gadget: high-speed config #1: b [ 1252.323306] android_work: sent uevent USB_STATE=CONFIGURED [ 1256.820404] PM: Image restored successfully. [ 1256.824805] Restarting tasks ... [ 1256.874932] done. [ 1256.877682] PM: hibernate: resume uevent sent successfully
Platform details
- Android SDK 6AO.1.0
- Linux 4.4.91-00062-
How can we remove GPU driver module/ pvrsrvkm successfully?