Blackfin Serial Driver: handle irregular DMA register status in auto start mode
authorSonic Zhang <sonic.zhang@analog.com>
Thu, 11 Jun 2009 12:42:57 +0000 (13:42 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 Jun 2009 15:51:04 +0000 (08:51 -0700)
commit35ff69357949cfff5c3d8e3038b77146872e3bd3
treec0503527f7c27d8e042ba81157955fa24303049a
parentf9d36da9cdc2504cd9bb6034cfaba0673ce2d6df
Blackfin Serial Driver: handle irregular DMA register status in auto start mode

This bug is caused by irregular behavior of DMA register CURR_X_COUNT
and CURR_Y_COUNT when an auto restart uart rx DMA run to last byte in
DMA buffer, trigger the interrupt and stay at this possiton. The status
of current x and y is 0:7 instead of 512:8 or 0:8. The driver doesn't
take care of this case when calculating the position.

URL: http://blackfin.uclinux.org/gf/tracker/5063
Reported-by: Tomasz Motylewski <t.motylewski@bfad.de>
Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/serial/bfin_5xx.c