<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers, 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>ENGR00176629 [Thermal]Add 1.2G support</title>
<updated>2012-03-18T15:39:14+00:00</updated>
<author>
<name>Anson Huang</name>
<email>b20788@freescale.com</email>
</author>
<published>2012-03-13T07:09:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=00ad172b303f67d197fbd9763d0561101d00760e'/>
<id>00ad172b303f67d197fbd9763d0561101d00760e</id>
<content type='text'>
Fix bug of saving previous cpufreq not support
up to 1.2G freq. Max length set to 7 instead of 6.

Signed-off-by: Anson Huang &lt;b20788@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix bug of saving previous cpufreq not support
up to 1.2G freq. Max length set to 7 instead of 6.

Signed-off-by: Anson Huang &lt;b20788@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00176567 gpio_keys: Set the IRQF_NO_SUSPEND flag to wakeup button</title>
<updated>2012-03-16T07:53:27+00:00</updated>
<author>
<name>Xinyu Chen</name>
<email>xinyu.chen@freescale.com</email>
</author>
<published>2012-03-16T07:07:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=685c64cdce9aa04683bd52e66a7923ab425ca8ac'/>
<id>685c64cdce9aa04683bd52e66a7923ab425ca8ac</id>
<content type='text'>
We should not disabled GPIO irq when doing suspend.

During suspend, kernel will call suspend_device_irq()
to disable all the irqs (just set a disabled flag, no mask)
On the another side, The handle_level_irq will check
the irq's disable status to determin it should be
handled or unmasked.

If the GPIO interrupt happened just after the above
suspend_device_irq(), we enters handle_leve_irq(),
mask and ack the GPIO irq, then return directly
without handle or unmask this irq because of it's disabled.
That means the GPIO IMR bit is not set and
we can not wake up by the GPIO key button.

Signed-off-by: Xinyu Chen &lt;xinyu.chen@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We should not disabled GPIO irq when doing suspend.

During suspend, kernel will call suspend_device_irq()
to disable all the irqs (just set a disabled flag, no mask)
On the another side, The handle_level_irq will check
the irq's disable status to determin it should be
handled or unmasked.

If the GPIO interrupt happened just after the above
suspend_device_irq(), we enters handle_leve_irq(),
mask and ack the GPIO irq, then return directly
without handle or unmask this irq because of it's disabled.
That means the GPIO IMR bit is not set and
we can not wake up by the GPIO key button.

Signed-off-by: Xinyu Chen &lt;xinyu.chen@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<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>ENGR00175700 System hang when change HDMI from XGA to 1080P with display blank</title>
<updated>2012-03-16T01:16:25+00:00</updated>
<author>
<name>Sandor Yu</name>
<email>R01008@freescale.com</email>
</author>
<published>2012-02-29T10:09:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=779beac355abcaffdefc958feec5b0a2992d850d'/>
<id>779beac355abcaffdefc958feec5b0a2992d850d</id>
<content type='text'>
Change the vide mode from XGA to 1080P when display blank,
the system will hang.

It is cause by overflow interrupt will trigger when the video mode change,
but clean the interrupt status bit depend on pixewl clock.
In blank state the pixel clock is gating so the HDMI PHY can't work.

Signed-off-by: Sandor Yu &lt;R01008@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change the vide mode from XGA to 1080P when display blank,
the system will hang.

It is cause by overflow interrupt will trigger when the video mode change,
but clean the interrupt status bit depend on pixewl clock.
In blank state the pixel clock is gating so the HDMI PHY can't work.

Signed-off-by: Sandor Yu &lt;R01008@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00174914 MX6x HDMI implement HDMI driver suspend/resume function</title>
<updated>2012-03-16T01:13:05+00:00</updated>
<author>
<name>Sandor Yu</name>
<email>R01008@freescale.com</email>
</author>
<published>2012-02-22T08:08:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7a1e9344559e19b5ec9b7c497d6d2be366faf8eb'/>
<id>7a1e9344559e19b5ec9b7c497d6d2be366faf8eb</id>
<content type='text'>
Added FB suspend/resume event process in HDMI driver.

Signed-off-by: Sandor Yu &lt;R01008@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added FB suspend/resume event process in HDMI driver.

Signed-off-by: Sandor Yu &lt;R01008@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00143324-1 v4l2_capture: add camera rotate function</title>
<updated>2012-03-14T08:02:57+00:00</updated>
<author>
<name>Yuxi Sun</name>
<email>b36102@freescale.com</email>
</author>
<published>2011-05-16T06:25:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f50650c670e9eccafd40c518f00daa22d017a33e'/>
<id>f50650c670e9eccafd40c518f00daa22d017a33e</id>
<content type='text'>
add four kinds of camera rotate function: rotate_none, rotate_vert
rotate_horiz, rotate_180

Signed-off-by: Yuxi Sun &lt;b36102@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
add four kinds of camera rotate function: rotate_none, rotate_vert
rotate_horiz, rotate_180

Signed-off-by: Yuxi Sun &lt;b36102@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00176159 video: ipuv3-fb: change to timeout semaphore to wait on irq.</title>
<updated>2012-03-08T16:10:46+00:00</updated>
<author>
<name>Zhang Jiejing</name>
<email>jiejing.zhang@freescale.com</email>
</author>
<published>2012-03-06T06:47:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a88e7a1c39bbbf56f0f7fe0fbd6df84bd9a55522'/>
<id>a88e7a1c39bbbf56f0f7fe0fbd6df84bd9a55522</id>
<content type='text'>
change to timeout semaphore to wait on irq.

use no timeout semaphore have below issues:
1. since fbmem.c will hold the console_lock() before call PAN_DISPLAY ioictl,
 if have wrong happens on IPU, IRQ not come, any log printk will not ouput,
 it will become like a system hang, and developer don't know what's wrong.

2. semaphore don't have timeout, here we can't know irq not come,
  so hang it infintly.
3. semaphore lock and unlock in different context is a dangous operation.

To fix these issue, use timedout version to wait on irq.
But for better coding stly to align Kernel Coding Style Doc,
better use complete to wait on irq, use semaphre little ugly.

Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
change to timeout semaphore to wait on irq.

use no timeout semaphore have below issues:
1. since fbmem.c will hold the console_lock() before call PAN_DISPLAY ioictl,
 if have wrong happens on IPU, IRQ not come, any log printk will not ouput,
 it will become like a system hang, and developer don't know what's wrong.

2. semaphore don't have timeout, here we can't know irq not come,
  so hang it infintly.
3. semaphore lock and unlock in different context is a dangous operation.

To fix these issue, use timedout version to wait on irq.
But for better coding stly to align Kernel Coding Style Doc,
better use complete to wait on irq, use semaphre little ugly.

Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00175841 input: egalax_ts: fix touch can't work after suspend and reset.</title>
<updated>2012-03-08T09:39:21+00:00</updated>
<author>
<name>Zhang Jiejing</name>
<email>jiejing.zhang@freescale.com</email>
</author>
<published>2012-03-08T09:28:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8fdc1d60ec595765f9fcd03e1ed2f7dab000766f'/>
<id>8fdc1d60ec595765f9fcd03e1ed2f7dab000766f</id>
<content type='text'>
if reset board during suspend, the controller can't success read
firmware version, it due to the chip needs some time to wake up, so
add 10 ms delay after wakeup chip in probe function.

don't need add delay in other code path, since the time was too short
to noticed in normal suspend/resume sequency.

Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
if reset board during suspend, the controller can't success read
firmware version, it due to the chip needs some time to wake up, so
add 10 ms delay after wakeup chip in probe function.

don't need add delay in other code path, since the time was too short
to noticed in normal suspend/resume sequency.

Signed-off-by: Zhang Jiejing &lt;jiejing.zhang@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00175884 PM: Fix short press gpio power key failed resume system issue</title>
<updated>2012-03-01T10:56:52+00:00</updated>
<author>
<name>Lin Fuzhen</name>
<email>fuzhen.lin@freescale.com</email>
</author>
<published>2012-03-01T10:52:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9ba4c42103fae2c3daff774d95d5103268d28a5b'/>
<id>9ba4c42103fae2c3daff774d95d5103268d28a5b</id>
<content type='text'>
For gpio IRQ which defined as device IRQ is being enabled after syscore resume
completed, this may cause the key down could not be deteced sometime.
Enabel gpio power key early irq during syscore instead of at device resume time.

Some platform like Android need to konw the power key is pressed then to
reume the other devcies

Signed-off-by: Lin Fuzhen &lt;fuzhen.lin@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For gpio IRQ which defined as device IRQ is being enabled after syscore resume
completed, this may cause the key down could not be deteced sometime.
Enabel gpio power key early irq during syscore instead of at device resume time.

Some platform like Android need to konw the power key is pressed then to
reume the other devcies

Signed-off-by: Lin Fuzhen &lt;fuzhen.lin@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00175219-3 wm8958: add audio codec support</title>
<updated>2012-02-29T03:20:20+00:00</updated>
<author>
<name>Gary Zhang</name>
<email>b13634@freescale.com</email>
</author>
<published>2012-02-28T06:51:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f32afa5e6f73bb460b21aa8adbb346d75c08ae0e'/>
<id>f32afa5e6f73bb460b21aa8adbb346d75c08ae0e</id>
<content type='text'>
add wm8958 audio codec support

Signed-off-by: Gary Zhang &lt;b13634@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
add wm8958 audio codec support

Signed-off-by: Gary Zhang &lt;b13634@freescale.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
