linux/drivers/net/ieee802154
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
..
at86rf230.c at86rf230: support edge triggered irq 2015-09-22 11:51:20 +02:00
at86rf230.h at86rf230: add debugfs support 2015-09-17 13:20:05 +02:00
atusb.c atusb: add handling for different chipnames 2015-09-17 13:20:06 +02:00
atusb.h ieee802154: add support for atusb transceiver 2015-05-19 11:44:45 +02:00
cc2520.c cc2520: set the default fifo pin value from platform data 2015-08-11 06:13:39 +02:00
fakelb.c fakelb: add xmit_async after stop testcase 2015-06-15 01:25:06 +02:00
Kconfig at86rf230: add debugfs support 2015-09-17 13:20:05 +02:00
Makefile ieee802154: add support for atusb transceiver 2015-05-19 11:44:45 +02:00
mrf24j40.c net: ieee802154: Remove redundant spi driver bus initialization 2015-07-23 17:10:51 +02:00