ionic: Add interrupts and doorbells

The ionic interrupt model is based on interrupt control blocks
accessed through the PCI BAR.  Doorbell registers are used by
the driver to signal to the NIC that requests are waiting on
the message queues.  Interrupts are used by the NIC to signal
to the driver that answers are waiting on the completion queues.

Signed-off-by: Shannon Nelson <snelson@pensando.io>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Shannon Nelson
2019-09-03 15:28:08 -07:00
committed by David S. Miller
parent 1a58e19646
commit 6461b446f2
8 changed files with 91 additions and 0 deletions

View File

@@ -4,6 +4,8 @@
#ifndef _IONIC_H_
#define _IONIC_H_
struct ionic_lif;
#include "ionic_if.h"
#include "ionic_dev.h"
#include "ionic_devlink.h"
@@ -39,6 +41,7 @@ struct ionic {
unsigned int nrxqs_per_lif;
DECLARE_BITMAP(lifbits, IONIC_LIFS_MAX);
unsigned int nintrs;
DECLARE_BITMAP(intrs, IONIC_INTR_CTRL_REGS_MAX);
};
int ionic_dev_cmd_wait(struct ionic *ionic, unsigned long max_wait);