linux/arch/blackfin/include/asm
Sonic Zhang 0f66e50af5 serial: bfin_5xx: split uart RX lock from uart port lock to avoid deadlock
The RX lock is used to protect the RX buffer from concurrent access in DMA
mode between the timer and RX interrupt routines.  It is independent from
the uart lock which is used to protect the TX buffer.  It is possible for
a uart TX transfer to be started up from the RX interrupt handler if low
latency is enabled.  So we need to split the locks to avoid deadlocking in
this situation.

In PIO mode, the RX lock is not necessary because the handle_simple_irq
and handle_level_irq functions ensure driver interrupt handlers are called
once on one core.

And now that the RX path has its own lock, the TX interrupt has nothing to
do with the RX path, so disabling it at the same time.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-02-03 14:44:54 -08:00
..
Kbuild Blackfin: add new cacheflush syscall 2010-10-22 03:48:59 -04:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
auxvec.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
bfin-global.h Blackfin: remove CONFIG_DEBUG_VERBOSE from trace.c 2010-05-21 09:40:18 -04:00
bfin-lq035q1.h Blackfin: extend bfin-lq035q1-fb resources to include PPI mode 2010-03-09 00:30:46 -05:00
bfin5xx_spi.h Blackfin: ppi/spi/twi headers: add missing __BFP undef 2010-10-25 04:54:33 -04:00
bfin_can.h Blackfin: bfin_can.h: add missing VERSION/VERSION2 MMRs 2010-10-22 16:30:03 -04:00
bfin_dma.h Blackfin: bfin_dma.h: start a header for DMA MMR layout 2011-01-10 07:18:04 -05:00
bfin_ppi.h Blackfin: ppi/spi/twi headers: add missing __BFP undef 2010-10-25 04:54:33 -04:00
bfin_rotary.h Blackfin: unify rotary encoder bitmasks 2010-08-06 12:55:56 -04:00
bfin_sdh.h Blackfin: unify SDH/RSI bitmasks 2010-08-06 12:55:56 -04:00
bfin_serial.h serial: bfin_5xx: split uart RX lock from uart port lock to avoid deadlock 2011-02-03 14:44:54 -08:00
bfin_simple_timer.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
bfin_sport.h Blackfin: punt duplicate SPORT MMR defines 2010-08-27 15:58:27 -04:00
bfin_twi.h Blackfin: ppi/spi/twi headers: add missing __BFP undef 2010-10-25 04:54:33 -04:00
bfin_watchdog.h Blackfin: split watchdog definitions into a dedicated header file 2010-03-09 00:30:50 -05:00
bfrom.h Blackfin arch: Update some inline assembly, tweak some register constraints 2009-01-07 23:14:39 +08:00
bitops.h Blackfin: SMP: fix asm/bitops.h errors 2011-01-10 07:18:12 -05:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
blackfin.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
bug.h Blackfin: change the BUG opcode to an unused 16-bit opcode 2010-05-22 14:19:04 -04:00
bugs.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
byteorder.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
cache.h Blackfin: SMP: fix build breakage in cache.h 2011-01-10 07:18:14 -05:00
cachectl.h Blackfin: add new cacheflush syscall 2010-10-22 03:48:59 -04:00
cacheflush.h Blackfin: SMP: rename the arch_xxx lock funcs to __raw_xxx 2011-01-10 07:18:11 -05:00
cdef_LPBlackfin.h Blackfin: fix inverted anomaly 05000481 logic 2010-10-25 17:24:00 -04:00
checksum.h Blackfin: convert to generic checksum code 2009-12-15 00:13:32 -05:00
clocks.h Blackfin: pull in asm/dpmc.h for power defines 2009-12-15 00:14:50 -05:00
context.S Blackfin: add support for irqflags tracing 2010-03-09 00:30:49 -05:00
cplb.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
cplbinit.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
cpu.h Blackfin: rewrite resync_core_{i,d}cache() SMP logic to avoid per_cpu data 2010-03-09 00:30:50 -05:00
cputime.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
current.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
def_LPBlackfin.h Blackfin: add EVT_OVERRIDE/IPRIO core MMR helpers 2010-08-06 12:55:54 -04:00
delay.h Blackfin: implement ndelay() 2010-03-09 00:30:50 -05:00
device.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
div64.h Blackfin arch: move include/asm-blackfin header files to arch/blackfin 2008-08-27 10:51:02 +08:00
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma.h Blackfin: dma: constify MMR pointer array 2011-01-10 07:18:05 -05:00
dpmc.h Blackfin: dpmc.h: pull in new pll.h 2011-01-10 07:18:17 -05:00
early_printk.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
elf.h Blackfin: stub fpregs dumping 2010-08-06 12:55:44 -04:00
emergency-restart.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
entry.h m68k{nommu}/blackfin : remove old assembler-only flags bit definitions 2010-10-26 16:52:12 -07:00
errno.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
fb.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
fcntl.h vfs: Implement proper O_SYNC semantics 2009-12-10 15:02:50 +01:00
fixed_code.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
flat.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
ftrace.h Blackfin: add support for dynamic ftrace 2010-08-06 12:55:54 -04:00
futex.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
gpio.h Blackfin: gpio: add a debounce stub 2010-08-06 12:55:58 -04:00
gptimers.h Blackfin: gptimers: use unsigned timer/group ids 2009-12-15 00:15:30 -05:00
hardirq.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
hw_irq.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
io.h Blackfin: switch to asm-generic/io.h 2011-01-10 07:18:04 -05:00
ioctl.h Blackfin arch: move include/asm-blackfin header files to arch/blackfin 2008-08-27 10:51:02 +08:00
ioctls.h Blackfin: convert asm/ioctls.h to asm-generic/ioctls.h 2009-06-18 21:40:53 -04:00
ipcbuf.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
ipipe.h Blackfin: Rename IRQ flags handling functions 2010-10-07 14:08:52 +01:00
ipipe_base.h Blackfin/ipipe: prepare status bitops for SMP support 2009-12-15 00:15:12 -05:00
irq.h Blackfin: implement nmi_watchdog for SMP on BF561 2010-03-09 00:30:49 -05:00
irq_handler.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
irq_regs.h Blackfin arch: move include/asm-blackfin header files to arch/blackfin 2008-08-27 10:51:02 +08:00
irqflags.h Blackfin: SMP: relocate blackfin_core_id() definition 2011-01-10 07:18:15 -05:00
kdebug.h Blackfin arch: move include/asm-blackfin header files to arch/blackfin 2008-08-27 10:51:02 +08:00
kgdb.h Blackfin: kgdb: punt dead code 2009-12-15 00:15:40 -05:00
kmap_types.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
l1layout.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
linkage.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
local.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
mem_init.h Blackfin: remove CONFIG_MEM_GENERIC_BOARD 2010-08-06 12:55:57 -04:00
mem_map.h Blackfin: unify memory map headers 2009-06-22 21:16:07 -04:00
mman.h Blackfin: convert signal/mmap to asm-generic 2009-06-18 21:41:26 -04:00
mmu.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
mmu_context.h Blackfin: Rename IRQ flags handling functions 2010-10-07 14:08:52 +01:00
module.h module: make MODULE_SYMBOL_PREFIX into a CONFIG option 2009-12-15 16:28:26 +10:30
msgbuf.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
mutex.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
nand.h mtd: Blackfin NFC: fix handling of page sizes 2010-08-05 16:14:38 +01:00
nmi.h Blackfin: implement nmi_watchdog for SMP on BF561 2010-03-09 00:30:49 -05:00
page.h Blackfin: asm/page.h: pull in asm-generic headers 2010-03-09 00:30:52 -05:00
page_offset.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
param.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
pci.h Blackfin: convert to asm-generic pci headers 2009-12-15 00:16:07 -05:00
pda.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
percpu.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
pgalloc.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
pgtable.h Blackfin: drop unused bad_page pages and move zero_page to the bss 2010-05-21 09:03:15 -04:00
poll.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
portmux.h Blackfin: gpio/portmux: clean up whitespace corruption 2010-08-06 12:55:51 -04:00
posix_types.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
processor.h Blackfin: SMP: relocate blackfin_core_id() definition 2011-01-10 07:18:15 -05:00
pseudo_instructions.h Blackfin: add support for the DBG (debug output) pseudo insn 2010-05-22 14:19:05 -04:00
ptrace.h Blackfin: add new cacheflush syscall 2010-10-22 03:48:59 -04:00
reboot.h Blackfin arch: Fix bug - Run "reboot" hangs bf518-ezbrd 2009-02-04 16:49:45 +08:00
resource.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
rwlock.h Blackfin arch: SMP supporting patchset: Blackfin header files and machine common code 2009-01-07 23:14:39 +08:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
sections.h Blackfin: initial XIP support 2010-03-09 00:30:48 -05:00
segment.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
sembuf.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
serial.h Blackfin: H8606: move 8250 irqflags to platform resources 2010-10-22 16:30:01 -04:00
setup.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
shmbuf.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
shmparam.h Blackfin: convert shm/sysv/ipc to asm-generic 2009-06-18 21:40:58 -04:00
sigcontext.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
siginfo.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
signal.h Blackfin: convert signal/mmap to asm-generic 2009-06-18 21:41:26 -04:00
smp.h Blackfin: rewrite resync_core_{i,d}cache() SMP logic to avoid per_cpu data 2010-03-09 00:30:50 -05:00
socket.h Blackfin: convert socket/poll to asm-generic 2009-06-18 21:41:08 -04:00
sockios.h Blackfin: convert socket/poll to asm-generic 2009-06-18 21:41:08 -04:00
spinlock.h Blackfin: SMP: add missing arch_{read,write}_lock_flags helpers 2011-01-10 07:18:14 -05:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
stat.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
statfs.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
string.h Blackfin: move string functions to normal lib/ assembly 2010-05-22 14:19:09 -04:00
swab.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
syscall.h Blackfin: initial tracehook support 2010-03-09 00:30:51 -05:00
system.h Blackfin: Rename IRQ flags handling functions 2010-10-07 14:08:52 +01:00
termbits.h Blackfin: convert termios to asm-generic 2009-06-18 21:41:17 -04:00
termios.h Blackfin: convert termios to asm-generic 2009-06-18 21:41:17 -04:00
thread_info.h add descriptive comment for TIF_MEMDIE task flag declaration. 2010-05-14 11:13:27 +02:00
time.h Blackfin: add support for cpufreq on SMP systems 2010-03-09 00:30:50 -05:00
timex.h Blackfin arch: make sure cycles is marked as volatile so gcc doesnt reorder on us 2008-10-16 23:55:41 +08:00
tlb.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
tlbflush.h Blackfin: SMP: add flush_tlb_kernel_range stub 2010-05-21 09:40:20 -04:00
topology.h Blackfin: convert simple headers to asm-generic 2009-06-18 21:41:13 -04:00
trace.h Blackfin: make hardware trace output a little more useful 2010-05-21 09:40:19 -04:00
traps.h Blackfin: mass clean up of copyright/licensing info 2009-10-07 04:36:26 -04:00
types.h Blackfin: convert types to asm-generic 2009-06-18 21:42:24 -04:00
uaccess.h Blackfin: push down asm/ includes and out of bfin-global.h 2009-12-15 00:14:14 -05:00
ucontext.h Blackfin: convert page/tlb to asm-generic 2009-06-18 21:42:30 -04:00
unaligned.h Blackfin: convert locking primitives to asm-generic 2009-06-18 21:41:22 -04:00
unistd.h Blackfin: add new cacheflush syscall 2010-10-22 03:48:59 -04:00
user.h Blackfin: convert user/elf to asm-generic 2009-06-18 21:41:03 -04:00
xor.h Blackfin arch: use generic xor.h 2008-11-18 17:48:22 +08:00