Hi,
I am using New Frame-Buffer driver which is based on DSS2 library submitted by
Tomi, and I am trying to add full power management support. But things are not
working out as expected, every time when I am issuing command "echo mem >
/sys/power/state" the system doesn't go into off state. It always points to
dss_prwdm, below are the steps I am following -
- Build the kernel with CPU_IDLE
- Enable all the PM flags
# echo 1 > /sys/power/sleep_while_idle
# echo 1 > /sys/power/clocks_off_while_idle
# echo 1 > /sys/power/enable_off_mode
- From Linux prompt issue command
# echo mem > /sys/power/state
The log is -
------------
r...@arago:~# echo mem > /sys/power/state
<6>PM: Syncing filesystems ... PM: Syncing filesystems ... done.
done.
Freezing user space processes ... Freezing user space processes ... (elapsed
0.00 seconds) (elapsed 0.00 seconds) done.
done.
Freezing remaining freezable tasks ... Freezing remaining freezable tasks ...
(elapsed 0.06 seconds) (elapsed 0.06 seconds) done.done.
Suspending console(s) (use no_console_suspend to debug)
Suspending console(s) (use no_console_suspend to debug)
<6>omap-backlight: suspending...
omapfb_suspend
omapfb_resume
<6>omap-backlight: resuming...
omap-backlight: suspending...
omapfb_suspend
Powerdomain (core_pwrdm) didn't enter target state 0
Powerdomain (dss_pwrdm) didn't enter target state 0
Powerdomain (per_pwrdm) didn't enter target state 0
Could not enter target state in pm_suspend
eth0: link down
omapfb_resume
omap-backlight: resuming...
Restarting tasks ... Restarting tasks ... done.
done.
r...@arago:~#
Some analysis which I observed during debugging this issue -
- The root-cause is, DSS PowerDomain always shows it is in ON state
(PWRDM_POWER_ON), and if I understand correctly this is only dependent on
clocks. But I am making sure that DSS clocks are disabled. And with CPU_IDLE
enabled I am going to complete OFF state.
(/sys/devices/system/cpu/cpu0/cpuidle/state5/usage is incrementing).
- If I compile out framebuffer driver and include DSS2 and V4L2 driver,
everything works fine. I am not sure how "omapfb" is being tied with
PowerDomain. Again I have seen references in arch/arm/mach-omap2/omapdev3xxx.h
to the pdev_name = "omapfb", not sure how this is being used.
I believe if system is hitting OFF state, then my enable/disable paths are
proper, but really not sure about why "mem" is causing problem here.
Thanks,
Vaibhav Hiremath
Platform Support Products
Texas Instruments Inc
Ph: +91-80-25099927
Thanks,
Vaibhav Hiremath
Platform Support Products
Texas Instruments Inc
Ph: +91-80-25099927
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html