linux/drivers/ntb
Logan Gunthorpe 26b3a37b92 NTB: Introduce MSI library
The NTB MSI library allows passing MSI interrupts across a memory
window. This offers similar functionality to doorbells or messages
except will often have much better latency and the client can
potentially use significantly more remote interrupts than typical hardware
provides for doorbells. (Which can be important in high-multiport
setups.)

The library utilizes one memory window per peer and uses the highest
index memory windows. Before any ntb_msi function may be used, the user
must call ntb_msi_init(). It may then setup and tear down the memory
windows when the link state changes using ntb_msi_setup_mws() and
ntb_msi_clear_mws().

The peer which receives the interrupt must call ntb_msim_request_irq()
to assign the interrupt handler (this function is functionally
similar to devm_request_irq()) and the returned descriptor must be
transferred to the peer which can use it to trigger the interrupt.
The triggering peer, once having received the descriptor, can
trigger the interrupt by calling ntb_msi_peer_trigger().

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Allen Hubbe <allenbh@gmail.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
2019-06-13 09:02:33 -04:00
..
hw ntb_hw_switchtec: Fix setup MW with failure bug 2019-06-13 08:59:31 -04:00
test NTB: ntb_perf: Clear stale values in doorbell and command SPAD register 2019-06-13 08:58:05 -04:00
core.c NTB: Rename ntb.c to support multiple source files in the module 2019-06-13 09:02:02 -04:00
Kconfig NTB: Introduce MSI library 2019-06-13 09:02:33 -04:00
Makefile NTB: Introduce MSI library 2019-06-13 09:02:33 -04:00
msi.c NTB: Introduce MSI library 2019-06-13 09:02:33 -04:00
ntb_transport.c NTB: ntb_transport: Ensure qp->tx_mw_dma_addr is initaliazed 2019-06-13 08:58:12 -04:00