kernel-hacking-2024-linux-s.../arch/arm
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
..
boot
common Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
configs omap3 : Enable TWL4030 Keypad for Zoom2 and Zoom3 boards 2009-12-11 16:16:37 -08:00
include/asm Merge branch 'for-2.6.33' of git://git.kernel.dk/linux-2.6-block 2009-12-08 08:19:16 -08:00
kernel Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-12-08 08:12:43 -08:00
lib
mach-aaec2000
mach-at91 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-12-09 19:52:01 -08:00
mach-bcmring Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-clps711x
mach-davinci Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-12-09 19:52:01 -08:00
mach-dove
mach-ebsa110
mach-ep93xx
mach-footbridge
mach-gemini
mach-h720x
mach-integrator
mach-iop13xx Merge branch 'devel-stable' into devel 2009-12-05 10:35:33 +00:00
mach-iop32x
mach-iop33x
mach-ixp4xx
mach-ixp23xx
mach-ixp2000
mach-kirkwood
mach-ks8695
mach-l7200
mach-lh7a40x
mach-loki
mach-mmp
mach-msm
mach-mv78xx0
mach-mx1
mach-mx2
mach-mx3
mach-mx25
mach-mxc91231
mach-netx
mach-nomadik
mach-ns9xxx
mach-omap1 omap1: LCD_DMA: Use some define rather than a hexadecimal 2009-12-11 16:16:36 -08:00
mach-omap2 omap: serial: fix non-empty uart fifo read abort 2009-12-11 16:16:37 -08:00
mach-orion5x
mach-pnx4008
mach-pxa Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-realview
mach-rpc
mach-s3c24a0/include/mach
mach-s3c2400 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2410 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2412 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2440 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2442 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c2443
mach-s3c6400 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s3c6410 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-s5pc100 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-sa1100 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-shark
mach-stmp37xx
mach-stmp378x
mach-u300 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
mach-ux500
mach-versatile
mach-w90x900
mm Merge branch 'devel-stable' into devel 2009-12-05 10:35:33 +00:00
nwfpe
oprofile
plat-iop
plat-mxc Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
plat-nomadik
plat-omap omap3: id code detection 3525 vs 3515 2009-12-11 16:16:37 -08:00
plat-orion
plat-pxa
plat-s3c Merge branch 's3c24xx-updates' of git://git.fluff.org/bjdooks/linux 2009-12-09 19:45:58 -08:00
plat-s3c24xx Merge branch 's3c24xx-updates' of git://git.fluff.org/bjdooks/linux 2009-12-09 19:45:58 -08:00
plat-s3c64xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
plat-s5pc1xx Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-12-09 19:43:33 -08:00
plat-samsung
plat-stmp3xxx
tools
vfp
Kconfig Merge branch 'devel-stable' into devel 2009-12-05 10:35:33 +00:00
Kconfig-nommu
Kconfig.debug
Makefile Merge branch 'devel-stable' into devel 2009-12-05 10:35:33 +00:00