qed: Add doorbell overflow recovery mechanism
Add the database used to register doorbelling entities, and APIs for adding and deleting entries, and logic for traversing the database and doorbelling once on behalf of all entities. Signed-off-by: Ariel Elior <Ariel.Elior@cavium.com> Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com> Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
dd354208dc
commit
36907cd5cd
@@ -47,6 +47,7 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/qed/common_hsi.h>
|
||||
#include <linux/qed/qed_chain.h>
|
||||
#include <linux/io-64-nonatomic-lo-hi.h>
|
||||
|
||||
enum dcbx_protocol_type {
|
||||
DCBX_PROTOCOL_ISCSI,
|
||||
@@ -448,11 +449,24 @@ struct qed_mfw_tlv_iscsi {
|
||||
bool tx_bytes_set;
|
||||
};
|
||||
|
||||
enum qed_db_rec_width {
|
||||
DB_REC_WIDTH_32B,
|
||||
DB_REC_WIDTH_64B,
|
||||
};
|
||||
|
||||
enum qed_db_rec_space {
|
||||
DB_REC_KERNEL,
|
||||
DB_REC_USER,
|
||||
};
|
||||
|
||||
#define DIRECT_REG_WR(reg_addr, val) writel((u32)val, \
|
||||
(void __iomem *)(reg_addr))
|
||||
|
||||
#define DIRECT_REG_RD(reg_addr) readl((void __iomem *)(reg_addr))
|
||||
|
||||
#define DIRECT_REG_WR64(reg_addr, val) writeq((u32)val, \
|
||||
(void __iomem *)(reg_addr))
|
||||
|
||||
#define QED_COALESCE_MAX 0x1FF
|
||||
#define QED_DEFAULT_RX_USECS 12
|
||||
#define QED_DEFAULT_TX_USECS 48
|
||||
|
||||
Reference in New Issue
Block a user