<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/tty, branch v3.2.18</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/tty?h=v3.2.18</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/tty?h=v3.2.18'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-05-11T12:14:01Z</updated>
<entry>
<title>drivers/tty/amiserial.c: add missing tty_unlock</title>
<updated>2012-05-11T12:14:01Z</updated>
<author>
<name>Julia Lawall</name>
<email>Julia.Lawall@lip6.fr</email>
</author>
<published>2012-04-19T16:12:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6e59e5037a68d230884c279f4e2b8d8ca60c3f29'/>
<id>urn:sha1:6e59e5037a68d230884c279f4e2b8d8ca60c3f29</id>
<content type='text'>
commit d3a7b83f865b46bb7b5e1ed18a129ce1af349db4 upstream.

tty_unlock is used on all other exits from the function.

Signed-off-by: Julia Lawall &lt;Julia.Lawall@lip6.fr&gt;
Acked-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>pch_uart: Fix dma channel unallocated issue</title>
<updated>2012-05-11T12:14:00Z</updated>
<author>
<name>Tomoya MORINAGA</name>
<email>tomoya.rohm@gmail.com</email>
</author>
<published>2012-04-12T01:47:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=493fe64b95d87298d19d5390f82d822ff37cc38d'/>
<id>urn:sha1:493fe64b95d87298d19d5390f82d822ff37cc38d</id>
<content type='text'>
commit af6d17cdc8c89aeb3101f0d27cd32fc0592b40b2 upstream.

This driver anticipates pch_uart_verify_port() is not called
during installation.
However, actually pch_uart_verify_port() is called during
installation.
As a result, memory access violation occurs like below.

0. initial value: use_dma=0
1. starup()
    - dma channel is not allocated because use_dma=0
2. pch_uart_verify_port()
    - Set use_dma=1
3. UART processing acts DMA mode because use_dma=1
     - memory access violation occurs!

This patch fixes the issue.

Solution:
Whenever pch_uart_verify_port() is called and then
dma channel is not allocated, the channel should be allocated.

Signed-off-by: Tomoya MORINAGA &lt;tomoya.rohm@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
[bwh: Backported to 3.2: adjust context]
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: clps711x: serial driver hungs are a result of call disable_irq within ISR</title>
<updated>2012-05-11T12:13:50Z</updated>
<author>
<name>Alexander Shiyan</name>
<email>shc_work@mail.ru</email>
</author>
<published>2012-03-27T08:22:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=4bbc6c95aa832cc52517d6aa7c0b9848ff6cb9bc'/>
<id>urn:sha1:4bbc6c95aa832cc52517d6aa7c0b9848ff6cb9bc</id>
<content type='text'>
commit 7a6fbc9a887193a1e9f8658703881c528040afbc upstream.

Since 2.6.30-rc1 clps711x serial driver hungs system. This is a result
of call disable_irq from ISR. synchronize_irq waits for end of interrupt
and goes to infinite loop. This patch fix this problem.

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: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>serial: PL011: move interrupt clearing</title>
<updated>2012-04-22T22:31:11Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2012-03-21T19:15:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2d31dab4dc5754f3f0ddc40f607ba19928e4dd82'/>
<id>urn:sha1:2d31dab4dc5754f3f0ddc40f607ba19928e4dd82</id>
<content type='text'>
commit c3d8b76f61586714cdc5f219ba45592a54caaa55 upstream.

Commit 360f748b204275229f8398cb2f9f53955db1503b
"serial: PL011: clear pending interrupts"
attempts to clear interrupts by writing to a
yet-unassigned memory address. This fixes the issue.

The breaking patch is marked for stable so should be
carried along with the other patch.

Cc: Shreshtha Kumar Sahu &lt;shreshthakumar.sahu@stericsson.com&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Cc: Nicolas Pitre &lt;nico@fluxnic.net&gt;
Reported-by: Viresh Kumar &lt;viresh.kumar@st.com&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Tested-by: Grant Likely &lt;grant.likely@secretlab.ca&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>serial: PL011: clear pending interrupts</title>
<updated>2012-04-22T22:31:11Z</updated>
<author>
<name>Linus Walleij</name>
<email>linus.walleij@linaro.org</email>
</author>
<published>2012-03-13T12:27:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=dc39a21db504923b95cf2db14280a5105a296c36'/>
<id>urn:sha1:dc39a21db504923b95cf2db14280a5105a296c36</id>
<content type='text'>
commit 9b96fbacda34079dea0638ee1e92c56286f6114a upstream.

Chanho Min reported that when the boot loader transfers
control to the kernel, there may be pending interrupts
causing the UART to lock up in an eternal loop trying to
pick tokens from the FIFO (since the RX interrupt flag
indicates there are tokens) while in practice there are
no tokens - in fact there is only a pending IRQ flag.

This patch address the issue with a combination of two
patches suggested by Russell King that clears and mask
all interrupts at probe() and clears any pending error
and RX interrupts at port startup time.

We suspect the spurious interrupts are a side-effect of
switching the UART from FIFO to non-FIFO mode.

Cc: Shreshtha Kumar Sahu &lt;shreshthakumar.sahu@stericsson.com&gt;
Reported-by: Chanho Min &lt;chanho0207@gmail.com&gt;
Suggested-by: Russell King &lt;linux@arm.linux.org.uk&gt;
Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;
Reviewed-by: Jong-Sung Kim &lt;neidhard.kim@lge.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>pch_uart: Fix MSI setting issue</title>
<updated>2012-04-22T22:31:01Z</updated>
<author>
<name>Tomoya MORINAGA</name>
<email>tomoya.rohm@gmail.com</email>
</author>
<published>2012-04-02T05:36:22Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2ecec2f7fd8a421405006382adeb2aba8587baae'/>
<id>urn:sha1:2ecec2f7fd8a421405006382adeb2aba8587baae</id>
<content type='text'>
commit 867c902e07d5677e2a5b54c0435e589513abde48 upstream.

The following patch (MSI setting) is not enough.

commit e463595fd9c752fa4bf06b47df93ef9ade3c7cf0
Author: Alexander Stein &lt;alexander.stein@systec-electronic.com&gt;
Date:   Mon Jul 4 08:58:31 2011 +0200

    pch_uart: Add MSI support

    Signed-off-by: Alexander Stein &lt;alexander.stein@systec-electronic.com&gt;
    Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

To enable MSI mode, PCI bus-mastering must be enabled.
This patch enables the setting.

cc: Alexander Stein &lt;alexander.stein@systec-electronic.com&gt;
Signed-off-by: Tomoya MORINAGA &lt;tomoya.rohm@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>tty: serial: altera_uart: Check for NULL platform_data in probe.</title>
<updated>2012-04-22T22:31:00Z</updated>
<author>
<name>Yuriy Kozlov</name>
<email>ykozlov@ptcusa.com</email>
</author>
<published>2012-03-29T07:55:27Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=41cbea2b945f478ecf7128675e9e0e85b0dc2712'/>
<id>urn:sha1:41cbea2b945f478ecf7128675e9e0e85b0dc2712</id>
<content type='text'>
commit acede70d6561f2d042d9dbb153d9a3469479c0ed upstream.

Follow altera_jtag_uart.  This fixes a crash if there is a mistake in the DTS.

Signed-off-by: Yuriy Kozlov &lt;ykozlov@ptcusa.com&gt;
Signed-off-by: Tobias Klauser &lt;tklauser@distanz.ch&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>serial: sh-sci: fix a race of DMA submit_tx on transfer</title>
<updated>2012-04-02T16:53:10Z</updated>
<author>
<name>Yoshii Takashi</name>
<email>takashi.yoshii.zj@renesas.com</email>
</author>
<published>2012-03-14T07:14:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=46979bfe3c1c2435f7f8190ff0c0994de3cfc471'/>
<id>urn:sha1:46979bfe3c1c2435f7f8190ff0c0994de3cfc471</id>
<content type='text'>
commit 49d4bcaddca977fffdea8b0b71f6e5da96dac78e upstream.

When DMA is enabled, sh-sci transfer begins with
 uart_start()
  sci_start_tx()
    if (cookie_tx &lt; 0) schedule_work()
Then, starts DMA when wq scheduled, -- (A)
 process_one_work()
  work_fn_rx()
   cookie_tx = desc-&gt;submit_tx()
And finishes when DMA transfer ends, -- (B)
 sci_dma_tx_complete()
  async_tx_ack()
  cookie_tx = -EINVAL
  (possible another schedule_work())

This A to B sequence is not reentrant, since controlling variables
(for example, cookie_tx above) are not queues nor lists. So, they
must be invoked as A B A B..., otherwise results in kernel crash.

To ensure the sequence, sci_start_tx() seems to test if cookie_tx &lt; 0
(represents "not used") to call schedule_work().
But cookie_tx will not be set (to a cookie, also means "used") until
in the middle of work queue scheduled function work_fn_tx().

This gap between the test and set allows the breakage of the sequence
under the very frequently call of uart_start().
Another gap between async_tx_ack() and another schedule_work() results
in the same issue, too.

This patch introduces a new condition "cookie_tx == 0" just to mark
it is "busy" and assign it within spin-locked region to fill the gaps.

Signed-off-by: Takashi Yoshii &lt;takashi.yoshii.zj@renesas.com&gt;
Reviewed-by: Guennadi Liakhovetski &lt;g.liakhovetski@gmx.de&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>TTY: Wrong unicode value copied in con_set_unimap()</title>
<updated>2012-04-02T16:52:31Z</updated>
<author>
<name>Liz Clark</name>
<email>liz.clark@hp.com</email>
</author>
<published>2012-03-15T17:33:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9d7203a1946813100a0623289df8c2bbbe832831'/>
<id>urn:sha1:9d7203a1946813100a0623289df8c2bbbe832831</id>
<content type='text'>
commit 4a4c61b7ce26bfc9d49ea4bd121d52114bad9f99 upstream.

Bugzilla 40012: PIO_UNIMAP bug: error updating Unicode-to-font map
https://bugzilla.kernel.org/show_bug.cgi?id=40012

The unicode font map for the virtual console is a 32x32x64 table which
allocates rows dynamically as entries are added.  The unicode value
increases sequentially and should count all entries even in empty
rows.  The defect is when copying the unicode font map in con_set_unimap(),
the unicode value is not incremented properly.  The wrong unicode value
is entered in the new font map.

Signed-off-by: Liz Clark &lt;liz.clark@hp.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>tty: moxa: fix bit test in moxa_start()</title>
<updated>2012-04-02T16:52:31Z</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2012-03-07T10:05:00Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=676ba4178125f06e9bd1d0b539f5644f1cea31a5'/>
<id>urn:sha1:676ba4178125f06e9bd1d0b539f5644f1cea31a5</id>
<content type='text'>
commit 58112dfbfe02d803566a2c6c8bd97b5fa3c62cdc upstream.

This is supposed to be doing a shift before the comparison instead of
just doing a bitwise AND directly.  The current code means the start()
just returns without doing anything.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Acked-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
</feed>
