<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/tty, branch v3.3</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/drivers/tty?h=v3.3</id>
<link rel='self' href='https://git.amat.us/linux/atom/drivers/tty?h=v3.3'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-03-09T03:59:44Z</updated>
<entry>
<title>sh-sci / PM: Avoid deadlocking runtime PM</title>
<updated>2012-03-09T03:59:44Z</updated>
<author>
<name>Rafael J. Wysocki</name>
<email>rjw@sisk.pl</email>
</author>
<published>2012-03-09T03:59:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=048be431e40ee32df8e6c1a2c216693afe3ee358'/>
<id>urn:sha1:048be431e40ee32df8e6c1a2c216693afe3ee358</id>
<content type='text'>
The runtime PM of sh-sci devices is enabled when sci_probe() returns,
so the pm_runtime_put_sync() executed by driver_probe_device()
attempts to suspend the device.  Then, in some situations, a
diagnostic message is printed to the console by one of the runtime
suspend routines handling the sh-sci device, which causes synchronous
runtime resume to be started from the device's own runtime suspend
callback.  This causes rpm_resume() to be run eventually, which sees
the RPM_SUSPENDING status set by rpm_suspend() and waits for it to
change.  However, the device's runtime PM status cannot change at
that point, because the routine that has set it waits for the
rpm_suspend() to return.  A deadlock occurs as a result.

To avoid that make sci_init_single() increment the device's
runtime PM usage counter, so that it cannot be suspended by
driver_probe_device().  That counter has to be decremented
eventually, so make sci_startup() do that before starting to
actually use the device and make sci_shutdown() increment it
again before returning to balance the incrementation carried out by
sci_startup().

Signed-off-by: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Tested-by: Kuninori Morimoto &lt;kuninori.morimoto.gx@renesas.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
</entry>
<entry>
<title>tty/powerpc: early udbg consoles can't be modules</title>
<updated>2012-02-25T00:11:50Z</updated>
<author>
<name>Stephen Rothwell</name>
<email>sfr@canb.auug.org.au</email>
</author>
<published>2012-02-19T20:22:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=f21c6d4a49179f91fd70a41382382f08c780d425'/>
<id>urn:sha1:f21c6d4a49179f91fd70a41382382f08c780d425</id>
<content type='text'>
Fixes these build errors:

ERROR: ".udbg_printf" [drivers/tty/ehv_bytechan.ko] undefined!
ERROR: ".register_early_udbg_console" [drivers/tty/ehv_bytechan.ko] undefined!
ERROR: "udbg_putc" [drivers/tty/ehv_bytechan.ko] undefined!

Cc: Timur Tabi &lt;timur@freescale.com&gt;
Signed-off-by: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: omap-serial: wakeup latency constraint is in microseconds, not milliseconds</title>
<updated>2012-02-09T18:48:36Z</updated>
<author>
<name>Paul Walmsley</name>
<email>paul@pwsan.com</email>
</author>
<published>2012-01-26T02:50:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=197234520bd83aba2199add57a9d2678ee7f9781'/>
<id>urn:sha1:197234520bd83aba2199add57a9d2678ee7f9781</id>
<content type='text'>
The receive FIFO wakeup latency estimate in the omap-serial driver is
three orders of magnitude too small.  This effectively prevents the
MPU from going to a low-power state when CONFIG_CPU_IDLE=y.  This is a
major power management regression and masks some other FIFO-related
bugs in the driver.

Fix by correcting the most egregious problem in the RX wakeup latency
estimate.  There are several other flaws in the estimator; these will
be fixed by a separate patch series intended for 3.4.

The difference in low-power states with this patch can be observed via
debugfs in pm_debug/count.

This estimate does not have any effect when CONFIG_CPU_IDLE=n.

Signed-off-by: Paul Walmsley &lt;paul@pwsan.com&gt;
Cc: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Cc: Alan Cox &lt;alan@linux.intel.com&gt;
Acked-by: Govindraj.R &lt;govindraj.raja@ti.com&gt;
Reviewed-by: Kevin Hilman &lt;khilman@ti.com&gt;
Tested-by: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: OMAP: block idle while the UART is transferring data in PIO mode</title>
<updated>2012-02-09T18:48:34Z</updated>
<author>
<name>Paul Walmsley</name>
<email>paul@pwsan.com</email>
</author>
<published>2012-01-26T02:50:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=be4b0281956c5cae4f63f31f11d07625a6988766'/>
<id>urn:sha1:be4b0281956c5cae4f63f31f11d07625a6988766</id>
<content type='text'>
Prevent OMAP UARTs from going idle while they are still transferring
data in PIO mode.  This works around an oversight in the OMAP UART
hardware present in OMAP34xx and earlier: an idle UART won't send a
wakeup when the TX FIFO threshold is reached.  This causes long delays
during data transmission when the MPU powerdomain enters a low-power
mode.  The MPU interrupt controller is not able to respond to
interrupts when it's in a low-power state, so the TX buffer is not
refilled until another wakeup event occurs.

This fix changes the erratum i291 DMA idle workaround.  Rather than
toggling between force-idle and no-idle, it will toggle between
smart-idle and no-idle.  The important part of the workaround is the
no-idle part, so this shouldn't result in any change in behavior.

This fix should work on all OMAP UARTs.  Future patches intended for
the 3.4 merge window will make this workaround conditional on a
"feature" flag, and will use the OMAP36xx+ TX event wakeup support.

Thanks to Kevin Hilman &lt;khilman@ti.com&gt; for mentioning the erratum i291
workaround, which led to the development of this approach.

Signed-off-by: Paul Walmsley &lt;paul@pwsan.com&gt;
Cc: Alan Cox &lt;alan@linux.intel.com&gt;
Cc: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Acked-by: Govindraj.R &lt;govindraj.raja@ti.com&gt;
Reviewed-by: Kevin Hilman &lt;khilman@ti.com&gt;
Tested-by: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: serial: OMAP: use a 1-byte RX FIFO threshold in PIO mode</title>
<updated>2012-02-09T18:48:32Z</updated>
<author>
<name>Paul Walmsley</name>
<email>paul@pwsan.com</email>
</author>
<published>2012-01-26T02:50:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0ba5f66836c9253c67c469fb4016f94ea30ff2ce'/>
<id>urn:sha1:0ba5f66836c9253c67c469fb4016f94ea30ff2ce</id>
<content type='text'>
In the (default) PIO mode, use a one-byte RX FIFO threshold.  The OMAP
UART IP blocks do not appear to be capable of waking the system under
an RX timeout condition.  Since the previous RX FIFO threshold was 16
bytes, this meant that omap-serial.c did not become aware of any
received data until all those bytes arrived or until another UART
interrupt occurred.  This made the serial console and presumably other
serial applications (GPS, serial Bluetooth) unusable or extremely
slow.  A 1-byte RX FIFO threshold also allows the MPU to enter a
low-power consumption state while waiting for the FIFO to fill.

This can be verified using the serial console by comparing the
behavior when "0123456789abcde" is pasted in from another window, with
the behavior when "0123456789abcdef" is pasted in.  Since the former
string is less than sixteen bytes long, the string is not echoed for
some time, while the latter string is echoed immediately.

DMA operation is unaffected by this patch.

Thanks to Russell King - ARM Linux &lt;linux@arm.linux.org.uk&gt; for some
additional information on the standard behavior of the RX timeout
event, which was used to improve this commit description.

Signed-off-by: Paul Walmsley &lt;paul@pwsan.com&gt;
Cc: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Cc: Govindraj Raja &lt;govindraj.r@ti.com&gt;
Cc: Alan Cox &lt;alan@linux.intel.com&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Reviewed-by: Kevin Hilman &lt;khilman@ti.com&gt;
Tested-by: Kevin Hilman &lt;khilman@ti.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>m32r: relocate drivers back out of 8250 dir</title>
<updated>2012-02-08T23:04:32Z</updated>
<author>
<name>Paul Gortmaker</name>
<email>paul.gortmaker@windriver.com</email>
</author>
<published>2012-02-08T14:05:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c8a64268d187b2ace478d2147ce5c79658aca2d2'/>
<id>urn:sha1:c8a64268d187b2ace478d2147ce5c79658aca2d2</id>
<content type='text'>
Commit 9bef3d4197379a995fa80f81950bbbf8d32e9e8b

	"serial: group all the 8250 related code together"

inadvertently swept up the m32r driver in the move, because
it had comments mentioning 8250 registers within it.  However
these are only there by nature of the driver being based off
the 8250 source code -- the hardware itself does not actually
have any relation to the original 8250 style UARTs.

Reported-by: Jiri Slaby &lt;jirislaby@gmail.com&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>tty: fix a build failure on sparc</title>
<updated>2012-02-03T19:26:07Z</updated>
<author>
<name>Cong Wang</name>
<email>xiyou.wangcong@gmail.com</email>
</author>
<published>2012-02-03T05:22:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e7c9bba7999a8e55efb96d4279c025ca587c5ecd'/>
<id>urn:sha1:e7c9bba7999a8e55efb96d4279c025ca587c5ecd</id>
<content type='text'>
On sparc, there is a build failure:

drivers/tty/serial/8250/8250.c:48:21: error: suncore.h: No such file or directory
drivers/tty/serial/8250/8250.c:3275: error: implicit declaration of function 'sunserial_register_minors'
drivers/tty/serial/8250/8250.c:3305: error: implicit declaration of function 'sunserial_unregister_minors'

this is due to commit 9bef3d4197379a995fa80f81950bbbf8d32e9e8b
(serial: group all the 8250 related code together) moved these files
into 8250/ subdirectory, but forgot to change the reference
to drivers/tty/serial/suncore.h.

Cc: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
Signed-off-by: WANG Cong &lt;xiyou.wangcong@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: samsung: Add support for EXYNOS5250</title>
<updated>2012-02-03T00:11:24Z</updated>
<author>
<name>Kukjin Kim</name>
<email>kgene.kim@samsung.com</email>
</author>
<published>2012-01-31T15:39:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7ccfe015a6e7f01734963f51b0f67126e21068ce'/>
<id>urn:sha1:7ccfe015a6e7f01734963f51b0f67126e21068ce</id>
<content type='text'>
Cc: Thomas Abraham &lt;thomas.abraham@linaro.org&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Kukjin Kim &lt;kgene.kim@samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>serial: samsung: Add support for EXYNOS4212 and EXYNOS4412</title>
<updated>2012-02-03T00:11:24Z</updated>
<author>
<name>Kukjin Kim</name>
<email>kgene.kim@samsung.com</email>
</author>
<published>2012-01-31T15:11:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5f7b6d19723427a1d406c9640fe6f48fa97b5e1a'/>
<id>urn:sha1:5f7b6d19723427a1d406c9640fe6f48fa97b5e1a</id>
<content type='text'>
This should be added for EXYNOS4212 and EXYNOS4412 SoCs.

Cc: Thomas Abraham &lt;thomas.abraham@linaro.org&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Kukjin Kim &lt;kgene.kim@samsung.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drivers/tty/vt/vt_ioctl.c: fix KDFONTOP 32bit compatibility layer</title>
<updated>2012-02-03T00:11:23Z</updated>
<author>
<name>Samuel Thibault</name>
<email>samuel.thibault@ens-lyon.org</email>
</author>
<published>2012-01-30T21:08:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=1bab08c075e250b0a9bec63fd4c06812bd413a3f'/>
<id>urn:sha1:1bab08c075e250b0a9bec63fd4c06812bd413a3f</id>
<content type='text'>
KDFONTOP(GET) currently fails with EIO when being run in a 32bit userland
with a 64bit kernel if the font width is not 8.

This is because the compatibility layer introduced by e9216651 ("tty:
handle VT specific compat ioctls in vt driver") forces the addition of the
KD_FONT_FLAG_OLD flag, which makes con_font_get return EIO in such case.

This flag should *not* be set for KDFONTOP, since it's actually the whole
point of this flag (see comment in con_font_set for instance).

Signed-off-by: Samuel Thibault &lt;samuel.thibault@ens-lyon.org&gt;
Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Arthur Taylor &lt;art@ified.ca&gt;
Cc: Jiri Slaby &lt;jslaby@suse.cz&gt;
Cc: Jiri Olsa &lt;jolsa@redhat.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
