]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
net: ieee802154: adf7242: Rework IRQ and packet handling
authorMichael Hennerich <michael.hennerich@analog.com>
Tue, 28 Nov 2017 12:53:15 +0000 (13:53 +0100)
committerStefan Schmidt <stefan@osg.samsung.com>
Wed, 29 Nov 2017 15:49:41 +0000 (16:49 +0100)
commit8f1878a182dcc5a15a57c7fc7d8182bea0733dfa
treebb933e39458a1f36bff86e8d3dd973689cbd2910
parentc78c1b01394406182fab5caff25ac58f754c702d
net: ieee802154: adf7242: Rework IRQ and packet handling

 * Stop unconditionally polling for RC_STATUS_PHY_RDY at the entry of
the threaded IRQ handler. Once IRQ_RX_PKT_RCVD is received we can
read immediately the packet from the buffer. However we still need
to wait afterwards for RC_STATUS_PHY_RDY, to make sure that the
ACK (in case requested) was processed and send out by the
Radio Controller, before we issue the next CMD_RC_RX.
This significantly reduces the overall time spend in the threaded
IRQ handler.

 * Avoid raise condition between xmit and coincident packet reception,
by disabling the IRQ and clearing the IRQ status upon xmit entry.

 * Introduce helper functions adf7242_clear_irqstat() and adf7242_cmd_rx()

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Stefan Schmidt <stefan@osg.samsung.com>
drivers/net/ieee802154/adf7242.c