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 3:01 PM
> To: Hiremath, Vaibhav
> Cc: linux-omap@xxxxxxxxxxxxxxx
> Subject: RE: Suspend/Resume support with Omap2fb
> 
> On Wed, 2009-03-11 at 09:46 +0100, ext Hiremath, Vaibhav wrote:
> >
> > 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?
> 
> Well, yes. But you need to save and restore context if you want OFF
> mode.
> 
[Hiremath, Vaibhav] As I mentioned I am hitting full OFF state (state5), and save and restore is happening perfectly fine.

> > 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?
> 
> It's been some time since I tested it, but it did work on OMAP3 SDP
> with
> the pm-branch. Only changed needed were the
> get_last_off_on_transaction_id and omapfb -> omapdss. I also tested
> echo
> mem > ....
> 
> I'll try to find time to test it again with latest trees.
> 
[Hiremath, Vaibhav] That would be great, I am also trying few things here at my end. Hopefully I will get something.
>  Tomi
> 
> 

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