335 u64 txdl_ptr,
u32 num_txds)
426 hldev = vpath->
hldev;
433 hldev->
ndev->
name, __func__, __LINE__);
438 if (alarm_status & ~(
445 hldev->
ndev->
name, __func__, __LINE__);
473 hldev->
ndev->
name, __func__, __LINE__);
490 hldev->
ndev->
name, __func__, __LINE__);
498 hldev->
ndev->
name, __func__, __LINE__,
640 #define ETH_FCS_LEN 4 675 __func__, __LINE__, tcode);
698 rxd->control_0 =
rxd->control_1 = 0;
709 }
while (++poll_count < ring->rx_poll_weight);
729 && (
txdp->host_control)) {
enum vxge_hw_status vxge_hw_vpath_intr_enable(struct __vxge_hw_virtualpath *vpath)
#define EINVAL
Invalid argument.
#define VXGE_HW_NODBW_TYPE(val)
#define iob_put(iobuf, len)
void netdev_rx_err(struct net_device *netdev, struct io_buffer *iobuf, int rc)
Discard received packet.
struct vxge_hw_fifo_txd - Transmit Descriptor
#define VXGE_HW_RING_RXD_1_BUFFER0_SIZE_GET(ctrl1)
u64 mrpcim_to_vpath_alarm_mask
uint64_t readq(volatile uint64_t *io_addr)
Read 64-bit qword from memory-mapped device.
struct __vxge_hw_virtualpath * vpathh
#define VXGE_HW_VPATH_GENERAL_INT_STATUS_XMAC_INT
struct __vxge_hw_virtualpath virtual_path
#define VXGE_HW_FIFO_TXD_INT_TYPE_PER_LIST
#define ETH_FCS_LEN
vxge_hw_vpath_poll_rx - Poll Rx Virtual Path for completed descriptors and process the same.
u64 asic_ntwk_vp_err_mask
struct vxge_hw_common_reg * common_reg
void vxge_hw_ring_rxd_post(struct __vxge_hw_ring *ring __unused, struct vxge_hw_ring_rxd_1 *rxdp)
vxge_hw_ring_rxd_post - Post descriptor on the ring.
static void __vxge_hw_pio_mem_write32_upper(u32 val, void __iomem *addr)
#define VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO2_DMA_ERR
struct __vxge_hw_non_offload_db_wrapper * nofl_db
u64 srpcim_to_vpath_alarm_reg
static void vxge_hw_ring_rxd_offset_up(u16 *offset)
static void vxge_hw_fifo_txd_offset_up(u16 *offset)
#define VXGE_HW_RING_RXD_T_CODE_GET(ctrl0)
void netdev_link_down(struct net_device *netdev)
Mark network device as having link down.
u64 vpath_pcipif_int_mask
#define VXGE_HW_INTR_MASK_ALL
struct io_buffer * alloc_iob(size_t len)
Allocate I/O buffer.
#define VXGE_HW_VPATH_GENERAL_INT_STATUS_PCI_INT
#define VXGE_HW_VPATH_INTR_RX
#define vxge_debug(mask, fmt...)
#define VXGE_HW_RING_RXD_LIST_OWN_ADAPTER
#define VXGE_HW_TITAN_GENERAL_INT_STATUS_VPATH_ALARM_INT
void vxge_hw_device_intr_disable(struct __vxge_hw_device *hldev)
vxge_hw_device_intr_disable - Disable Titan interrupts.
#define VXGE_HW_GENERAL_ERRORS_REG_DBLGEN_FIFO2_OVRFLOW
u64 srpcim_to_vpath_alarm_mask
struct vxge_hw_fifo_txd * vxge_hw_fifo_free_txdl_get(struct __vxge_hw_fifo *fifo)
vxge_hw_fifo_free_txdl_get: fetch next available txd in the fifo
enum vxge_hw_status vxge_hw_vpath_poll_tx(struct __vxge_hw_fifo *fifo)
vxge_hw_vpath_poll_tx - Poll Tx for completed descriptors and process the same.
#define ENOMEM
Not enough space.
#define VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_OVRWR
struct vxge_hw_vpath_reg * vp_reg
void * memcpy(void *dest, const void *src, size_t len) __nonnull
void vxge_hw_device_unmask_all(struct __vxge_hw_device *hldev)
vxge_hw_device_unmask_all - Unmask all device interrupts.
#define VXGE_HW_GENERAL_ERRORS_REG_STATSB_PIF_CHAIN_ERR
static __always_inline unsigned long virt_to_bus(volatile const void *addr)
Convert virtual address to a bus address.
#define VXGE_HW_FIFO_TXD_LIST_OWN_ADAPTER
enum vxge_hw_status vxge_hw_vpath_poll_rx(struct __vxge_hw_ring *ring)
#define VXGE_HW_ASIC_NTWK_VP_ERR_REG_XMACJ_NTWK_REAFFIRMED_OK
#define VXGE_HW_FIFO_TXD_BUFFER_SIZE(val)
void vxge_hw_fifo_txdl_buffer_set(struct __vxge_hw_fifo *fifo, struct vxge_hw_fifo_txd *txdp, struct io_buffer *iob)
vxge_hw_fifo_txdl_buffer_set - Set transmit buffer pointer in the descriptor.
void vxge_hw_fifo_txdl_post(struct __vxge_hw_fifo *fifo, struct vxge_hw_fifo_txd *txdp)
vxge_hw_fifo_txdl_post - Post descriptor on the fifo channel.
#define VXGE_HW_XGMAC_VP_INT_STATUS_ASIC_NTWK_VP_ERR_ASIC_NTWK_VP_INT
#define VXGE_HW_ASIC_NW_VP_ERR_REG_XMACJ_STN_FLT
#define __unused
Declare a variable or data structure as unused.
static void netdev_link_up(struct net_device *netdev)
Mark network device as having link up.
void vxge_hw_device_intr_enable(struct __vxge_hw_device *hldev)
vxge_hw_device_intr_enable - Enable interrupts.
#define VXGE_HW_FIFO_TXD_GATHER_CODE(val)
#define VXGE_HW_MAX_VIRTUAL_PATHS
#define VXGE_HW_GENERAL_ERRORS_REG_DBLGEN_FIFO1_OVRFLOW
#define VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_POISON
#define VXGE_HW_TITAN_GENERAL_INT_STATUS_VPATH_TRAFFIC_INT(val)
struct __vxge_hw_ring_block * rxdl
#define VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO2_POISON
#define VXGE_HW_RING_RXD_QWORDS_MODE_1
#define VXGE_LL_MAX_FRAME_SIZE(dev)
#define VXGE_HW_ASIC_NW_VP_ERR_REG_XMACJ_STN_FLT_OCCURR
static void __vxge_hw_non_offload_db_post(struct __vxge_hw_fifo *fifo, u64 txdl_ptr, u32 num_txds)
__vxge_hw_non_offload_db_post - Post non offload doorbell
#define vxge_bVALn(bits, loc, n)
u64 vpath_ppif_int_status
static size_t iob_len(struct io_buffer *iobuf)
Calculate length of data in an I/O buffer.
#define VXGE_HW_DEFAULT_32
#define VXGE_HW_PRC_ALARM_REG_PRC_RING_BUMP
#define VXGE_HW_ASIC_NW_VP_ERR_REG_XMACJ_STN_OK_OCCURR
u64 mrpcim_to_vpath_alarm_reg
#define VXGE_HW_VPATH_INTR_TX
#define VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO1_DMA_ERR
#define VXGE_HW_NODBW_TYPE_NODBW
void netdev_rx(struct net_device *netdev, struct io_buffer *iobuf)
Add packet to receive queue.
u64 srpcim_msg_to_vpath_mask
#define VXGE_HW_FIFO_TXD_T_CODE_GET(ctrl0)
Network device management.
struct __vxge_hw_device - Hal device object @magic: Magic Number @bar0: BAR0 virtual address.
#define VXGE_HW_ASIC_NW_VP_ERR_REG_XMACJ_STN_OK
#define VXGE_HW_PRC_RXD_DOORBELL_NEW_QW_CNT(val)
char name[NETDEV_NAME_LEN]
Name of this network device.
enum vxge_hw_status vxge_hw_device_begin_irq(struct __vxge_hw_device *hldev)
vxge_hw_device_begin_irq - Begin IRQ processing.
struct vxge_hw_vpath_reg * vp_reg
#define VXGE_HW_ALL_FOXES
void * data
Start of data.
static void vxge_hw_ring_rxd_1b_set(struct vxge_hw_ring_rxd_1 *rxdp, struct io_buffer *iob, u32 size)
vxge_hw_ring_rxd_1b_set - Prepare 1-buffer-mode descriptor.
enum vxge_hw_status vxge_hw_vpath_intr_disable(struct __vxge_hw_virtualpath *vpath)
vxge_hw_ring_tcode
enum vxge_hw_ring_tcode - Transfer codes returned by adapter @VXGE_HW_RING_T_CODE_OK: Transfer ok.
#define VXGE_HW_KDFCCTL_ERRORS_REG_KDFCCTL_FIFO2_OVRWR
u64 vpath_general_int_mask
u64 srpcim_msg_to_vpath_reg
#define VXGE_HW_FIFO_TXD_INT_NUMBER(val)
static enum vxge_hw_status __vxge_hw_vpath_alarm_process(struct __vxge_hw_virtualpath *vpath)
#define VXGE_HW_TITAN_MASK_ALL_INT_TRAFFIC
struct __vxge_hw_device * hldev
#define VXGE_HW_NODBW_LAST_TXD_NUMBER(val)
#define VXGE_HW_TITAN_MASK_ALL_INT_ALARM
u64 vpath_pcipif_int_status
u64 vpath_general_int_status
struct vxge_hw_fifo_txd * txdl
#define VXGE_HW_VP_NOT_OPEN
enum vxge_hw_status vxge_xmit_compl(struct __vxge_hw_fifo *fifo_hw, struct vxge_hw_fifo_txd *txdp, enum vxge_hw_fifo_tcode tcode)
u64 pci_config_errors_reg
u64 titan_general_int_status
#define VXGE_HW_VPATH_GENERAL_INT_STATUS_WRDMA_INT
struct vxge_hw_ring_rxd_1 rxd[VXGE_HW_MAX_RXDS_PER_BLOCK_1]
#define NULL
NULL pointer (VOID *)
void writeq(uint64_t data, volatile uint64_t *io_addr)
Write 64-bit qword to memory-mapped device.
struct vxge_hw_ring_rxd_1 - One buffer mode RxD for ring
#define VXGE_HW_VPATH_GENERAL_INT_STATUS_PIC_INT
u64 pci_config_errors_mask
#define VXGE_HW_GENERAL_ERRORS_REG_STATSB_DROP_TIMEOUT_REQ
void vxge_hw_device_mask_all(struct __vxge_hw_device *hldev)
vxge_hw_device_mask_all - Mask all device interrupts.
#define VXGE_HW_MAX_RXDS_PER_BLOCK_1
void vxge_hw_vpath_doorbell_rx(struct __vxge_hw_ring *ring)
vxge_hw_vpath_doorbell_rx - Indicates to hw the qwords of receive descriptors posted.
#define VXGE_HW_ASIC_NTWK_VP_ERR_REG_XMACJ_NTWK_REAFFIRMED_FAULT
void vxge_hw_device_clear_tx_rx(struct __vxge_hw_device *hldev)
vxge_hw_device_clear_tx_rx - Acknowledge (that is, clear) the condition that has caused the Tx and RX...