<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/kernel, branch imx-android-r13.2</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>ENGR00175844 irq: enable IRQF_EARLY_RESUME irq when dpm_suspend_noirq failed</title>
<updated>2012-03-16T01:54:46+00:00</updated>
<author>
<name>Xinyu Chen</name>
<email>xinyu.chen@freescale.com</email>
</author>
<published>2012-03-16T01:42:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4b5cdefdbcb3eb0c01efc714e2b7fe6d8fb5ca21'/>
<id>4b5cdefdbcb3eb0c01efc714e2b7fe6d8fb5ca21</id>
<content type='text'>
The dpm_suspend_noirq routing calls suspend_device_irqs()
first to disable all the irq no matter what flags it has.
Then it enumerates the device driver on dpm_suspend_list to
call their suspend_noirq pm callback. If any dev suspend
failed, it will call dpm_resume_noirq to re-enable all
the irq without IRQF_EARLY_RESUME, and return failed.

If dpm_suspend_noirq() return failed, then no syscore_resume()
can be called, that means the irq with flag IRQF_EARLY_RESUME,
can not be re-enabled on this case.

	error = dpm_suspend_noirq(PMSG_SUSPEND);
	if (error) {
		..
		goto Platform_finish;
	}
	....
	error = syscore_suspend();
	if (!error) {
		...
		syscore_resume();
	}
	...
	dpm_resume_noirq(PMSG_RESUME);

 Platform_finish:
	if (suspend_ops-&gt;finish)
		suspend_ops-&gt;finish();

So we must enable all the irqs no matter it's IRQF_EARLY_RESUME
or not.
Otherwise the GPIO power key who's irq has flag of IRQF_EARLY_RESUME
will be disabled forever when some device failed to suspend.

Signed-off-by: Xinyu Chen &lt;xinyu.chen@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The dpm_suspend_noirq routing calls suspend_device_irqs()
first to disable all the irq no matter what flags it has.
Then it enumerates the device driver on dpm_suspend_list to
call their suspend_noirq pm callback. If any dev suspend
failed, it will call dpm_resume_noirq to re-enable all
the irq without IRQF_EARLY_RESUME, and return failed.

If dpm_suspend_noirq() return failed, then no syscore_resume()
can be called, that means the irq with flag IRQF_EARLY_RESUME,
can not be re-enabled on this case.

	error = dpm_suspend_noirq(PMSG_SUSPEND);
	if (error) {
		..
		goto Platform_finish;
	}
	....
	error = syscore_suspend();
	if (!error) {
		...
		syscore_resume();
	}
	...
	dpm_resume_noirq(PMSG_RESUME);

 Platform_finish:
	if (suspend_ops-&gt;finish)
		suspend_ops-&gt;finish();

So we must enable all the irqs no matter it's IRQF_EARLY_RESUME
or not.
Otherwise the GPIO power key who's irq has flag of IRQF_EARLY_RESUME
will be disabled forever when some device failed to suspend.

Signed-off-by: Xinyu Chen &lt;xinyu.chen@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00173756-2 cpufreq: fix license issue</title>
<updated>2012-03-12T05:18:00+00:00</updated>
<author>
<name>Xinyu Chen</name>
<email>xinyu.chen@freescale.com</email>
</author>
<published>2012-03-12T05:18:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=80167b1e5474148c9ab6bb36e9dd7f124a88ac4c'/>
<id>80167b1e5474148c9ab6bb36e9dd7f124a88ac4c</id>
<content type='text'>
Correct the license header of cpufreq earlysuspend
governor switch driver.

Signed-off-by: Xinyu Chen &lt;xinyu.chen@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Correct the license header of cpufreq earlysuspend
governor switch driver.

Signed-off-by: Xinyu Chen &lt;xinyu.chen@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00175308-1 MX6Q PM: cpu hotplug on earlysuspend</title>
<updated>2012-02-27T09:17:28+00:00</updated>
<author>
<name>Lin Fuzhen</name>
<email>fuzhen.lin@freescale.com</email>
</author>
<published>2012-02-24T02:27:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3ad385fe2104de13641cbe03ec8c008851a42b06'/>
<id>3ad385fe2104de13641cbe03ec8c008851a42b06</id>
<content type='text'>
Add cpu hotplug support when system entry in earlysyspend.
With this patch, when system entery in earlysuspend, it will
record the online cpus, then hotplut none-bootable cpus,
and in late resume, it will boot up the recorded hotplug cpus.

Signed-off-by: Lin Fuzhen &lt;fuzhen.lin@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add cpu hotplug support when system entry in earlysyspend.
With this patch, when system entery in earlysuspend, it will
record the online cpus, then hotplut none-bootable cpus,
and in late resume, it will boot up the recorded hotplug cpus.

Signed-off-by: Lin Fuzhen &lt;fuzhen.lin@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00173756-1 Android: cpufreq: add cpu frquency governor save/restore function.</title>
<updated>2012-02-08T05:20:23+00:00</updated>
<author>
<name>Zhang Jiejing</name>
<email>jiejing.zhang@freescale.com</email>
</author>
<published>2012-02-06T06:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1b6feda9a4216683aa12da0a33f7871ee0540540'/>
<id>1b6feda9a4216683aa12da0a33f7871ee0540540</id>
<content type='text'>
improve the power consumption situation for audio playback,
background downloading,etc tasks.

the scaling governor is set to conservative when display
is turned off and the default governor is saved. The governor
is restored when display is turned on.

Signed-off-by: Wen Yi &lt;wyi@nvidia.com&gt;
Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
improve the power consumption situation for audio playback,
background downloading,etc tasks.

the scaling governor is set to conservative when display
is turned off and the default governor is saved. The governor
is restored when display is turned on.

Signed-off-by: Wen Yi &lt;wyi@nvidia.com&gt;
Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'android-3.0' into imx_3.0.15_android</title>
<updated>2012-02-02T08:58:05+00:00</updated>
<author>
<name>Xinyu Chen</name>
<email>xinyu.chen@freescale.com</email>
</author>
<published>2012-02-02T08:58:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=599a980adc5c2ba32f6aedcd87640b781d347d1f'/>
<id>599a980adc5c2ba32f6aedcd87640b781d347d1f</id>
<content type='text'>
Conflicts:
	drivers/misc/Kconfig
	drivers/misc/Makefile
	drivers/net/wireless/Makefile
	kernel/power/main.c
	sound/soc/soc-core.c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Conflicts:
	drivers/misc/Kconfig
	drivers/misc/Makefile
	drivers/net/wireless/Makefile
	kernel/power/main.c
	sound/soc/soc-core.c
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00156637 [MX6]Reboot take long time on SMP</title>
<updated>2012-01-09T12:23:51+00:00</updated>
<author>
<name>Anson Huang</name>
<email>b20788@freescale.com</email>
</author>
<published>2011-09-27T10:20:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c0a5032d33a78e328ce83cce40f7a598091e9527'/>
<id>c0a5032d33a78e328ce83cce40f7a598091e9527</id>
<content type='text'>
Add work around to the reboot issue of SMP, with
SMP, all the CPUs need to do _rcu_barrier, if we
enqueue an rcu callback, we need to make sure CPU
tick to stay alive until we take care of those by
completing the appropriate grace period.

This work around only work when the reboot command
issue, so it didn't impact normal kernel feature.

Signed-off-by: Anson Huang &lt;b20788@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add work around to the reboot issue of SMP, with
SMP, all the CPUs need to do _rcu_barrier, if we
enqueue an rcu callback, we need to make sure CPU
tick to stay alive until we take care of those by
completing the appropriate grace period.

This work around only work when the reboot command
issue, so it didn't impact normal kernel feature.

Signed-off-by: Anson Huang &lt;b20788@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00133978 PM: add time sensitive debug function to suspend &amp; resume</title>
<updated>2012-01-09T11:53:47+00:00</updated>
<author>
<name>Zhang Jiejing</name>
<email>jiejing.zhang@freescale.com</email>
</author>
<published>2010-11-22T09:14:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=834c3d2c4b6b6b1fdeb4d3c24253210769d1dea0'/>
<id>834c3d2c4b6b6b1fdeb4d3c24253210769d1dea0</id>
<content type='text'>
There was some driver is slow on suspend/resume,
but some embeded system like eReader,Cellphone
are time sensitive,this commit will report the slow
driver on suspend/resume, the default value is 500us(0.5ms)

Also, the threshold can be change by modify
'/sys/power/device_suspend_time_threshold' to change the threshold,
it is in microsecond.

The output is like:

PM: device platform:soc-audio.2 suspend too slow, takes          606.696 msecs
PM: device platform:mxc_sdc_fb.1 suspend too slow, takes         7.708 msecs

the default state of suspend driver is default off,
if you want to debug the suspend time, echo time in
microsecond(u Second) to /sys/powe/device_suspend_time_threshold

eg: I want to know which driver suspend &amp; resume takes
more that 0.5 ms (500 us), you can just :

ehco 500 &gt; /sys/power/device_suspend_time_threshold

Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There was some driver is slow on suspend/resume,
but some embeded system like eReader,Cellphone
are time sensitive,this commit will report the slow
driver on suspend/resume, the default value is 500us(0.5ms)

Also, the threshold can be change by modify
'/sys/power/device_suspend_time_threshold' to change the threshold,
it is in microsecond.

The output is like:

PM: device platform:soc-audio.2 suspend too slow, takes          606.696 msecs
PM: device platform:mxc_sdc_fb.1 suspend too slow, takes         7.708 msecs

the default state of suspend driver is default off,
if you want to debug the suspend time, echo time in
microsecond(u Second) to /sys/powe/device_suspend_time_threshold

eg: I want to know which driver suspend &amp; resume takes
more that 0.5 ms (500 us), you can just :

ehco 500 &gt; /sys/power/device_suspend_time_threshold

Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "clockevents: Set noop handler in clockevents_exchange_device()"</title>
<updated>2012-01-03T18:42:00+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-12-30T21:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ef7386b5de11f6269eaf072c5ef522d2a43172c2'/>
<id>ef7386b5de11f6269eaf072c5ef522d2a43172c2</id>
<content type='text'>
commit 3b87487ac5008072f138953b07505a7e3493327f upstream.

This reverts commit de28f25e8244c7353abed8de0c7792f5f883588c.

It results in resume problems for various people. See for example

  http://thread.gmane.org/gmane.linux.kernel/1233033
  http://thread.gmane.org/gmane.linux.kernel/1233389
  http://thread.gmane.org/gmane.linux.kernel/1233159
  http://thread.gmane.org/gmane.linux.kernel/1227868/focus=1230877

and the fedora and ubuntu bug reports

  https://bugzilla.redhat.com/show_bug.cgi?id=767248
  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/904569

which got bisected down to the stable version of this commit.

Reported-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Reported-by: Phil Miller &lt;mille121@illinois.edu&gt;
Reported-by: Philip Langdale &lt;philipl@overt.org&gt;
Reported-by: Tim Gardner &lt;tim.gardner@canonical.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3b87487ac5008072f138953b07505a7e3493327f upstream.

This reverts commit de28f25e8244c7353abed8de0c7792f5f883588c.

It results in resume problems for various people. See for example

  http://thread.gmane.org/gmane.linux.kernel/1233033
  http://thread.gmane.org/gmane.linux.kernel/1233389
  http://thread.gmane.org/gmane.linux.kernel/1233159
  http://thread.gmane.org/gmane.linux.kernel/1227868/focus=1230877

and the fedora and ubuntu bug reports

  https://bugzilla.redhat.com/show_bug.cgi?id=767248
  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/904569

which got bisected down to the stable version of this commit.

Reported-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Reported-by: Phil Miller &lt;mille121@illinois.edu&gt;
Reported-by: Philip Langdale &lt;philipl@overt.org&gt;
Reported-by: Tim Gardner &lt;tim.gardner@canonical.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make TASKSTATS require root access</title>
<updated>2011-12-21T20:57:40+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-09-20T00:04:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b2c51348a4e6b08bb493b2b33d06df89d1a9a0bc'/>
<id>b2c51348a4e6b08bb493b2b33d06df89d1a9a0bc</id>
<content type='text'>
commit 1a51410abe7d0ee4b1d112780f46df87d3621043 upstream.

Ok, this isn't optimal, since it means that 'iotop' needs admin
capabilities, and we may have to work on this some more.  But at the
same time it is very much not acceptable to let anybody just read
anybody elses IO statistics quite at this level.

Use of the GENL_ADMIN_PERM suggested by Johannes Berg as an alternative
to checking the capabilities by hand.

Reported-by: Vasiliy Kulikov &lt;segoon@openwall.com&gt;
Cc: Johannes Berg &lt;johannes.berg@intel.com&gt;
Acked-by: Balbir Singh &lt;bsingharora@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Moritz Mühlenhoff &lt;jmm@inutil.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1a51410abe7d0ee4b1d112780f46df87d3621043 upstream.

Ok, this isn't optimal, since it means that 'iotop' needs admin
capabilities, and we may have to work on this some more.  But at the
same time it is very much not acceptable to let anybody just read
anybody elses IO statistics quite at this level.

Use of the GENL_ADMIN_PERM suggested by Johannes Berg as an alternative
to checking the capabilities by hand.

Reported-by: Vasiliy Kulikov &lt;segoon@openwall.com&gt;
Cc: Johannes Berg &lt;johannes.berg@intel.com&gt;
Acked-by: Balbir Singh &lt;bsingharora@gmail.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Moritz Mühlenhoff &lt;jmm@inutil.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>alarmtimers: Fix time comparison</title>
<updated>2011-12-21T20:57:34+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2011-12-05T20:20:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=612e5dbc550f30c787e40b958d351720e72091c6'/>
<id>612e5dbc550f30c787e40b958d351720e72091c6</id>
<content type='text'>
commit c9c024b3f3e07d087974db4c0dc46217fff3a6c0 upstream.

The expiry function compares the timer against current time and does
not expire the timer when the expiry time is &gt;= now. That's wrong. If
the timer is set for now, then it must expire.

Make the condition expiry &gt; now for breaking out the loop.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit c9c024b3f3e07d087974db4c0dc46217fff3a6c0 upstream.

The expiry function compares the timer against current time and does
not expire the timer when the expiry time is &gt;= now. That's wrong. If
the timer is set for now, then it must expire.

Make the condition expiry &gt; now for breaking out the loop.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: John Stultz &lt;john.stultz@linaro.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
</feed>
