kernel_optimize_test/drivers
Alexander Aring 57c1bc7ea8 at86rf230: support edge triggered irq
This patch adds support for edge triggered irq types. We remove the
locking for irq resources by enable/disable irq and allocate directly
some heap buffer at isr. We have still a enable/disable irq path but
this is for level-triggered irq's which need to be disabled until
spi_async clear the irq line.

There is usually a little race condition between "irq line cleared" and
"enable_irq". When in this time a edge triggered irq arrived, we will
not recognize this interrupt. This case can't happend at at86rf230. The
reason is that we unmask TRX_END irq's only which indicates a transmit
or receive completion, which depends on the current state.

On Transmit:

TRX_END arrived and transceiver is in TX_ARET_ON state again, in this
state no other TRX_END can happen until we leave the state.

On Receive:

This is protected with the RX_SAFE_MODE bit which leaves the transceiver
in RX_AACK_BUSY until we readed the framebuffer. In this state no other
TRX_END can happen.

Tested with RPi where I first detected issues between edge/level irq's.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
2015-09-22 11:51:20 +02:00
..
accessibility
acpi IPMI updates for 4.3 2015-09-08 18:19:17 -07:00
amba
android mm: mark most vm_operations_struct const 2015-09-10 13:29:01 -07:00
ata
atm
auxdisplay
base Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-09-10 13:53:15 -07:00
bcma
block xen: MFN/GFN/BFN terminology changes for 4.3-rc0 2015-09-10 16:21:11 -07:00
bluetooth Bluetooth: btmrvl: fix firmware dump issue 2015-09-22 11:51:19 +02:00
bus
cdrom
char IPMI updates for 4.3 2015-09-08 18:19:17 -07:00
clk ARM: SoC: late fixes and dependencies 2015-09-10 17:59:04 -07:00
clocksource
connector
cpufreq ARM: SoC: late fixes and dependencies 2015-09-10 17:59:04 -07:00
cpuidle
crypto drivers/crypto/qat: use seq_hex_dump() to dump buffers 2015-09-10 13:29:01 -07:00
dca
devfreq
dio
dma
dma-buf
edac
eisa
extcon
firewire
firmware kexec: split kexec_load syscall from kexec core code 2015-09-10 13:29:01 -07:00
fmc
gpio
gpu Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux 2015-09-11 09:35:56 -07:00
hid
hsi mm: mark most vm_operations_struct const 2015-09-10 13:29:01 -07:00
hv
hwmon
hwspinlock
hwtracing/coresight
i2c
ide
idle
iio
infiniband mm: mark most vm_operations_struct const 2015-09-10 13:29:01 -07:00
input xen: MFN/GFN/BFN terminology changes for 4.3-rc0 2015-09-10 16:21:11 -07:00
iommu
ipack
irqchip
isdn
leds
lguest
macintosh
mailbox
mcb
md
media mm: mark most vm_operations_struct const 2015-09-10 13:29:01 -07:00
memory
memstick
message
mfd
misc mm: mark most vm_operations_struct const 2015-09-10 13:29:01 -07:00
mmc
mtd MTD updates #2 for 4.3-rc1: 2015-09-09 11:17:33 -07:00
net at86rf230: support edge triggered irq 2015-09-22 11:51:20 +02:00
nfc
ntb
nubus
nvdimm
nvmem
of
oprofile
parisc parisc: use seq_hex_dump() to dump buffers 2015-09-10 13:29:01 -07:00
parport
pci kexec: split kexec_load syscall from kexec core code 2015-09-10 13:29:01 -07:00
pcmcia
perf
phy
pinctrl
platform
pnp
power
powercap
pps
ps3
ptp
pwm pwm: Changes for v4.3-rc1 2015-09-09 10:55:32 -07:00
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390 s390/iucv: do not use arrays as argument 2015-09-21 16:03:04 -07:00
sbus
scsi xen: MFN/GFN/BFN terminology changes for 4.3-rc0 2015-09-10 16:21:11 -07:00
sfi
sh
sn
soc ARM: SoC: late fixes and dependencies 2015-09-10 17:59:04 -07:00
spi
spmi
ssb
staging mm: mark most vm_operations_struct const 2015-09-10 13:29:01 -07:00
target
tc
thermal
thunderbolt
tty s390/iucv: do not use arrays as argument 2015-09-21 16:03:04 -07:00
uio
usb
uwb
vfio
vhost
video Merge branch 'akpm' (patches from Andrew) 2015-09-10 18:19:42 -07:00
virt
virtio
vlynq
vme
w1
watchdog
xen Merge branch 'akpm' (patches from Andrew) 2015-09-10 18:19:42 -07:00
zorro
Kconfig
Makefile