1
linux/arch/arm/mach-omap2
Santosh Shilimkar e03d37d859 omap3/4: uart: fix full-fifo write abort
This patch is addition to the already merged commit on non-empty
uart fifo read abort. "ce13d4716a276f4331d78ba28a5093a63822ab95"

OMAP3630 and OMAP4430 UART IP blocks have a restriction on TX FIFO
too. If you try to write to the tx fifo when it is full, the system aborts.

More details on this thread are here:
http://www.mail-archive.com/linux-omap@vger.kernel.org/msg19447.html

This can be easily reproducible by not suppressing interconnect errors or
long duration testing where continuous prints over console from multiple
threads. This patch is addressing the issue by ensuring that write is
not issued while fifo is full. A timeout is added to avoid any hang
on fifo-full for 10 mS which is unlikely case.

Patch is validated on OMAP3630 and OMAP4 SDP.

V2 version removed the additional 1 uS on every TX as per
Tony's suggestion

Signed-off-by: Woodruff Richard <r-woodruff2@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
CC: Ghorai Sukumar <s-ghorai@ti.com>
Reviewed-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-02-23 10:57:40 -08:00
..
include/mach AM35xx: Introduce am35xx.h file 2010-02-15 10:03:35 -08:00
board-2430sdp.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-3430sdp.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-3630sdp.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-4430sdp.c omap4: multi-omap: Allow build to work 2010-02-23 10:57:40 -08:00
board-am3517evm.c AM3517: Enable I2C-GPIO Expander driver support for AM3517EVM 2010-02-19 15:22:17 -08:00
board-apollon.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-cm-t35.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-devkit8000.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-generic.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-h4.c omap: convert boards to use physmap-flash 2010-02-15 10:03:32 -08:00
board-igep0020.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-ldp.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-n8x0.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-omap3beagle.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-omap3evm.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-omap3pandora.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-omap3touchbook.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-overo.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-rx51-peripherals.c omap: RX51: Remux to pull eMMC lines down when powering off 2010-02-15 10:03:34 -08:00
board-rx51-sdram.c omap3: rx51: Add SDRAM init 2009-11-22 10:24:33 -08:00
board-rx51.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
board-sdp-flash.c omap3: SDP: Introducing 'board-sdp-flash.c' for flash init 2010-02-15 10:03:33 -08:00
board-zoom2.c omap2/3/4: Fix omap2_map_common_io for multi-omap 2010-02-15 09:26:58 -08:00
board-zoom3.c omap: zoom3: enable ehci support 2010-02-17 14:09:23 -08:00
board-zoom-debugboard.c omap3: zoom: rename zoom2 name to generic zoom 2009-11-22 10:24:33 -08:00
board-zoom-peripherals.c omap: musb: Pass board specific data from board file 2010-02-19 15:22:17 -08:00
clkt2xxx_apll.c OMAP2xxx clock: move the APLL clock code into mach-omap2/clkt2xxx_apll.c 2010-01-28 18:13:49 -07:00
clkt2xxx_dpllcore.c OMAP2xxx clock: move the DPLL+CORE composite clock code into mach-omap2/clkt2xxx_dpllcore.c 2010-01-26 20:13:06 -07:00
clkt2xxx_osc.c OMAP2xxx clock: move osc_clk code into mach-omap2/clkt2xxx_osc.c 2010-01-28 18:13:49 -07:00
clkt2xxx_sys.c OMAP2xxx clock: move sys_clk code into mach-omap2/clkt2xxx_sys.c 2010-01-28 18:13:49 -07:00
clkt2xxx_virt_prcm_set.c OMAP2xxx clock: move the DVFS virtual clock code into mach-omap2/clkt2xxx_virt_prcm_set.c 2010-01-26 20:13:06 -07:00
clkt34xx_dpll3m2.c OMAP3 clock: split out DPLL3 M2 divider functions into mach-omap2/clkt34xx_dpll3m2.c 2010-01-28 18:13:50 -07:00
clkt_clksel.c OMAP2/3/4 clock: move clksel clock functions into mach-omap2/clkt_clksel.c 2010-01-26 20:13:04 -07:00
clkt_dpll.c OMAP2/3/4 clock: move DPLL clock functions into mach-omap2/clkt_dpll.c 2010-01-26 20:13:03 -07:00
clock2xxx_data.c OMAP2/3/4 clock: rename and clean the omap2_clk_init() functions 2010-01-29 10:14:22 -07:00
clock2xxx.c OMAP2/3/4 clock: omap2_clk_prepare_for_reboot() is OMAP2xxx-only 2010-01-29 10:14:22 -07:00
clock2xxx.h OMAP2/3/4 clock: rename and clean the omap2_clk_init() functions 2010-01-29 10:14:22 -07:00
clock34xx_data.c omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_ops 2010-02-15 09:27:25 -08:00
clock34xx.c omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_ops 2010-02-15 09:27:25 -08:00
clock34xx.h omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_ops 2010-02-15 09:27:25 -08:00
clock44xx_data.c omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_ops 2010-02-15 09:27:25 -08:00
clock44xx.c omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_ops 2010-02-15 09:27:25 -08:00
clock44xx.h omap3/4: Fix compile for multi-omap for clkops_noncore_dpll_ops 2010-02-15 09:27:25 -08:00
clock_common_data.c OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clock.c OMAP2/3/4 clock: combine all omap2_clk_functions 2010-01-26 20:13:04 -07:00
clock.h omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2 2010-02-15 09:27:01 -08:00
clockdomain.c OMAP clockdomain/powerdomain: improve documentation 2010-01-26 20:13:02 -07:00
clockdomains44xx.h ARM: OMAP4 clock domains : Add the missing Clock Domain Structure 2010-01-26 20:12:58 -07:00
clockdomains.h omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2 2010-02-15 09:27:01 -08:00
cm4xxx.c
cm44xx.h ARM: OMAP4: PM: Adds CM1/2 register defs for OMAP4 2009-12-11 17:00:45 -07:00
cm-regbits-24xx.h
cm-regbits-34xx.h
cm-regbits-44xx.h OMAP4: PRCM: Define shift macros as n instead of 1 << n 2010-01-29 10:14:22 -07:00
cm.c OMAP clock/hwmod: fix off-by-one errors 2009-12-11 17:00:43 -07:00
cm.h ARM: OMAP4: PM: Make OMAP3 Clock-domain framework compatible for OMAP4. 2010-01-26 20:12:53 -07:00
control.c OMAP3: PM: Program SDRC to send self refresh on timeout of AUTO_CNT 2009-11-11 14:42:28 -08:00
cpuidle34xx.c OMAP3: CPUidle: Fixed timer resolution 2010-01-20 18:16:02 -08:00
devices.c omap2/3: Fix initcalls for multi-omap 2010-02-15 09:27:05 -08:00
dpll3xxx.c OMAP3 DPLL: reorganize static functions 2010-01-29 10:14:22 -07:00
emu.c omap2/3: Fix initcalls for multi-omap 2010-02-15 09:27:05 -08:00
gpmc-nand.c omap2/3/4: Introducing 'gpmc-nand.c' for GPMC specific NAND init 2010-02-15 10:03:33 -08:00
gpmc-onenand.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
gpmc-smc91x.c omap: use smc91x_platdata to setup smc91x 2009-12-11 16:16:33 -08:00
gpmc.c omap2/3/4: gpmc: kill compile warning 2010-02-15 10:03:33 -08:00
hsmmc.c omap_hsmmc: Allow for a shared VccQ 2010-02-15 10:03:34 -08:00
hsmmc.h omap_hsmmc: Allow for a shared VccQ 2010-02-15 10:03:34 -08:00
i2c.c omap: Split i2c platform init for mach-omap1 and mach-omap2 2009-12-11 16:16:32 -08:00
id.c ARM: OMAP4: PM: OMAP4 essential basic initialisations. 2010-01-26 20:12:51 -07:00
io.c omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3 2010-02-15 09:27:02 -08:00
iommu2.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
irq.c OMAP2/3: IRQ: ensure valid base address 2010-02-03 08:48:06 -08:00
Kconfig Add minimal support for DevKit8000 2010-02-19 15:22:17 -08:00
mailbox.c omap2/3/4: mailbox: kill compile warning in mailbox.c 2010-02-15 10:03:33 -08:00
Makefile Add minimal support for DevKit8000 2010-02-19 15:22:17 -08:00
Makefile.boot
mcbsp.c McBSP: OMAP3: Add sidetone feature 2010-02-23 10:57:39 -08:00
mux34xx.c omap: Fix 3630 mux errors 2010-02-03 08:48:06 -08:00
mux34xx.h omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
mux.c Merge branch 'omap-fixes-for-linus' into omap-for-linus 2010-02-17 14:08:58 -08:00
mux.h omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3 2010-02-15 09:27:02 -08:00
omap3-iommu.c omap: iommu: reorganize 2009-11-22 10:24:32 -08:00
omap_hwmod_34xx.h omap3: Replace ARCH_OMAP34XX with ARCH_OMAP3 2010-02-15 09:27:02 -08:00
omap_hwmod_2420.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
omap_hwmod_2430.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
omap_hwmod.c OMAP: hwmod: add API for slave idlemode setting 2010-01-26 20:13:03 -07:00
omap-headsmp.S OMAP4: AuxCoreBoot registers only accessible in secure mode 2009-12-11 16:16:35 -08:00
omap-smp.c OMAP4: Remove the secondary wait loop 2009-12-11 16:16:35 -08:00
opp2xxx.h omap2/3: Multiboot compile fixes to compile in omap2 and omap3 2010-02-15 09:26:55 -08:00
opp2420_data.c OMAP2xxx OPP: clean up comments in OPP data 2010-01-08 15:23:15 -07:00
opp2430_data.c OMAP2xxx OPP: clean up comments in OPP data 2010-01-08 15:23:15 -07:00
pm24xx.c OMAP clockdomains: add usecounting for wakeup and sleep dependencies 2010-01-26 20:13:01 -07:00
pm34xx.c OMAP clockdomains: add usecounting for wakeup and sleep dependencies 2010-01-26 20:13:01 -07:00
pm-debug.c OMAP clockdomain/powerdomain: remove runtime register/unregister 2010-01-26 20:13:00 -07:00
pm.h OMAP3: PM debug: fix build error when !CONFIG_DEBUG_FS 2010-01-20 18:16:05 -08:00
powerdomain.c OMAP clockdomain/powerdomain: improve documentation 2010-01-26 20:13:02 -07:00
powerdomains24xx.h omap2: Convert ARCH_OMAP24XX to ARCH_OMAP2 2010-02-15 09:27:01 -08:00
powerdomains34xx.h OMAP2+ powerdomains/clockdomains: prepare for multi-OMAP configs 2010-01-29 10:14:23 -07:00
powerdomains44xx.h ARM: OMAP4: PM: Add the Autogenerated OMAP4 specific power domain framework. 2010-01-26 20:12:52 -07:00
powerdomains.h OMAP2+ powerdomains/clockdomains: prepare for multi-OMAP configs 2010-01-29 10:14:23 -07:00
prcm-common.h ARM: OMAP4: PM: OMAP4 Power Domain Porting Related Clean-up. 2010-01-26 20:12:51 -07:00
prcm.c OMAP2/3/4 clock: omap2_clk_prepare_for_reboot() is OMAP2xxx-only 2010-01-29 10:14:22 -07:00
prm44xx.h OMAP4: PRCM: Fix the base address for CHIRONSS reg defines 2010-01-20 13:35:27 -07:00
prm-regbits-24xx.h
prm-regbits-34xx.h OMAP3: PM: Enable IO-CHAIN wakeup 2009-11-11 14:42:28 -08:00
prm-regbits-44xx.h OMAP4: PRCM: Define shift macros as n instead of 1 << n 2010-01-29 10:14:22 -07:00
prm.h ARM: OMAP4: PM: OMAP4 Power Domain Porting Related Clean-up. 2010-01-26 20:12:51 -07:00
sdram-hynix-h8mbx00u0mer-0em.h omap3: zoom: Introduce zoom3 board support 2009-11-22 10:24:33 -08:00
sdram-micron-mt46h32m32lf-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdram-numonyx-m65kxxxxam.h omap3: SDRC: add timing data for Numonyx M65KxxxxAM 2010-02-17 17:23:20 -08:00
sdram-qimonda-hyb18m512160af-6.h omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdrc2xxx.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sdrc.c OMAP2: Add funcs for writing SMS_ROT_* registers 2009-12-09 11:44:32 +02:00
sdrc.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
serial.c omap3/4: uart: fix full-fifo write abort 2010-02-23 10:57:40 -08:00
sleep24xx.S omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00
sleep34xx.S ARM: OMAP4: PM: OMAP4 Power Domain Porting Related Clean-up. 2010-01-26 20:12:51 -07:00
sram34xx.S OMAP3: SDRC: Place SDRC AC timing and MR changes in CORE DVFS SRAM code behind Kconfig 2009-12-11 17:00:42 -07:00
sram242x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
sram243x.S omap: Split OMAP2_IO_ADDRESS to L3 and L4 2009-10-19 15:25:31 -07:00
timer-gp.c PM debug: allow configurable wakeup from suspend on OMAP GPtimer 2009-11-11 14:42:28 -08:00
timer-mpu.c
usb-ehci.c omap: mux: Replace omap_cfg_reg() with new style signal or gpio functions 2009-12-11 16:16:32 -08:00
usb-musb.c omap: musb: Add USB support to 4430 SDP board file 2010-02-23 10:57:39 -08:00
usb-tusb6010.c omap: headers: Move remaining headers from include/mach to include/plat 2009-10-20 09:40:47 -07:00