diff options
author | Sony Chacko <sony.chacko@qlogic.com> | 2013-01-01 03:20:20 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-01-02 02:43:26 -0800 |
commit | 4be41e92f7c613d6c08686374ad0fdeaaa2a7280 (patch) | |
tree | ee5a37cf0fb67dacaf9d741c3cf47e16f6e55268 /drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | |
parent | 7f9664525f9cb507de9198a395a111371413f230 (diff) |
qlcnic: 83xx data path routines
Add 83xx adapter data path routines
Update few 82xx adapter data path routines
Modify datapath resource allocation routines
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
Signed-off-by: Sritej Velaga <sritej.velaga@qlogic.com>
Signed-off-by: Sony Chacko <sony.chacko@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic/qlcnic.h')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h index 2b7adda619b..31cf1b1cdf6 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h @@ -431,6 +431,7 @@ struct qlcnic_adapter_stats { u64 rx_dma_map_error; u64 tx_dma_map_error; u64 spurious_intr; + u64 mac_filter_limit_overrun; }; /* @@ -469,6 +470,7 @@ struct qlcnic_host_sds_ring { } ____cacheline_internodealigned_in_smp; struct qlcnic_host_tx_ring { + int irq; void __iomem *crb_intr_mask; char name[IFNAMSIZ+4]; u16 ctx_id; @@ -477,6 +479,8 @@ struct qlcnic_host_tx_ring { u32 num_desc; void __iomem *crb_cmd_producer; struct cmd_desc_type0 *desc_head; + struct qlcnic_adapter *adapter; + struct napi_struct napi; struct qlcnic_cmd_buffer *cmd_buf_arr; __le32 *hw_consumer; @@ -1402,7 +1406,7 @@ void qlcnic_release_tx_buffers(struct qlcnic_adapter *adapter); int qlcnic_check_fw_status(struct qlcnic_adapter *adapter); void qlcnic_watchdog_task(struct work_struct *work); void qlcnic_post_rx_buffers(struct qlcnic_adapter *adapter, - struct qlcnic_host_rds_ring *rds_ring); + struct qlcnic_host_rds_ring *rds_ring, u8 ring_id); int qlcnic_process_rcv_ring(struct qlcnic_host_sds_ring *sds_ring, int max); void qlcnic_set_multi(struct net_device *netdev); void qlcnic_free_mac_list(struct qlcnic_adapter *adapter); @@ -1443,7 +1447,6 @@ int qlcnic_clear_esw_stats(struct qlcnic_adapter *adapter, u8, u8, u8); int qlcnic_get_mac_stats(struct qlcnic_adapter *, struct qlcnic_mac_statistics *); void qlcnic_free_mbx_args(struct qlcnic_cmd_args *cmd); -void qlcnic_napi_del(struct qlcnic_adapter *); int qlcnic_alloc_sds_rings(struct qlcnic_recv_context *, int); void qlcnic_free_sds_rings(struct qlcnic_recv_context *); @@ -1495,6 +1498,7 @@ struct qlcnic_nic_template { void (*request_reset) (struct qlcnic_adapter *, u32); void (*cancel_idc_work) (struct qlcnic_adapter *); int (*napi_add)(struct qlcnic_adapter *, struct net_device *); + void (*napi_del)(struct qlcnic_adapter *); void (*config_ipaddr)(struct qlcnic_adapter *, __be32, int); irqreturn_t (*clear_legacy_intr)(struct qlcnic_adapter *); }; @@ -1670,6 +1674,11 @@ static inline int qlcnic_napi_add(struct qlcnic_adapter *adapter, return adapter->nic_ops->napi_add(adapter, netdev); } +static inline void qlcnic_napi_del(struct qlcnic_adapter *adapter) +{ + adapter->nic_ops->napi_del(adapter); +} + static inline void qlcnic_napi_enable(struct qlcnic_adapter *adapter) { adapter->ahw->hw_ops->napi_enable(adapter); |