<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 17, 2014 at 11:16 AM, Peter Teoh <span dir="ltr">&lt;<a href="mailto:htmldeveloper@gmail.com" target="_blank">htmldeveloper@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Sun, Sep 14, 2014 at 2:11 AM, Ran Shalit <span dir="ltr">&lt;<a href="mailto:ranshalit@gmail.com" target="_blank">ranshalit@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>On Thu, Sep 11, 2014 at 12:24 PM, Ran Shalit &lt;<a href="mailto:ranshalit@gmail.com" target="_blank">ranshalit@gmail.com</a>&gt; wrote:<br>
&gt; On Thu, Sep 11, 2014 at 8:32 AM, AYAN KUMAR HALDER &lt;<a href="mailto:ayankumarh@gmail.com" target="_blank">ayankumarh@gmail.com</a>&gt; wrote:<br>
&gt;&gt; On Thu, Sep 11, 2014 at 12:55 AM,  &lt;<a href="mailto:Valdis.Kletnieks@vt.edu" target="_blank">Valdis.Kletnieks@vt.edu</a>&gt; wrote:<br>
&gt;&gt;&gt; On Wed, 10 Sep 2014 21:58:48 +0300, Ran Shalit said:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; 1. How can I make a process to notice this inactivity ? Do you think<br>
&gt;&gt;&gt;&gt; it can be implemented by some periodic process who check if there is<br>
&gt;&gt;&gt;&gt; activity ? It returns to the original question I raised, that I will<br>
&gt;&gt;&gt;&gt; use some periodic process who checks maybe cpu load or something like<br>
&gt;&gt;&gt;&gt; that. What do you think ?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; That&#39;s going to depend on your system and what processes are running.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; You may have an MP3 player going that doesn&#39;t take much CPU at all - but<br>
&gt;&gt;&gt; shutting down because the user hasn&#39;t hit a button in 47 minutes will probably<br>
&gt;&gt;&gt; irritate the user no end.  Or there may be a screensaver running that takes<br>
&gt;&gt;&gt; twice as much CPU as the MP3 player, but is totally OK on the system<br>
&gt;&gt;&gt; suspending whenever the rest of the system wants it.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; You&#39;re going to have to look at your system design, and decide for yourself<br>
&gt;&gt;&gt; what the criteria are.<br>
&gt;&gt;<br>
&gt;&gt; Please correct me if my understanding is wrong:-<br>
&gt;&gt;<br>
&gt;&gt; I believe that autosuspend feature (for system suspend) is not present<br>
&gt;&gt; in kernel. I believe that there is no feature in kernel which checks<br>
&gt;&gt; for system ( cpu, devices) inactivity and suspends the entire system.<br>
&gt;&gt; System suspend is caused when :-<br>
&gt;&gt; 1. the user issues a command<br>
&gt;&gt; 2. The system receives some interrupt or event (lid closing event)<br>
&gt;&gt; 3. There is an external process which monitors system inactivity and<br>
&gt;&gt; suspends the system.<br>
&gt;&gt;<br>
&gt;&gt; For runtime suspend of a device, I believe it is the driver who has<br>
&gt;&gt; the complete responsibility to decide when to suspend the device or<br>
&gt;&gt; resume it.  The driver can take this decision on user intervention (eg<br>
&gt;&gt; when user writes to   /sys/devices/&lt;my-device&gt;/power/* ) or when the<br>
&gt;&gt; driver has completed servicing an interrupt and feels it has nothing<br>
&gt;&gt; more to do, etc<br>
&gt;<br>
&gt; Thanks Vlaid, Ayan,<br>
&gt;<br>
&gt; I am a bit yet struggling for couple of days on this PM issue, and I<br>
&gt; would appreciate your continous advise.<br>
&gt; The system requirement I have is as following:<br>
&gt; 1. make everything as automatic as possible , so that there won&#39;t be<br>
&gt; any need to add any userspace application for the matter.<br>
&gt; 2. wakeup from all relevant wakeup sources<br>
&gt; 3. should not use sysfs (it should be disabled from kernel)<br>
&gt; 4. platform is OMAP3530.<br></div></div></blockquote></div></div><div><br>a.   look into /arch/arm/mach-omap2 of kernel source and grep for &quot;sleep&quot; and &quot;wakeup&quot; functionality:   power management is just managing with the different frequencies of the the CPU.   as far as I can tell, once sleep, only uart pin can be used for waking up....not sure.</div><div><br></div><div>b.   read this:</div><div><br></div><div><a href="http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/30005.aspx" target="_blank">http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/30005.aspx</a></div><div><br></div><div><a href="http://www.ti.com/lit/an/slva310b/slva310b.pdf" target="_blank">http://www.ti.com/lit/an/slva310b/slva310b.pdf</a>   (read page 2, which describe the different powerup-sequence of the CPU, &quot;Powering-Up Sequence&quot;.   <br></div><div><br></div><div>c.   the technology brand name for omap3530 is &quot;DVFS&quot;....search for this inside the arch/arm kernel source.....you can find lots of sample codes there.</div><div><br></div><div>(don&#39;t confuse with another omap CPU brand name &quot;DeepSleep&quot; but is PM for another type of omap cpu.)</div><div><br></div><div>d.   <a href="http://www.ti.com/product/omap3530" target="_blank">http://www.ti.com/product/omap3530</a> --&gt; on the right is a DVSDK + Android source code for 3530....grep the codes for the above keywords...<br></div><div><br></div><div>hopefully it helps?</div><span class=""><div><br></div></span></div></div></div></blockquote><div><br></div><div>at the risk of missing out other files:<br><br></div><div>how about this two files:<br><br>inside arch/arm/mach-omap2:<br><br>omap-pm.h       <br>omap-pm-noop.c  <br><br></div><div>which I think provide a lot of hint for you.<br></div></div></div></div>