<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/drivers/tty/serial/imx.c, branch dev-4.6</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev-4.6</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev-4.6'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2016-02-07T06:53:43+00:00</updated>
<entry>
<title>serial: imx: Fix suspend / resume.</title>
<updated>2016-02-07T06:53:43+00:00</updated>
<author>
<name>Martin Fuzzey</name>
<email>mfuzzey@parkeon.com</email>
</author>
<published>2016-01-05T15:53:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=29add68d16474b7e8e3eadd94da4e909533b99d2'/>
<id>urn:sha1:29add68d16474b7e8e3eadd94da4e909533b99d2</id>
<content type='text'>
When a non console i.MX UART is enabled in the device tree,
system suspend fails due to an unprepared clock:

[  638.794563] PM: Syncing filesystems ... done.
[  638.878902] Freezing user space processes ... (elapsed 0.002 seconds) done.
[  638.888454] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[  638.996697] PM: suspend of devices complete after 97.200 msecs
[  639.002611] PM: suspend devices took 0.100 seconds
[  639.013020] PM: late suspend of devices complete after 2.288 msecs
[  639.021486] ------------[ cut here ]------------
[  639.026147] WARNING: CPU: 0 PID: 488 at drivers/clk/clk.c:732 clk_core_enable+0xc0/0x12c()
[  639.034413] Modules linked in:
[  639.037490] CPU: 0 PID: 488 Comm: system_server Tainted: G        W       4.4.0-rc5-pknbsp-svn2214-atag-v4.4-rc5-121-gebfd9cb #1304
[  639.049312] Hardware name: Freescale i.MX53 (Device Tree Support)
[  639.055444] [&lt;c0016d54&gt;] (unwind_backtrace) from [&lt;c00140f8&gt;] (show_stack+0x20/0x24)
[  639.063199] [&lt;c00140f8&gt;] (show_stack) from [&lt;c02c99a0&gt;] (dump_stack+0x20/0x28)
[  639.070442] [&lt;c02c99a0&gt;] (dump_stack) from [&lt;c0024ca8&gt;] (warn_slowpath_common+0x88/0xc0)
[  639.078541] [&lt;c0024ca8&gt;] (warn_slowpath_common) from [&lt;c0024d0c&gt;] (warn_slowpath_null+0x2c/0x34)
[  639.087332] [&lt;c0024d0c&gt;] (warn_slowpath_null) from [&lt;c05171e8&gt;] (clk_core_enable+0xc0/0x12c)
[  639.095777] [&lt;c05171e8&gt;] (clk_core_enable) from [&lt;c05172f8&gt;] (clk_enable+0x2c/0x40)
[  639.103441] [&lt;c05172f8&gt;] (clk_enable) from [&lt;c0349880&gt;] (imx_serial_port_suspend_noirq+0x20/0xe0)
[  639.112336] [&lt;c0349880&gt;] (imx_serial_port_suspend_noirq) from [&lt;c03a26a0&gt;] (dpm_run_callback+0x68/0x16c)
[  639.121825] [&lt;c03a26a0&gt;] (dpm_run_callback) from [&lt;c03a2898&gt;] (__device_suspend_noirq+0xf4/0x22c)
[  639.130705] [&lt;c03a2898&gt;] (__device_suspend_noirq) from [&lt;c03a4b0c&gt;] (dpm_suspend_noirq+0x148/0x30c)
[  639.139764] [&lt;c03a4b0c&gt;] (dpm_suspend_noirq) from [&lt;c00511d4&gt;] (suspend_devices_and_enter+0x2e8/0x6a4)
[  639.149078] [&lt;c00511d4&gt;] (suspend_devices_and_enter) from [&lt;c00518a0&gt;] (pm_suspend+0x310/0x4b8)
[  639.157782] [&lt;c00518a0&gt;] (pm_suspend) from [&lt;c00500ec&gt;] (state_store+0x7c/0xcc)
[  639.165099] [&lt;c00500ec&gt;] (state_store) from [&lt;c02cb6dc&gt;] (kobj_attr_store+0x1c/0x28)
[  639.172858] [&lt;c02cb6dc&gt;] (kobj_attr_store) from [&lt;c01633d4&gt;] (sysfs_kf_write+0x54/0x58)
[  639.180871] [&lt;c01633d4&gt;] (sysfs_kf_write) from [&lt;c01629b4&gt;] (kernfs_fop_write+0x100/0x1c8)
[  639.189152] [&lt;c01629b4&gt;] (kernfs_fop_write) from [&lt;c00fb8b8&gt;] (__vfs_write+0x3c/0xe8)
[  639.196991] [&lt;c00fb8b8&gt;] (__vfs_write) from [&lt;c00fc810&gt;] (vfs_write+0xa4/0x160)
[  639.204307] [&lt;c00fc810&gt;] (vfs_write) from [&lt;c00fcac4&gt;] (SyS_write+0x4c/0x98)
[  639.211363] [&lt;c00fcac4&gt;] (SyS_write) from [&lt;c0010760&gt;] (ret_fast_syscall+0x0/0x3c)

This does not happen for the common case of a single UART used as a console
(since imx_console_setup() already does a prepare)

Signed-off-by: Martin Fuzzey &lt;mfuzzey@parkeon.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: imx: implement handshaking using gpios with the mctrl_gpio helper</title>
<updated>2015-12-14T04:01:47+00:00</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2015-12-13T10:30:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=58362d5be35216f196b4a4d16aa2c6ef938087f0'/>
<id>urn:sha1:58362d5be35216f196b4a4d16aa2c6ef938087f0</id>
<content type='text'>
Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: imx: reorder functions and simplify a bit</title>
<updated>2015-12-14T03:59:48+00:00</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2015-10-18T19:34:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=cc568849370bb131d896f4c5933cc72bf7ee603d'/>
<id>urn:sha1:cc568849370bb131d896f4c5933cc72bf7ee603d</id>
<content type='text'>
Now that imx_mctrl_check is implemented below imx_get_mctrl the former
can call the latter directly instead of via sport-&gt;port.ops-&gt;get_mctrl.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: imx: repair and complete handshaking</title>
<updated>2015-12-14T03:59:48+00:00</updated>
<author>
<name>Uwe Kleine-König</name>
<email>u.kleine-koenig@pengutronix.de</email>
</author>
<published>2015-10-18T19:34:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=90ebc4838666d148eac5bbac6f4044e5b25cd2d6'/>
<id>urn:sha1:90ebc4838666d148eac5bbac6f4044e5b25cd2d6</id>
<content type='text'>
The .get_mctrl callback should not report the status of RTS or LOOP, so
drop this. Instead implement reporting the state of CAR (aka DCD) and
RI.

For .set_mctrl implement setting the DTR line.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: imx: fix a possible NULL dereference</title>
<updated>2015-12-14T03:59:48+00:00</updated>
<author>
<name>LABBE Corentin</name>
<email>clabbe.montjoie@gmail.com</email>
</author>
<published>2015-11-24T14:36:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=5f8b90431fc9613d4559a602a1070b2270ff4444'/>
<id>urn:sha1:5f8b90431fc9613d4559a602a1070b2270ff4444</id>
<content type='text'>
of_match_device could return NULL, and so cause a NULL pointer
dereference later.
Even if the probability of this case is very low, fixing it made
static analyzers happy.
Solving this with of_device_get_match_data made also code simplier.

Signed-off-by: LABBE Corentin &lt;clabbe.montjoie@gmail.com&gt;
Acked-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Merge 4.3-rc5 into tty-next</title>
<updated>2015-10-12T17:54:35+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2015-10-12T17:54:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=378102f364d3fba88b8162df13d639d620e9272c'/>
<id>urn:sha1:378102f364d3fba88b8162df13d639d620e9272c</id>
<content type='text'>
We want the tty fixes and reverts in here as well so that people can
properly test and use it.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>Revert "serial: imx: remove unbalanced clk_prepare"</title>
<updated>2015-10-04T17:51:42+00:00</updated>
<author>
<name>Fabio Estevam</name>
<email>fabio.estevam@freescale.com</email>
</author>
<published>2015-08-18T15:43:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=0c727a42043f79db210cdde0366f9137b9c6bf5a'/>
<id>urn:sha1:0c727a42043f79db210cdde0366f9137b9c6bf5a</id>
<content type='text'>
This reverts commit 9e7b399d6528eac33a6fbfceb2b92af209c3454d.

Commit ("9e7b399d6528ea") causes the following warning and sometimes
also hangs the system:

------------[ cut here ]------------
 WARNING: CPU: 0 PID: 0 at kernel/locking/mutex.c:868 mutex_trylock+0x20c/0x22c()
 DEBUG_LOCKS_WARN_ON(in_interrupt())
 Modules linked in:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc7-next-20150818-00001-g14418a6 #4
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
Backtrace:
[&lt;80012f08&gt;] (dump_backtrace) from [&lt;800130a4&gt;] (show_stack+0x18/0x1c)
r6:00000364 r5:00000000 r4:00000000 r3:00000000
[&lt;8001308c&gt;] (show_stack) from [&lt;807902b8&gt;] (dump_stack+0x88/0xa4)
[&lt;80790230&gt;] (dump_stack) from [&lt;8002a604&gt;] (warn_slowpath_common+0x80/0xbc)
r5:807945c4 r4:80ab3b50
[&lt;8002a584&gt;] (warn_slowpath_common) from [&lt;8002a6e4&gt;] (warn_slowpath_fmt+0x38/0x40)
r8:00000000 r7:8131100c r6:8054c3cc r5:8131300c r4:80b0a570
[&lt;8002a6b0&gt;] (warn_slowpath_fmt) from [&lt;807945c4&gt;] (mutex_trylock+0x20c/0x22c)
r3:8095d0d8 r2:8095ab28
[&lt;807943b8&gt;] (mutex_trylock) from [&lt;8054c3cc&gt;] (clk_prepare_lock+0x14/0xf4)
r7:8131100c r6:be3f0c80 r5:00000037 r4:be3f0c80
[&lt;8054c3b8&gt;] (clk_prepare_lock) from [&lt;8054dbfc&gt;] (clk_prepare+0x18/0x30)
r5:00000037 r4:be3f0c80
[&lt;8054dbe4&gt;] (clk_prepare) from [&lt;8036a600&gt;] (imx_console_write+0x30/0x244)
r4:812d0bc8 r3:8132b9a4

To reproduce the problem we only need to let the board idle for something
like 30 seconds.

Tested on a imx6q-sabresd.

Signed-off-by: Fabio Estevam &lt;fabio.estevam@freescale.com&gt;
Reviewed-by: Eduardo Valentin &lt;edubezval@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: imx: also update RX stats in DMA path</title>
<updated>2015-10-04T17:44:29+00:00</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2015-09-04T15:52:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=abc7882aacdb4b0e110026bff9b52fb783f4ebd8'/>
<id>urn:sha1:abc7882aacdb4b0e110026bff9b52fb783f4ebd8</id>
<content type='text'>
The RX bytecount was only updated in the PIO path and thus
the device erroneously reported a value of 0 if DMA is in
use.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Acked-by: Jiada Wang &lt;jiada_wang@mentor.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: imx: re-enable DMA support without hardware flow control</title>
<updated>2015-10-04T17:43:30+00:00</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2015-09-04T15:52:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=7e11577ef6f31faf4a505e7823bf78b679906aca'/>
<id>urn:sha1:7e11577ef6f31faf4a505e7823bf78b679906aca</id>
<content type='text'>
The commit enabling DMA support even if no flow control is present
was reverted on the grounds that it uncovered a number of bugs in
the code that lead to hanging tty devices and/or missing characters.

After tracking down the issues it is clear that those were generic
bugs and had nothing to do with flow control being present or not,
only that allowing DMA without hardware flow control increased
the exposure of that code a lot.

Now that those bugs are fixed, it should be safe to re-enable DMA
support.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Acked-by: Jiada Wang &lt;jiada_wang@mentor.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: imx: don't use idle condition detect for DMA transfers</title>
<updated>2015-10-04T17:43:06+00:00</updated>
<author>
<name>Lucas Stach</name>
<email>l.stach@pengutronix.de</email>
</author>
<published>2015-09-04T15:52:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=905c0decad28402aa166975023fb88c8f62f93c8'/>
<id>urn:sha1:905c0decad28402aa166975023fb88c8f62f93c8</id>
<content type='text'>
The reference manual states that idle condition detect should not be used
with DMA transfers, as the ROM SDMA scripts don't check those conditions.

The RAM SDMA scripts worked around this, but the change broke compatibility
with the ROM scripts.

The previous commits fixed the DMA burst sizes, so that the aging timer is
now working as described in the reference manual. With this fixed we can
remove the hack of using the idle condition detect to stop the DMA transfer
if there are no new characters incoming.

This should work with both the ROM and RAM SDMA scripts.

Signed-off-by: Lucas Stach &lt;l.stach@pengutronix.de&gt;
Acked-by: Jiada Wang &lt;jiada_wang@mentor.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
