Subject: [PATCH v2 0/3] tty: serial: OMAP: work around broken IP block, driver

From: [email-masked] (Paul Walmsley)
Date: Wed, 25 Jan 2012 19:50:32 -0700

[ This series is targeted for merging during v3.3-rc ]

Hi

Here's an updated version of OMAP serial bugfix series against v3.3-rc1.
This revision has:

- reduced TX path interrupts by 5x compared to the first version

- a fix for the power management regression in v3.3-rc1 caused by the
  bogus wakeup latency computation

- left the the TX FIFO threshold unchanged - this is left for a 3.4 patch
  series

- improved commit messages

This series is also available via git in git://git.pwsan.com/linux-2.6
in the branch "omap_serial_fixes_3.3rc".

...

On v3.3-rc1, the OMAP serial console doesn't behave properly when
power management is enabled (the default with omap2plus_defconfig).
This seems to be due to one or more silicon bugs in the UART IP block
and a bug in the OMAP serial driver.

This patch series works around these problems.  It's been tested under
the following conditions:

On 35xx Beagleboard
 - in PIO mode
   - with CPUidle enabled
     - with off-mode disabled
     - with off-mode enabled
   - with CPUidle disabled
     - with off-mode disabled
     - with off-mode enabled
 - in DMA mode
   - with CPUidle enabled
     - with off-mode disabled
     - with off-mode enabled
   - with CPUidle disabled
     - with off-mode disabled
     - with off-mode enabled

On N800 (242x)
 - in PIO mode
   - with CPUidle disabled

On 4430 ES2 Pandaboard
 - in PIO mode
   - with CPUidle disabled
 - in DMA mode
   - with CPUidle disabled

- Paul

---

omap_serial_fixes_3.3rc
   text	   data	    bss	    dec	    hex	filename
6592293	 678588	5590684	12861565	 c4407d	vmlinux.orig
6592429	 678588	5590684	12861701	 c44105	vmlinux.patched

Paul Walmsley (3):
      tty: serial: OMAP: use a 1-byte RX FIFO threshold in PIO mode
      tty: serial: OMAP: block idle while the UART is transferring data in PIO mode
      tty: serial: omap-serial: wakeup latency constraint is in microseconds, not milliseconds

 arch/arm/mach-omap2/serial.c     |    8 ++++----
 drivers/tty/serial/omap-serial.c |   30 +++++++++++++++++++++++++-----
 2 files changed, 29 insertions(+), 9 deletions(-)