<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git, branch kk4.4.2_2.0.0-alpha</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>Merge remote-tracking branch 'fsl-linux-sdk/imx_3.10.31_1.1.0_alpha' into imx_3.10.y_android</title>
<updated>2014-04-30T05:36:17+00:00</updated>
<author>
<name>guoyin.chen</name>
<email>guoyin.chen@freescale.com</email>
</author>
<published>2014-04-30T05:36:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e7fdbbc7236c7c884cac0ea1fa14bca3d0990c94'/>
<id>e7fdbbc7236c7c884cac0ea1fa14bca3d0990c94</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00311068 ASoC: fsl_hdmi: passthrough can't work for android</title>
<updated>2014-04-30T05:14:18+00:00</updated>
<author>
<name>Shengjiu Wang</name>
<email>b02247@freescale.com</email>
</author>
<published>2014-04-30T01:31:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c4bb6b95be0a385d39fef45d577d5969c077feeb'/>
<id>c4bb6b95be0a385d39fef45d577d5969c077feeb</id>
<content type='text'>
Android need driver to export several kcontrol. "Support channels",
"Support Rates", "Support Formats".

Signed-off-by: Shengjiu Wang &lt;b02247@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Android need driver to export several kcontrol. "Support channels",
"Support Rates", "Support Formats".

Signed-off-by: Shengjiu Wang &lt;b02247@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>serial: imx: Remove init() and exit() platform callbacks</title>
<updated>2014-04-29T05:48:33+00:00</updated>
<author>
<name>Alexander Shiyan</name>
<email>shc_work@mail.ru</email>
</author>
<published>2014-02-22T12:01:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8614fc820d62cc2c84eea8d2fdd3157805fdb1c5'/>
<id>8614fc820d62cc2c84eea8d2fdd3157805fdb1c5</id>
<content type='text'>
Signed-off-by: Alexander Shiyan &lt;shc_work@mail.ru&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Alexander Shiyan &lt;shc_work@mail.ru&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>serial: imx: Use dev_name() for request_irq() to distinguish UARTs</title>
<updated>2014-04-29T05:48:32+00:00</updated>
<author>
<name>Alexander Shiyan</name>
<email>shc_work@mail.ru</email>
</author>
<published>2014-02-22T12:01:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=01769d97e98ca1be48d64eee31311fefe9812c6c'/>
<id>01769d97e98ca1be48d64eee31311fefe9812c6c</id>
<content type='text'>
Signed-off-by: Alexander Shiyan &lt;shc_work@mail.ru&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Alexander Shiyan &lt;shc_work@mail.ru&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>serial: imx: Use devm_ioremap_resource()</title>
<updated>2014-04-29T05:48:32+00:00</updated>
<author>
<name>Alexander Shiyan</name>
<email>shc_work@mail.ru</email>
</author>
<published>2014-02-22T12:01:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=182841f5a558c8d66db013a85d43678d33d1741c'/>
<id>182841f5a558c8d66db013a85d43678d33d1741c</id>
<content type='text'>
Use devm_ioremap_resource() in order to make the code simpler and
it gives proper codes on errors.

Signed-off-by: Alexander Shiyan &lt;shc_work@mail.ru&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use devm_ioremap_resource() in order to make the code simpler and
it gives proper codes on errors.

Signed-off-by: Alexander Shiyan &lt;shc_work@mail.ru&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00310741-2 enable gpu low memory killer for 3.10 kernel.</title>
<updated>2014-04-28T07:00:23+00:00</updated>
<author>
<name>Xiaowen Liu</name>
<email>b37945@freescale.com</email>
</author>
<published>2014-04-28T06:40:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=27f8415f7cb7252a825e7cab0b74281cface58a0'/>
<id>27f8415f7cb7252a825e7cab0b74281cface58a0</id>
<content type='text'>
add CONFIG_GPU_LOW_MEMORY_KILLER to default config.

Signed-off-by: Xiaowen Liu &lt;b37945@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
add CONFIG_GPU_LOW_MEMORY_KILLER to default config.

Signed-off-by: Xiaowen Liu &lt;b37945@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00310742 [#1087] fixed gpu database query failure</title>
<updated>2014-04-28T14:23:01+00:00</updated>
<author>
<name>Xianzhong</name>
<email>b07117@freescale.com</email>
</author>
<published>2014-04-28T13:36:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=063df583859f470915a6ea028646012f71f2dc9c'/>
<id>063df583859f470915a6ea028646012f71f2dc9c</id>
<content type='text'>
this patch fix gpu database query failure with gmem_info

Date: Apr 28, 2014
Signed-off-by: Xianzhong &lt;b07117@freescale.com&gt;
Acked-by: Jason Liu
(cherry picked from commit e04a8681a977153c7adf34c36d7ee33218cfcab3)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this patch fix gpu database query failure with gmem_info

Date: Apr 28, 2014
Signed-off-by: Xianzhong &lt;b07117@freescale.com&gt;
Acked-by: Jason Liu
(cherry picked from commit e04a8681a977153c7adf34c36d7ee33218cfcab3)
</pre>
</div>
</content>
</entry>
<entry>
<title>bluetooth: hci_ldisc: fix deadlock condition</title>
<updated>2014-04-28T06:28:41+00:00</updated>
<author>
<name>Felipe Balbi</name>
<email>balbi@ti.com</email>
</author>
<published>2014-04-23T14:58:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2b2ab2029243b98bd8cd23f44ce757e39df6fb2e'/>
<id>2b2ab2029243b98bd8cd23f44ce757e39df6fb2e</id>
<content type='text'>
LDISCs shouldn't call tty-&gt;ops-&gt;write() from within
-&gt;write_wakeup().

-&gt;write_wakeup() is called with port lock taken and
IRQs disabled, tty-&gt;ops-&gt;write() will try to acquire
the same port lock and we will deadlock.

Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Reviewed-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Reported-by: Huang Shijie &lt;b32955@freescale.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Tested-by: Andreas Bießmann &lt;andreas@biessmann.de&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
LDISCs shouldn't call tty-&gt;ops-&gt;write() from within
-&gt;write_wakeup().

-&gt;write_wakeup() is called with port lock taken and
IRQs disabled, tty-&gt;ops-&gt;write() will try to acquire
the same port lock and we will deadlock.

Acked-by: Marcel Holtmann &lt;marcel@holtmann.org&gt;
Reviewed-by: Peter Hurley &lt;peter@hurleysoftware.com&gt;
Reported-by: Huang Shijie &lt;b32955@freescale.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Tested-by: Andreas Bießmann &lt;andreas@biessmann.de&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ENGR00310741 enable gpu low memory killer for 3.10 kernel.</title>
<updated>2014-04-28T06:25:24+00:00</updated>
<author>
<name>Xiaowen Liu</name>
<email>b37945@freescale.com</email>
</author>
<published>2014-04-28T06:06:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1c6478842cdf932db9fe853a2307af068fc0574e'/>
<id>1c6478842cdf932db9fe853a2307af068fc0574e</id>
<content type='text'>
rename CONFIG_ANDROID_RESERVED_MEMORY_ACCOUNT to CONFIG_GPU_LOW_MEMORY_KILLER.
refine gpu low memory killer code.
remove some unused code.
move CONFIG_GPU_LOW_MEMORY_KILLER to gpu-viv Kconfig.

Signed-off-by: Xiaowen Liu &lt;b37945@freescale.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
rename CONFIG_ANDROID_RESERVED_MEMORY_ACCOUNT to CONFIG_GPU_LOW_MEMORY_KILLER.
refine gpu low memory killer code.
remove some unused code.
move CONFIG_GPU_LOW_MEMORY_KILLER to gpu-viv Kconfig.

Signed-off-by: Xiaowen Liu &lt;b37945@freescale.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tty_ldisc: add more limits to the @write_wakeup</title>
<updated>2014-04-28T06:21:14+00:00</updated>
<author>
<name>Huang Shijie</name>
<email>b32955@freescale.com</email>
</author>
<published>2014-04-23T14:58:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c868f352379d739076256e75ce81fe9d7f934f35'/>
<id>c868f352379d739076256e75ce81fe9d7f934f35</id>
<content type='text'>
In the uart_handle_cts_change(), uart_write_wakeup() is called after
we call @uart_port-&gt;ops-&gt;start_tx().

The Documentation/serial/driver tells us:
-----------------------------------------------
  start_tx(port)
	Start transmitting characters.

	Locking: port-&gt;lock taken.
	Interrupts: locally disabled.
-----------------------------------------------

So when the uart_write_wakeup() is called, the port-&gt;lock is taken by
the upper. See the following callstack:

	|_ uart_write_wakeup
	   |_ tty_wakeup
	      |_ ld-&gt;ops-&gt;write_wakeup

With the port-&gt;lock held, we call the @write_wakeup. Some implemetation of
the @write_wakeup does not notice that the port-&gt;lock is held, and it still
tries to send data with uart_write() which will try to grab the prot-&gt;lock.
A dead lock occurs, see the following log caught in the Bluetooth by uart:

--------------------------------------------------------------------
BUG: spinlock lockup suspected on CPU#0, swapper/0/0
 lock: 0xdc3f4410, .magic: dead4ead, .owner: swapper/0/0, .owner_cpu: 0
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W    3.10.17-16839-ge4a1bef #1320
[&lt;80014cbc&gt;] (unwind_backtrace+0x0/0x138) from [&lt;8001251c&gt;] (show_stack+0x10/0x14)
[&lt;8001251c&gt;] (show_stack+0x10/0x14) from [&lt;802816ac&gt;] (do_raw_spin_lock+0x108/0x184)
[&lt;802816ac&gt;] (do_raw_spin_lock+0x108/0x184) from [&lt;806a22b0&gt;] (_raw_spin_lock_irqsave+0x54/0x60)
[&lt;806a22b0&gt;] (_raw_spin_lock_irqsave+0x54/0x60) from [&lt;802f5754&gt;] (uart_write+0x38/0xe0)
[&lt;802f5754&gt;] (uart_write+0x38/0xe0) from [&lt;80455270&gt;] (hci_uart_tx_wakeup+0xa4/0x168)
[&lt;80455270&gt;] (hci_uart_tx_wakeup+0xa4/0x168) from [&lt;802dab18&gt;] (tty_wakeup+0x50/0x5c)
[&lt;802dab18&gt;] (tty_wakeup+0x50/0x5c) from [&lt;802f81a4&gt;] (imx_rtsint+0x50/0x80)
[&lt;802f81a4&gt;] (imx_rtsint+0x50/0x80) from [&lt;802f88f4&gt;] (imx_int+0x158/0x17c)
[&lt;802f88f4&gt;] (imx_int+0x158/0x17c) from [&lt;8007abe0&gt;] (handle_irq_event_percpu+0x50/0x194)
[&lt;8007abe0&gt;] (handle_irq_event_percpu+0x50/0x194) from [&lt;8007ad60&gt;] (handle_irq_event+0x3c/0x5c)
--------------------------------------------------------------------

This patch adds more limits to the @write_wakeup, the one who wants to
implemet the @write_wakeup should follow the limits which avoid the deadlock.

Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the uart_handle_cts_change(), uart_write_wakeup() is called after
we call @uart_port-&gt;ops-&gt;start_tx().

The Documentation/serial/driver tells us:
-----------------------------------------------
  start_tx(port)
	Start transmitting characters.

	Locking: port-&gt;lock taken.
	Interrupts: locally disabled.
-----------------------------------------------

So when the uart_write_wakeup() is called, the port-&gt;lock is taken by
the upper. See the following callstack:

	|_ uart_write_wakeup
	   |_ tty_wakeup
	      |_ ld-&gt;ops-&gt;write_wakeup

With the port-&gt;lock held, we call the @write_wakeup. Some implemetation of
the @write_wakeup does not notice that the port-&gt;lock is held, and it still
tries to send data with uart_write() which will try to grab the prot-&gt;lock.
A dead lock occurs, see the following log caught in the Bluetooth by uart:

--------------------------------------------------------------------
BUG: spinlock lockup suspected on CPU#0, swapper/0/0
 lock: 0xdc3f4410, .magic: dead4ead, .owner: swapper/0/0, .owner_cpu: 0
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W    3.10.17-16839-ge4a1bef #1320
[&lt;80014cbc&gt;] (unwind_backtrace+0x0/0x138) from [&lt;8001251c&gt;] (show_stack+0x10/0x14)
[&lt;8001251c&gt;] (show_stack+0x10/0x14) from [&lt;802816ac&gt;] (do_raw_spin_lock+0x108/0x184)
[&lt;802816ac&gt;] (do_raw_spin_lock+0x108/0x184) from [&lt;806a22b0&gt;] (_raw_spin_lock_irqsave+0x54/0x60)
[&lt;806a22b0&gt;] (_raw_spin_lock_irqsave+0x54/0x60) from [&lt;802f5754&gt;] (uart_write+0x38/0xe0)
[&lt;802f5754&gt;] (uart_write+0x38/0xe0) from [&lt;80455270&gt;] (hci_uart_tx_wakeup+0xa4/0x168)
[&lt;80455270&gt;] (hci_uart_tx_wakeup+0xa4/0x168) from [&lt;802dab18&gt;] (tty_wakeup+0x50/0x5c)
[&lt;802dab18&gt;] (tty_wakeup+0x50/0x5c) from [&lt;802f81a4&gt;] (imx_rtsint+0x50/0x80)
[&lt;802f81a4&gt;] (imx_rtsint+0x50/0x80) from [&lt;802f88f4&gt;] (imx_int+0x158/0x17c)
[&lt;802f88f4&gt;] (imx_int+0x158/0x17c) from [&lt;8007abe0&gt;] (handle_irq_event_percpu+0x50/0x194)
[&lt;8007abe0&gt;] (handle_irq_event_percpu+0x50/0x194) from [&lt;8007ad60&gt;] (handle_irq_event+0x3c/0x5c)
--------------------------------------------------------------------

This patch adds more limits to the @write_wakeup, the one who wants to
implemet the @write_wakeup should follow the limits which avoid the deadlock.

Signed-off-by: Huang Shijie &lt;b32955@freescale.com&gt;
Signed-off-by: Felipe Balbi &lt;balbi@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
