Re: [PATCH bluetooth-next] at86rf230: support edge triggered irq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Alex,

> 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@xxxxxxxxx>
> ---
> drivers/net/ieee802154/at86rf230.c | 211 ++++++++++++++++---------------------
> 1 file changed, 89 insertions(+), 122 deletions(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel

--
To unsubscribe from this list: send the line "unsubscribe linux-wpan" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux