RE: Suspend/Resume support with Omap2fb

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Thanks,
Vaibhav Hiremath

> -----Original Message-----
> From: Tomi Valkeinen [mailto:tomi.valkeinen@xxxxxxxxx]
> Sent: Wednesday, March 11, 2009 1:23 PM
> To: Hiremath, Vaibhav
> Cc: linux-omap@xxxxxxxxxxxxxxx
> Subject: Re: Suspend/Resume support with Omap2fb
> 
> Hi,
> 
> On Wed, 2009-03-11 at 07:55 +0100, ext Hiremath, Vaibhav wrote:
> > 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 -
> 
> OFF mode should work. I have verified it with DSI, DPI and SDI.
> However,
> it needs passing the get_last_off_on_transaction_id pointer in
> omap_dss_platform_data.
> 
> Also, see below.
> 
[Hiremath, Vaibhav] I believe this is only required when you do save and restore context right?
Actually I have modified that part of code where it doesn't expect this pointer and save/restore happens perfectly fine, which I am very will sure about, since I am hitting state5 of CPU_IDLE (Full OFF state) and it resumes back with the same state.

Again one more data point which I missed in last mail is, I am following clk->usecount which shows me 0. That means clocks are already disabled.

root@arago:~# cat /sys/devices/platform/omap-dss/clk
- dss -
internal clk count      0
dss_ick         83000000        0
dss1_alwon_fck  96000000        0
dss2_alwon_fck  13000000        0
dss_tv_fck      54000000        0
dss_96m_fck     96000000        0
- dispc -
dispc fclk source = dss1_alwon_fclk
pixel clk = 96000000 / 1 / 5 = 19200000
root@arago:~#


> > 	- 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 -
> > ------------
> >
> > root@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.
> >
> > root@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.
> 
> You have to change it to omapdss (or omap-dss in earlier DSS2
> versions).
> 
[Hiremath, Vaibhav] I have tried this option also, didn't work out.
Tomi,

Do you have summary or list of changes required in clock and PowerDomain related files to make it work?

How have you tested this? 
Have you also tested with "echo mem > /sys/power/state"?
Are you using Kevin's power management tree? What is default configuration of your kernel during this test?

>  Tomi
> 
> >
> > 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 majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux