original_kernel/arch/arm/mach-omap2
vikram pandita ce13d4716a omap: serial: fix non-empty uart fifo read abort
OMAP3xxx and OMAP4430 UART IP blocks have a restriction wrt RX FIFO.
Empty RX fifo read causes an abort.

OMAP3xxx:
	UART IP revision >= 0x52 have this issue
	MVR register format is:
	Bits  Field Name  Description  				Type  Reset
	31:8   RESERVED 					RO  	0x0
	7:4    MAJOR  	Major revision number of the module.  	RO  	0x--
	3:0    MINOR  	Minor revision number of the module.  	RO  	0x--

OMAP4xxx:
	All revisions have this issue
	Revision id check is not used as the format of MVR resigster has changed
	For omap4 MVR register reads as: 0x50410602 => Revision id = 0x0602
	Format of MVR register on omap4 is: (Courtesy: Cousson, Benoit)
	Bits  Field Name  Description  				Type  Reset
	31:30 SCHEME  	Scheme revision number of module  	RO  	0x1
	29:28 RESERVED   					RO  	0x1
	27:16 FUNC  	Function revision number of module  	RO  	0x041
	15:11 RTL  		Rtl revision number of module  	RO  	0x00
	10:8  MAJOR 	Major revision number of the module.  	RO  	0x6
	7:6   CUSTOM  	Custom revision number of the module.  	RO  	0x0
	5:0   MINOR  	Minor revision number of the module.  	RO  	0x02

Override the default 8250 read handler: mem_serial_in()
by a custom handler: serial_in_8250()
which makes sure that RX fifo is not read when empty

tested on zoom3(3630) board

Cc: Benoit Cousson <b-cousson@ti.com>
Signed-off-by: Vikram Pandita <vikram.pandita@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2009-12-11 16:16:37 -08:00
..
include/mach
Kconfig omap3: cm-t35: add mux initialization 2009-12-11 16:16:35 -08:00
Makefile omap3: Board file of Always Innovating OMAP3-based Touch Book 2009-12-11 16:16:34 -08:00
Makefile.boot
board-2430sdp.c
board-3430sdp.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
board-3630sdp.c omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
board-4430sdp.c
board-am3517evm.c omap: mux: Add new style init functions to omap3 board-*.c files 2009-12-11 16:16:32 -08:00
board-apollon.c omap: use smc91x_platdata to setup smc91x 2009-12-11 16:16:33 -08:00
board-cm-t35.c omap3: cm-t35: add mux initialization 2009-12-11 16:16:35 -08:00
board-generic.c
board-h4.c
board-igep0020.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
board-ldp.c omap: mux: Add new style init functions to omap3 board-*.c files 2009-12-11 16:16:32 -08:00
board-n8x0.c
board-omap3beagle.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
board-omap3evm.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
board-omap3pandora.c omap3: pandora: board file updates for .33 2009-12-11 16:16:34 -08:00
board-omap3touchbook.c omap3: Board file of Always Innovating OMAP3-based Touch Book 2009-12-11 16:16:34 -08:00
board-overo.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
board-rx51-peripherals.c omap3: rx51: Use wl1251 in SPI mode 3 2009-12-11 16:16:37 -08:00
board-rx51-sdram.c
board-rx51.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
board-zoom-debugboard.c
board-zoom-peripherals.c omap3: Zoom2/3: Update hsmmc board config params 2009-12-11 16:16:37 -08:00
board-zoom2.c omap: mux: Add new style init functions to omap3 board-*.c files 2009-12-11 16:16:32 -08:00
board-zoom3.c omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
clock.c ARM: OMAP4: PM: Add init api for DPLL nodes 2009-12-11 17:00:47 -07:00
clock.h ARM: OMAP4: PM: Add init api for DPLL nodes 2009-12-11 17:00:47 -07:00
clock2xxx.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock2xxx.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock2xxx_data.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock34xx.c ARM: OMAP4: PM: Move DPLL control apis to dpll.c 2009-12-11 17:00:46 -07:00
clock34xx.h ARM: OMAP4: PM: Move DPLL control apis to dpll.c 2009-12-11 17:00:46 -07:00
clock34xx_data.c OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clock44xx.c ARM: OMAP4: PM: Add support for OMAP4 dpll api's 2009-12-11 17:00:46 -07:00
clock44xx.h ARM: OMAP4: PM: Move DPLL control apis to dpll.c 2009-12-11 17:00:46 -07:00
clock44xx_data.c ARM: OMAP4: PM: Add init api for DPLL nodes 2009-12-11 17:00:47 -07:00
clock_common_data.c OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clockdomain.c OMAP clockdomain/powerdomain: remove CONFIG_OMAP_DEBUG_{CLOCK,POWER}DOMAIN 2009-12-11 17:00:40 -07:00
clockdomains.h
cm-regbits-24xx.h
cm-regbits-34xx.h
cm-regbits-44xx.h ARM: OMAP4: PM: Adds CM1/2 register field masks 2009-12-11 17:00:45 -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: Add dummy hooks for OMAP4 dpll api's 2009-12-11 17:00:46 -07:00
cm4xxx.c
cm44xx.h ARM: OMAP4: PM: Adds CM1/2 register defs for OMAP4 2009-12-11 17:00:45 -07:00
control.c
cpuidle34xx.c
devices.c omap: mux: Replace omap_cfg_reg() with new style signal or gpio functions 2009-12-11 16:16:32 -08:00
dpll.c ARM: OMAP4: PM: Add support for OMAP4 dpll api's 2009-12-11 17:00:46 -07:00
emu.c
gpmc-onenand.c
gpmc-smc91x.c omap: use smc91x_platdata to setup smc91x 2009-12-11 16:16:33 -08:00
gpmc.c ARM: OMAP4: PM: Add dummy hooks for OMAP4 dpll api's 2009-12-11 17:00:46 -07:00
i2c.c omap: Split i2c platform init for mach-omap1 and mach-omap2 2009-12-11 16:16:32 -08:00
id.c omap3: id code detection 3525 vs 3515 2009-12-11 16:16:37 -08:00
io.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
iommu2.c
irq.c
mailbox.c
mcbsp.c
mmc-twl4030.c
mmc-twl4030.h
mux.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
mux.h omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
mux34xx.c omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
mux34xx.h omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08: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
omap3-iommu.c
omap_hwmod.c OMAP: hwmod: warn on missing clockdomain 2009-12-11 17:00:44 -07:00
omap_hwmod_34xx.h
omap_hwmod_2420.h
omap_hwmod_2430.h
opp2xxx.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
opp2420_data.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
opp2430_data.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
pm-debug.c OMAP powerdomain/PM: use symbolic constants for the max number of power states 2009-12-11 17:00:41 -07:00
pm.h
pm24xx.c
pm34xx.c
powerdomain.c OMAP3: PM: Fix for MPU power domain MEM BANK position 2009-12-11 17:00:42 -07:00
powerdomains.h
powerdomains24xx.h
powerdomains34xx.h OMAP3: PM: Fix for MPU power domain MEM BANK position 2009-12-11 17:00:42 -07:00
prcm-common.h ARM: OMAP4: PM: Adds PRM register shift and mask bits 2009-12-11 17:00:45 -07:00
prcm.c ARM: OMAP4: PM: Fix the PRM and CM base addresses 2009-12-11 17:00:44 -07:00
prm-regbits-24xx.h
prm-regbits-34xx.h
prm-regbits-44xx.h ARM: OMAP4: PM: Adds PRM register shift and mask bits 2009-12-11 17:00:45 -07:00
prm.h ARM: OMAP4: PM: Adds PRM register defs for OMAP4 2009-12-11 17:00:45 -07:00
prm44xx.h ARM: OMAP4: PM: Adds PRM register defs for OMAP4 2009-12-11 17:00:45 -07:00
sdram-hynix-h8mbx00u0mer-0em.h
sdram-micron-mt46h32m32lf-6.h
sdram-qimonda-hyb18m512160af-6.h
sdrc.c
sdrc.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
sdrc2xxx.c
serial.c omap: serial: fix non-empty uart fifo read abort 2009-12-11 16:16:37 -08:00
sleep24xx.S
sleep34xx.S
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
sram243x.S
timer-gp.c
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
usb-tusb6010.c