1
linux/drivers
Haavard Skinnemoen 9e6077bd84 atmel_serial: fix break handling
The RXBRK field in the AT91/AT32 USART status register has the
following definition according to e.g. the AT32AP7000 data sheet:

    RXBRK: Break Received/End of Break
    0: No Break received or End of Break detected since the last RSTSTA.
    1: Break Received or End of Break detected since the last RSTSTA.

Thus, for each break, the USART sets the RXBRK bit twice. This patch
modifies the driver to report the break event to the serial core only
once by keeping track of whether a break condition is currently
active. The break_active flag is reset as soon as a character is
received, so even if we miss the start-of-break interrupt this should
do the right thing.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Andrew Victor <andrew@sanpeople.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Ivan Kuten <ivan.kuten@promwad.com>
Cc: Nicolas Ferre <nicolas.ferre@rfo.atmel.com>
Cc: Patrice Vilchez <patrice.vilchez@rfo.atmel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-16 09:05:45 -07:00
..
acorn [PATCH] fix request->cmd == INT cases 2007-07-10 08:03:34 +02:00
acpi PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
amba
ata Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
atm Introduce CONFIG_VIRT_TO_BUS 2007-07-16 09:05:42 -07:00
auxdisplay Use menuconfig objects II - auxdisplay 2007-07-16 09:05:40 -07:00
base sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
block Introduce CONFIG_VIRT_TO_BUS 2007-07-16 09:05:42 -07:00
bluetooth [Bluetooth] Remove the redundant non-seekable llseek method 2007-07-11 06:53:45 +02:00
cdrom Remove legacy CDROM drivers 2007-07-10 08:03:34 +02:00
char Char: ip2, use msleep for sleeping 2007-07-16 09:05:44 -07:00
clocksource PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
connector Use menuconfig objects: connector 2007-07-16 09:05:40 -07:00
cpufreq [CPUFREQ] Restore previously used governor on a hot-replugged CPU 2007-07-13 01:29:51 -04:00
crypto Use menuconfig objects: crypto hw 2007-07-16 09:05:40 -07:00
dio
dma dma-mapping: prevent dma dependent code from linking on !HAS_DMA archs 2007-07-16 09:05:45 -07:00
edac Use menuconfig objects II - EDAC 2007-07-16 09:05:40 -07:00
eisa
fc4
firewire firewire: fw-sbp2: fix DMA mapping of management ORBs 2007-07-10 00:07:49 +02:00
firmware edd: switch to pci_get based API 2007-07-16 09:05:42 -07:00
hid USB: add reset_resume method 2007-07-12 16:34:30 -07:00
hwmon
i2c make i2c-acorn tristate 2007-07-15 16:40:52 -07:00
ide icside: devm_iounmap() needs linux/io.h 2007-07-15 16:40:52 -07:00
ieee1394 Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
infiniband Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
input sysfs: kill unnecessary attribute->owner 2007-07-11 16:09:06 -07:00
isdn PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
kvm
leds
macintosh Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-07-12 13:40:20 -07:00
mca
md Merge branch 'ioat-md-accel-for-linus' of git://lost.foo-projects.org/~dwillia2/git/iop 2007-07-13 10:52:27 -07:00
media PCI: Change all drivers to use pci_device->revision 2007-07-11 16:02:10 -07:00
message Introduce CONFIG_VIRT_TO_BUS 2007-07-16 09:05:42 -07:00
mfd
misc kconfig: no STRANGE misc. devices 2007-07-16 09:05:43 -07:00
mmc Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-07-12 14:17:12 -07:00
mtd [MIPS] remove LASAT Networks platforms support 2007-07-10 17:33:04 +01:00
net Introduce CONFIG_VIRT_TO_BUS 2007-07-16 09:05:42 -07:00
nubus
oprofile
parisc sysfs: kill unnecessary attribute->owner 2007-07-11 16:09:06 -07:00
parport Use menuconfig objects: parport 2007-07-16 09:05:40 -07:00
pci use no_pci_devices() in pci/search.c 2007-07-16 09:05:41 -07:00
pcmcia sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
pnp Use menuconfig objects: PNP 2007-07-16 09:05:40 -07:00
power Merge git://git.infradead.org/battery-2.6 2007-07-15 16:56:12 -07:00
ps3
rapidio sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
rtc Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6 2007-07-12 13:40:20 -07:00
s390 Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-07-15 16:51:54 -07:00
sbus
scsi Introduce CONFIG_VIRT_TO_BUS 2007-07-16 09:05:42 -07:00
serial atmel_serial: fix break handling 2007-07-16 09:05:45 -07:00
sh
sn
spi sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
tc [MIPS] DEC: Fix modpost warning. 2007-07-12 17:41:07 +01:00
telephony Use menuconfig objects II - Telephony 2007-07-16 09:05:40 -07:00
usb minimal fixes for drivers/usb/gadget/m66592-udc.c 2007-07-15 16:40:51 -07:00
video Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 2007-07-12 13:40:57 -07:00
w1 Use menuconfig objects: W1 2007-07-16 09:05:40 -07:00
zorro sysfs: add parameter "struct bin_attribute *" in .read/.write methods for sysfs binary attributes 2007-07-11 16:09:09 -07:00
Kconfig Merge git://git.infradead.org/~dwmw2/battery-2.6 2007-07-10 14:47:59 -07:00
Makefile [BATTERY] Universal power supply class (was: battery class) 2007-07-10 11:25:44 +01:00