]> git.baikalelectronics.ru Git - kernel.git/commit
Blackfin Serial Driver: fix bug - SIR driver stop receiving randomly
authorGraf Yang <graf.yang@analog.com>
Fri, 2 Jan 2009 13:40:22 +0000 (13:40 +0000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 2 Jan 2009 18:19:34 +0000 (10:19 -0800)
commit132a89a9bed0ffe13cd7291ce7cd47d20f765138
treeadb114b756b95541cefaba89cff38180a074003b
parent84c0cb5c8d452c2ba8d7c2be35a5d3f341452de4
Blackfin Serial Driver: fix bug - SIR driver stop receiving randomly

Bug description:
The IRDA receiver may can't receiving any more after processed some signals.

To duplicate this issue is put three IRDA devices together, one blackfin,
two none blackfin, they will detect each other. Let one none blackfin devices
irdaping the blackfin devices, when it stopped print out ping information,
it is the time that blackfin stoped receiving, the time is random.

The related register bit is OK, the other devices is sending data continuously.
But no interrupt come.

Fixing:
I tried Michael's suggestion that request the UARTx error interrupt, and reset
the IRDA when found FE error. This method helps much, but it can't completely
avoid stop.

Reset the IRDA before every time sending the data is more safe.

Signed-off-by: Graf Yang <graf.yang@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/serial/bfin_5xx.c