iPXE
|
Mellanox Hermon Infiniband HCA. More...
#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <unistd.h>
#include <errno.h>
#include <byteswap.h>
#include <ipxe/io.h>
#include <ipxe/pci.h>
#include <ipxe/pcibackup.h>
#include <ipxe/malloc.h>
#include <ipxe/umalloc.h>
#include <ipxe/iobuf.h>
#include <ipxe/netdevice.h>
#include <ipxe/infiniband.h>
#include <ipxe/ib_smc.h>
#include <ipxe/if_ether.h>
#include <ipxe/ethernet.h>
#include <ipxe/fcoe.h>
#include <ipxe/vlan.h>
#include <ipxe/bofm.h>
#include <ipxe/nvsvpd.h>
#include <ipxe/nvo.h>
#include "hermon.h"
Go to the source code of this file.
Macros | |
#define | HERMON_MOD_STAT_CFG_OFFSET(field) |
Calculate offset within static configuration. More... | |
#define | HERMON_ETH_NUM_SEND_WQES 16 |
Number of Hermon Ethernet send work queue entries. More... | |
#define | HERMON_ETH_NUM_RECV_WQES 8 |
Number of Hermon Ethernet receive work queue entries. More... | |
#define | HERMON_ETH_NUM_CQES 32 |
Number of Hermon Ethernet completion entries. More... | |
#define | HERMON_SENSE_PORT_TIMEOUT ( TICKS_PER_SEC / 2 ) |
Timeout for port sensing. More... | |
Functions | |
FILE_LICENCE (GPL2_OR_LATER) | |
static int | hermon_bitmask_alloc (hermon_bitmask_t *bits, unsigned int bits_len, unsigned int num_bits) |
Allocate offsets within usage bitmask. More... | |
static void | hermon_bitmask_free (hermon_bitmask_t *bits, int bit, unsigned int num_bits) |
Free offsets within usage bitmask. More... | |
static int | hermon_cmd_wait (struct hermon *hermon, struct hermonprm_hca_command_register *hcr) |
Wait for Hermon command completion. More... | |
static int | hermon_cmd (struct hermon *hermon, unsigned long command, unsigned int op_mod, const void *in, unsigned int in_mod, void *out) |
Issue HCA command. More... | |
static int | hermon_cmd_query_dev_cap (struct hermon *hermon, struct hermonprm_query_dev_cap *dev_cap) |
static int | hermon_cmd_query_fw (struct hermon *hermon, struct hermonprm_query_fw *fw) |
static int | hermon_cmd_init_hca (struct hermon *hermon, const struct hermonprm_init_hca *init_hca) |
static int | hermon_cmd_close_hca (struct hermon *hermon) |
static int | hermon_cmd_init_port (struct hermon *hermon, unsigned int port) |
static int | hermon_cmd_close_port (struct hermon *hermon, unsigned int port) |
static int | hermon_cmd_set_port (struct hermon *hermon, int is_ethernet, unsigned int port_selector, const union hermonprm_set_port *set_port) |
static int | hermon_cmd_sw2hw_mpt (struct hermon *hermon, unsigned int index, const struct hermonprm_mpt *mpt) |
static int | hermon_cmd_hw2sw_mpt (struct hermon *hermon, unsigned int index) |
static int | hermon_cmd_write_mtt (struct hermon *hermon, const struct hermonprm_write_mtt *write_mtt) |
static int | hermon_cmd_map_eq (struct hermon *hermon, unsigned long index_map, const struct hermonprm_event_mask *mask) |
static int | hermon_cmd_sw2hw_eq (struct hermon *hermon, unsigned int index, const struct hermonprm_eqc *eqctx) |
static int | hermon_cmd_hw2sw_eq (struct hermon *hermon, unsigned int index, struct hermonprm_eqc *eqctx) |
static int | hermon_cmd_query_eq (struct hermon *hermon, unsigned int index, struct hermonprm_eqc *eqctx) |
static int | hermon_cmd_sw2hw_cq (struct hermon *hermon, unsigned long cqn, const struct hermonprm_completion_queue_context *cqctx) |
static int | hermon_cmd_hw2sw_cq (struct hermon *hermon, unsigned long cqn, struct hermonprm_completion_queue_context *cqctx) |
static int | hermon_cmd_query_cq (struct hermon *hermon, unsigned long cqn, struct hermonprm_completion_queue_context *cqctx) |
static int | hermon_cmd_rst2init_qp (struct hermon *hermon, unsigned long qpn, const struct hermonprm_qp_ee_state_transitions *ctx) |
static int | hermon_cmd_init2rtr_qp (struct hermon *hermon, unsigned long qpn, const struct hermonprm_qp_ee_state_transitions *ctx) |
static int | hermon_cmd_rtr2rts_qp (struct hermon *hermon, unsigned long qpn, const struct hermonprm_qp_ee_state_transitions *ctx) |
static int | hermon_cmd_rts2rts_qp (struct hermon *hermon, unsigned long qpn, const struct hermonprm_qp_ee_state_transitions *ctx) |
static int | hermon_cmd_2rst_qp (struct hermon *hermon, unsigned long qpn) |
static int | hermon_cmd_query_qp (struct hermon *hermon, unsigned long qpn, struct hermonprm_qp_ee_state_transitions *ctx) |
static int | hermon_cmd_conf_special_qp (struct hermon *hermon, unsigned int internal_qps, unsigned long base_qpn) |
static int | hermon_cmd_mad_ifc (struct hermon *hermon, unsigned int port, union hermonprm_mad *mad) |
static int | hermon_cmd_read_mcg (struct hermon *hermon, unsigned int index, struct hermonprm_mcg_entry *mcg) |
static int | hermon_cmd_write_mcg (struct hermon *hermon, unsigned int index, const struct hermonprm_mcg_entry *mcg) |
static int | hermon_cmd_mgid_hash (struct hermon *hermon, const union ib_gid *gid, struct hermonprm_mgm_hash *hash) |
static int | hermon_cmd_mod_stat_cfg (struct hermon *hermon, unsigned int mode, unsigned int input_mod, struct hermonprm_scalar_parameter *portion) |
static int | hermon_cmd_query_port (struct hermon *hermon, unsigned int port, struct hermonprm_query_port_cap *query_port) |
static int | hermon_cmd_sense_port (struct hermon *hermon, unsigned int port, struct hermonprm_sense_port *port_type) |
static int | hermon_cmd_run_fw (struct hermon *hermon) |
static int | hermon_cmd_unmap_icm (struct hermon *hermon, unsigned int page_count, const struct hermonprm_scalar_parameter *offset) |
static int | hermon_cmd_map_icm (struct hermon *hermon, const struct hermonprm_virtual_physical_mapping *map) |
static int | hermon_cmd_unmap_icm_aux (struct hermon *hermon) |
static int | hermon_cmd_map_icm_aux (struct hermon *hermon, const struct hermonprm_virtual_physical_mapping *map) |
static int | hermon_cmd_set_icm_size (struct hermon *hermon, const struct hermonprm_scalar_parameter *icm_size, struct hermonprm_scalar_parameter *icm_aux_size) |
static int | hermon_cmd_unmap_fa (struct hermon *hermon) |
static int | hermon_cmd_map_fa (struct hermon *hermon, const struct hermonprm_virtual_physical_mapping *map) |
static int | hermon_alloc_mtt (struct hermon *hermon, const void *memory, size_t len, struct hermon_mtt *mtt) |
Allocate MTT entries. More... | |
static void | hermon_free_mtt (struct hermon *hermon, struct hermon_mtt *mtt) |
Free MTT entries. More... | |
static int | hermon_mod_stat_cfg (struct hermon *hermon, unsigned int port, unsigned int mode, unsigned int offset, struct hermonprm_mod_stat_cfg *stat_cfg) |
Query or modify static configuration. More... | |
static int | hermon_mad (struct ib_device *ibdev, union ib_mad *mad) |
Issue management datagram. More... | |
static int | hermon_dump_cqctx (struct hermon *hermon, struct ib_completion_queue *cq) |
Dump completion queue context (for debugging only) More... | |
static int | hermon_create_cq (struct ib_device *ibdev, struct ib_completion_queue *cq) |
Create completion queue. More... | |
static void | hermon_destroy_cq (struct ib_device *ibdev, struct ib_completion_queue *cq) |
Destroy completion queue. More... | |
static int | hermon_alloc_qpn (struct ib_device *ibdev, struct ib_queue_pair *qp) |
Assign queue pair number. More... | |
static void | hermon_free_qpn (struct ib_device *ibdev, struct ib_queue_pair *qp) |
Free queue pair number. More... | |
static unsigned int | hermon_rate (struct ib_address_vector *av) |
Calculate transmission rate. More... | |
static unsigned int | hermon_sched_queue (struct ib_device *ibdev, struct ib_queue_pair *qp) |
Calculate schedule queue. More... | |
static int | hermon_dump_qpctx (struct hermon *hermon, struct ib_queue_pair *qp) |
Dump queue pair context (for debugging only) More... | |
static int | hermon_create_qp (struct ib_device *ibdev, struct ib_queue_pair *qp) |
Create queue pair. More... | |
static int | hermon_modify_qp (struct ib_device *ibdev, struct ib_queue_pair *qp) |
Modify queue pair. More... | |
static void | hermon_destroy_qp (struct ib_device *ibdev, struct ib_queue_pair *qp) |
Destroy queue pair. More... | |
static unsigned int | hermon_fill_nop_send_wqe (struct ib_device *ibdev __unused, struct ib_queue_pair *qp __unused, struct ib_address_vector *dest __unused, struct io_buffer *iobuf __unused, union hermon_send_wqe *wqe) |
Construct UD send work queue entry. More... | |
static unsigned int | hermon_fill_ud_send_wqe (struct ib_device *ibdev, struct ib_queue_pair *qp __unused, struct ib_address_vector *dest, struct io_buffer *iobuf, union hermon_send_wqe *wqe) |
Construct UD send work queue entry. More... | |
static unsigned int | hermon_fill_mlx_send_wqe (struct ib_device *ibdev, struct ib_queue_pair *qp, struct ib_address_vector *dest, struct io_buffer *iobuf, union hermon_send_wqe *wqe) |
Construct MLX send work queue entry. More... | |
static unsigned int | hermon_fill_rc_send_wqe (struct ib_device *ibdev, struct ib_queue_pair *qp __unused, struct ib_address_vector *dest __unused, struct io_buffer *iobuf, union hermon_send_wqe *wqe) |
Construct RC send work queue entry. More... | |
static unsigned int | hermon_fill_eth_send_wqe (struct ib_device *ibdev, struct ib_queue_pair *qp __unused, struct ib_address_vector *dest __unused, struct io_buffer *iobuf, union hermon_send_wqe *wqe) |
Construct Ethernet send work queue entry. More... | |
static int | hermon_post_send (struct ib_device *ibdev, struct ib_queue_pair *qp, struct ib_address_vector *dest, struct io_buffer *iobuf) |
Post send work queue entry. More... | |
static int | hermon_post_recv (struct ib_device *ibdev, struct ib_queue_pair *qp, struct io_buffer *iobuf) |
Post receive work queue entry. More... | |
static int | hermon_complete (struct ib_device *ibdev, struct ib_completion_queue *cq, union hermonprm_completion_entry *cqe) |
Handle completion. More... | |
static void | hermon_poll_cq (struct ib_device *ibdev, struct ib_completion_queue *cq) |
Poll completion queue. More... | |
static int | hermon_dump_eqctx (struct hermon *hermon, struct hermon_event_queue *hermon_eq) |
Dump event queue context (for debugging only) More... | |
static int | hermon_dump_eqes (struct hermon *hermon, struct hermon_event_queue *hermon_eq) |
Dump unconsumed event queue entries (for debugging only) More... | |
static int | hermon_create_eq (struct hermon *hermon) |
Create event queue. More... | |
static void | hermon_destroy_eq (struct hermon *hermon) |
Destroy event queue. More... | |
static void | hermon_event_port_state_change (struct hermon *hermon, union hermonprm_event_entry *eqe) |
Handle port state event. More... | |
static void | hermon_event_port_mgmnt_change (struct hermon *hermon, union hermonprm_event_entry *eqe) |
Handle port management event. More... | |
static void | hermon_poll_eq (struct ib_device *ibdev) |
Poll event queue. More... | |
static int | hermon_map_vpm (struct hermon *hermon, int(*map)(struct hermon *hermon, const struct hermonprm_virtual_physical_mapping *), uint64_t va, physaddr_t pa, size_t len) |
Map virtual to physical address for firmware usage. More... | |
static int | hermon_start_firmware (struct hermon *hermon) |
Start firmware running. More... | |
static void | hermon_stop_firmware (struct hermon *hermon) |
Stop firmware running. More... | |
static int | hermon_get_cap (struct hermon *hermon) |
Get device limits. More... | |
static uint64_t | icm_align (uint64_t icm_offset, size_t len) |
Align ICM table. More... | |
static int | hermon_map_icm (struct hermon *hermon, struct hermonprm_init_hca *init_hca) |
Map ICM (allocating if necessary) More... | |
static void | hermon_unmap_icm (struct hermon *hermon) |
Unmap ICM. More... | |
static int | hermon_reset (struct hermon *hermon) |
Reset device. More... | |
static int | hermon_setup_mpt (struct hermon *hermon) |
Set up memory protection table. More... | |
static int | hermon_unmap_mpt (struct hermon *hermon) |
Unmap memory protection table. More... | |
static int | hermon_configure_special_qps (struct hermon *hermon) |
Configure special queue pairs. More... | |
static int | hermon_start (struct hermon *hermon, int running) |
Start Hermon device. More... | |
static void | hermon_stop (struct hermon *hermon) |
Stop Hermon device. More... | |
static int | hermon_open (struct hermon *hermon) |
Open Hermon device. More... | |
static void | hermon_close (struct hermon *hermon) |
Close Hermon device. More... | |
static int | hermon_ib_open (struct ib_device *ibdev) |
Initialise Infiniband link. More... | |
static void | hermon_ib_close (struct ib_device *ibdev) |
Close Infiniband link. More... | |
static int | hermon_inform_sma (struct ib_device *ibdev, union ib_mad *mad) |
Inform embedded subnet management agent of a received MAD. More... | |
static int | hermon_mcast_attach (struct ib_device *ibdev, struct ib_queue_pair *qp, union ib_gid *gid) |
Attach to multicast group. More... | |
static void | hermon_mcast_detach (struct ib_device *ibdev, struct ib_queue_pair *qp __unused, union ib_gid *gid) |
Detach from multicast group. More... | |
static int | hermon_register_ibdev (struct hermon *hermon, struct hermon_port *port) |
Register Hermon Infiniband device. More... | |
static void | hermon_state_change_ibdev (struct hermon *hermon __unused, struct hermon_port *port, int link_up __unused) |
Handle Hermon Infiniband device port state change. More... | |
static void | hermon_unregister_ibdev (struct hermon *hermon __unused, struct hermon_port *port) |
Unregister Hermon Infiniband device. More... | |
static int | hermon_eth_transmit (struct net_device *netdev, struct io_buffer *iobuf) |
Transmit packet via Hermon Ethernet device. More... | |
static void | hermon_eth_complete_send (struct ib_device *ibdev __unused, struct ib_queue_pair *qp, struct io_buffer *iobuf, int rc) |
Handle Hermon Ethernet device send completion. More... | |
static void | hermon_eth_complete_recv (struct ib_device *ibdev __unused, struct ib_queue_pair *qp, struct ib_address_vector *dest __unused, struct ib_address_vector *source, struct io_buffer *iobuf, int rc) |
Handle Hermon Ethernet device receive completion. More... | |
static void | hermon_eth_poll (struct net_device *netdev) |
Poll Hermon Ethernet device. More... | |
static int | hermon_eth_open (struct net_device *netdev) |
Open Hermon Ethernet device. More... | |
static void | hermon_eth_close (struct net_device *netdev) |
Close Hermon Ethernet device. More... | |
static int | hermon_register_netdev (struct hermon *hermon, struct hermon_port *port) |
Register Hermon Ethernet device. More... | |
static void | hermon_state_change_netdev (struct hermon *hermon __unused, struct hermon_port *port, int link_up) |
Handle Hermon Ethernet device port state change. More... | |
static void | hermon_unregister_netdev (struct hermon *hermon __unused, struct hermon_port *port) |
Unregister Hermon Ethernet device. More... | |
static const char * | hermon_name_port_type (unsigned int port_type) |
Name port type. More... | |
static int | hermon_sense_port_type (struct hermon *hermon, struct hermon_port *port) |
Sense port type. More... | |
static int | hermon_set_port_type (struct hermon *hermon, struct hermon_port *port) |
Set port type. More... | |
static int | hermon_bofm_harvest (struct bofm_device *bofm, unsigned int mport, uint8_t *mac) |
Harvest Ethernet MAC for BOFM. More... | |
static int | hermon_bofm_update (struct bofm_device *bofm, unsigned int mport, const uint8_t *mac) |
Update Ethernet MAC for BOFM. More... | |
static struct hermon * | hermon_alloc (void) |
Allocate Hermon device. More... | |
static void | hermon_free (struct hermon *hermon) |
Free Hermon device. More... | |
static int | hermon_probe (struct pci_device *pci) |
Probe PCI device. More... | |
static void | hermon_remove (struct pci_device *pci) |
Remove PCI device. More... | |
static int | hermon_bofm_probe (struct pci_device *pci) |
Probe PCI device for BOFM. More... | |
static void | hermon_bofm_remove (struct pci_device *pci) |
Remove PCI device for BOFM. More... | |
Variables | |
static uint8_t | hermon_qp_st [] |
Queue pair transport service type map. More... | |
static unsigned int(* | hermon_fill_send_wqe [])(struct ib_device *ibdev, struct ib_queue_pair *qp, struct ib_address_vector *dest, struct io_buffer *iobuf, union hermon_send_wqe *wqe) |
Work queue entry constructors. More... | |
static struct ib_device_operations | hermon_ib_operations |
Hermon Infiniband operations. More... | |
static struct hermon_port_type | hermon_port_type_ib |
Hermon Infiniband port type. More... | |
static struct ib_queue_pair_operations | hermon_eth_qp_op |
Hermon Ethernet queue pair operations. More... | |
static struct ib_completion_queue_operations | hermon_eth_cq_op |
Hermon Ethernet device completion operations. More... | |
static struct net_device_operations | hermon_eth_operations |
Hermon Ethernet network device operations. More... | |
static struct hermon_port_type | hermon_port_type_eth |
Hermon Ethernet port type. More... | |
static struct bofm_operations | hermon_bofm_operations |
Hermon BOFM operations. More... | |
static struct pci_device_id | hermon_nics [] |
struct pci_driver hermon_driver | __pci_driver |
struct pci_driver hermon_bofm_driver | __bofm_driver |
Mellanox Hermon Infiniband HCA.
Definition in file hermon.c.
#define HERMON_MOD_STAT_CFG_OFFSET | ( | field | ) |
Calculate offset within static configuration.
field | Field |
offset | Offset |
#define HERMON_ETH_NUM_SEND_WQES 16 |
#define HERMON_ETH_NUM_RECV_WQES 8 |
#define HERMON_ETH_NUM_CQES 32 |
#define HERMON_SENSE_PORT_TIMEOUT ( TICKS_PER_SEC / 2 ) |
FILE_LICENCE | ( | GPL2_OR_LATER | ) |
|
static |
Allocate offsets within usage bitmask.
bits | Usage bitmask |
bits_len | Length of usage bitmask |
num_bits | Number of contiguous bits to allocate within bitmask |
bit | First free bit within bitmask, or negative error |
Definition at line 71 of file hermon.c.
References bit, bits, and ENFILE.
Referenced by hermon_alloc_mtt(), hermon_alloc_qpn(), and hermon_create_cq().
|
static |
Free offsets within usage bitmask.
bits | Usage bitmask |
bit | Starting bit within bitmask |
num_bits | Number of contiguous bits to free within bitmask |
Definition at line 112 of file hermon.c.
Referenced by hermon_alloc_mtt(), hermon_create_cq(), hermon_destroy_cq(), hermon_free_mtt(), and hermon_free_qpn().
|
static |
Wait for Hermon command completion.
hermon | Hermon device |
hcr | HCA command registers |
rc | Return status code |
Definition at line 136 of file hermon.c.
References hermon::config, EBUSY, HERMON_HCR_MAX_WAIT_MS, HERMON_HCR_REG, MLX_GET, readl(), hermon::toggle, and udelay().
Referenced by hermon_cmd().
|
static |
Issue HCA command.
hermon | Hermon device |
command | Command opcode, flags and input/output lengths |
op_mod | Opcode modifier (0 if no modifier applicable) |
in | Input parameters |
in_mod | Input modifier (0 if no modifier applicable) |
out | Output parameters |
rc | Return status code |
Definition at line 162 of file hermon.c.
References assert(), barrier, hermon::config, DBGC, DBGC2, DBGC2_HDA, DBGC_HDA, EIO, hermon_cmd_wait(), HERMON_HCR_BASE, HERMON_HCR_IN_LEN, HERMON_HCR_IN_MBOX, HERMON_HCR_OPCODE, HERMON_HCR_OUT_LEN, HERMON_HCR_OUT_MBOX, HERMON_HCR_REG, HERMON_MBOX_SIZE, in, hermon::mailbox_in, hermon::mailbox_out, memcpy(), memset(), MLX_FILL_1, MLX_FILL_4, MLX_FILL_H, MLX_GET, opcode, out, rc, readl(), status, hermon::toggle, virt_to_bus(), virt_to_phys(), and writel().
Referenced by hermon_cmd_2rst_qp(), hermon_cmd_close_hca(), hermon_cmd_close_port(), hermon_cmd_conf_special_qp(), hermon_cmd_hw2sw_cq(), hermon_cmd_hw2sw_eq(), hermon_cmd_hw2sw_mpt(), hermon_cmd_init2rtr_qp(), hermon_cmd_init_hca(), hermon_cmd_init_port(), hermon_cmd_mad_ifc(), hermon_cmd_map_eq(), hermon_cmd_map_fa(), hermon_cmd_map_icm(), hermon_cmd_map_icm_aux(), hermon_cmd_mgid_hash(), hermon_cmd_mod_stat_cfg(), hermon_cmd_query_cq(), hermon_cmd_query_dev_cap(), hermon_cmd_query_eq(), hermon_cmd_query_fw(), hermon_cmd_query_port(), hermon_cmd_query_qp(), hermon_cmd_read_mcg(), hermon_cmd_rst2init_qp(), hermon_cmd_rtr2rts_qp(), hermon_cmd_rts2rts_qp(), hermon_cmd_run_fw(), hermon_cmd_sense_port(), hermon_cmd_set_icm_size(), hermon_cmd_set_port(), hermon_cmd_sw2hw_cq(), hermon_cmd_sw2hw_eq(), hermon_cmd_sw2hw_mpt(), hermon_cmd_unmap_fa(), hermon_cmd_unmap_icm(), hermon_cmd_unmap_icm_aux(), hermon_cmd_write_mcg(), and hermon_cmd_write_mtt().
|
inlinestatic |
Definition at line 269 of file hermon.c.
References hermon_cmd(), HERMON_HCR_OUT_CMD, HERMON_HCR_QUERY_DEV_CAP, and NULL.
Referenced by hermon_get_cap().
|
inlinestatic |
Definition at line 278 of file hermon.c.
References hermon_cmd(), HERMON_HCR_OUT_CMD, HERMON_HCR_QUERY_FW, and NULL.
Referenced by hermon_start_firmware().
|
inlinestatic |
Definition at line 286 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_INIT_HCA, and NULL.
Referenced by hermon_start().
|
inlinestatic |
Definition at line 295 of file hermon.c.
References hermon_cmd(), HERMON_HCR_CLOSE_HCA, HERMON_HCR_VOID_CMD, and NULL.
Referenced by hermon_start(), and hermon_stop().
|
inlinestatic |
Definition at line 302 of file hermon.c.
References hermon_cmd(), HERMON_HCR_INIT_PORT, HERMON_HCR_VOID_CMD, NULL, and port.
Referenced by hermon_eth_open(), and hermon_ib_open().
|
inlinestatic |
Definition at line 309 of file hermon.c.
References hermon_cmd(), HERMON_HCR_CLOSE_PORT, HERMON_HCR_VOID_CMD, NULL, and port.
Referenced by hermon_eth_close(), and hermon_ib_close().
|
inlinestatic |
Definition at line 316 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_SET_PORT, and NULL.
Referenced by hermon_eth_open(), and hermon_ib_open().
|
inlinestatic |
Definition at line 326 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_SW2HW_MPT, index, and NULL.
Referenced by hermon_setup_mpt().
|
inlinestatic |
Definition at line 335 of file hermon.c.
References hermon_cmd(), HERMON_HCR_HW2SW_MPT, HERMON_HCR_VOID_CMD, index, and NULL.
Referenced by hermon_unmap_mpt().
|
inlinestatic |
Definition at line 342 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_WRITE_MTT, and NULL.
Referenced by hermon_alloc_mtt().
|
inlinestatic |
Definition at line 351 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_MAP_EQ, and NULL.
Referenced by hermon_create_eq(), and hermon_destroy_eq().
|
inlinestatic |
Definition at line 360 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_SW2HW_EQ, index, and NULL.
Referenced by hermon_create_eq().
|
inlinestatic |
Definition at line 369 of file hermon.c.
References hermon_cmd(), HERMON_HCR_HW2SW_EQ, HERMON_HCR_OUT_CMD, index, and NULL.
Referenced by hermon_create_eq(), and hermon_destroy_eq().
|
inlinestatic |
Definition at line 378 of file hermon.c.
References hermon_cmd(), HERMON_HCR_OUT_CMD, HERMON_HCR_QUERY_EQ, index, and NULL.
Referenced by hermon_dump_eqctx(), and hermon_dump_eqes().
|
inlinestatic |
Definition at line 387 of file hermon.c.
References cqn, hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_SW2HW_CQ, and NULL.
Referenced by hermon_create_cq().
|
inlinestatic |
Definition at line 396 of file hermon.c.
References cqn, hermon_cmd(), HERMON_HCR_HW2SW_CQ, HERMON_HCR_OUT_CMD, and NULL.
Referenced by hermon_destroy_cq().
|
inlinestatic |
Definition at line 405 of file hermon.c.
References cqn, hermon_cmd(), HERMON_HCR_OUT_CMD, HERMON_HCR_QUERY_CQ, and NULL.
Referenced by hermon_dump_cqctx().
|
inlinestatic |
Definition at line 414 of file hermon.c.
References ctx, hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_RST2INIT_QP, NULL, and qpn.
Referenced by hermon_create_qp().
|
inlinestatic |
Definition at line 423 of file hermon.c.
References ctx, hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_INIT2RTR_QP, NULL, and qpn.
Referenced by hermon_modify_qp().
|
inlinestatic |
Definition at line 432 of file hermon.c.
References ctx, hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_RTR2RTS_QP, NULL, and qpn.
Referenced by hermon_modify_qp().
|
inlinestatic |
Definition at line 441 of file hermon.c.
References ctx, hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_RTS2RTS_QP, NULL, and qpn.
Referenced by hermon_modify_qp().
|
inlinestatic |
Definition at line 450 of file hermon.c.
References hermon_cmd(), HERMON_HCR_2RST_QP, HERMON_HCR_VOID_CMD, NULL, and qpn.
Referenced by hermon_create_qp(), and hermon_destroy_qp().
|
inlinestatic |
Definition at line 457 of file hermon.c.
References ctx, hermon_cmd(), HERMON_HCR_OUT_CMD, HERMON_HCR_QUERY_QP, NULL, and qpn.
Referenced by hermon_dump_qpctx().
|
inlinestatic |
Definition at line 466 of file hermon.c.
References hermon_cmd(), HERMON_HCR_CONF_SPECIAL_QP, HERMON_HCR_VOID_CMD, and NULL.
Referenced by hermon_configure_special_qps().
|
inlinestatic |
Definition at line 474 of file hermon.c.
References hermon_cmd(), HERMON_HCR_INOUT_CMD, HERMON_HCR_MAD_IFC, mad, and port.
Referenced by hermon_mad().
|
inlinestatic |
Definition at line 484 of file hermon.c.
References hermon_cmd(), HERMON_HCR_OUT_CMD, HERMON_HCR_READ_MCG, index, and NULL.
Referenced by hermon_mcast_attach().
|
inlinestatic |
Definition at line 493 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_WRITE_MCG, index, and NULL.
Referenced by hermon_mcast_attach(), and hermon_mcast_detach().
|
inlinestatic |
Definition at line 502 of file hermon.c.
References gid, hash, hermon_cmd(), HERMON_HCR_INOUT_CMD, and HERMON_HCR_MGID_HASH.
Referenced by hermon_mcast_attach(), and hermon_mcast_detach().
|
inlinestatic |
Definition at line 512 of file hermon.c.
References hermon_cmd(), HERMON_HCR_INOUT_CMD, and HERMON_HCR_MOD_STAT_CFG.
Referenced by hermon_mod_stat_cfg().
|
inlinestatic |
Definition at line 523 of file hermon.c.
References hermon_cmd(), HERMON_HCR_OUT_CMD, HERMON_HCR_QUERY_PORT, NULL, and port.
Referenced by hermon_set_port_type().
|
inlinestatic |
Definition at line 532 of file hermon.c.
References hermon_cmd(), HERMON_HCR_OUT_CMD, HERMON_HCR_SENSE_PORT, NULL, and port.
Referenced by hermon_sense_port_type().
|
inlinestatic |
Definition at line 541 of file hermon.c.
References hermon_cmd(), HERMON_HCR_RUN_FW, HERMON_HCR_VOID_CMD, and NULL.
Referenced by hermon_start_firmware().
|
inlinestatic |
Definition at line 548 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_UNMAP_ICM, NULL, and offset.
Referenced by hermon_unmap_icm().
|
inlinestatic |
Definition at line 557 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_MAP_ICM, map, and NULL.
Referenced by hermon_map_icm().
|
inlinestatic |
Definition at line 566 of file hermon.c.
References hermon_cmd(), HERMON_HCR_UNMAP_ICM_AUX, HERMON_HCR_VOID_CMD, and NULL.
Referenced by hermon_map_icm(), and hermon_unmap_icm().
|
inlinestatic |
Definition at line 573 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_MAP_ICM_AUX, map, and NULL.
Referenced by hermon_map_icm().
|
inlinestatic |
Definition at line 582 of file hermon.c.
References hermon_cmd(), HERMON_HCR_INOUT_CMD, and HERMON_HCR_SET_ICM_SIZE.
Referenced by hermon_map_icm().
|
inlinestatic |
Definition at line 593 of file hermon.c.
References hermon_cmd(), HERMON_HCR_UNMAP_FA, HERMON_HCR_VOID_CMD, and NULL.
Referenced by hermon_start_firmware(), and hermon_stop_firmware().
|
inlinestatic |
Definition at line 600 of file hermon.c.
References hermon_cmd(), HERMON_HCR_IN_CMD, HERMON_HCR_MAP_FA, map, and NULL.
Referenced by hermon_start_firmware().
|
static |
Allocate MTT entries.
hermon | Hermon device |
memory | Memory to map into MTT |
len | Length of memory to map |
mtt | MTT descriptor to fill in |
rc | Return status code |
Definition at line 624 of file hermon.c.
References addr, hermon::cap, DBGC, hermon_bitmask_alloc(), hermon_bitmask_free(), hermon_cmd_write_mtt(), HERMON_MAX_MTTS, HERMON_PAGE_SIZE, len, memset(), MLX_FILL_1, MLX_FILL_2, MLX_FILL_H, hermonprm_write_mtt::mtt, hermonprm_write_mtt::mtt_base_addr, hermon_dev_cap::mtt_entry_size, hermon::mtt_inuse, num_pages, page_offset, rc, hermon_dev_cap::reserved_mtts, start, strerror(), value, and virt_to_phys().
Referenced by hermon_create_cq(), hermon_create_eq(), and hermon_create_qp().
|
static |
Free MTT entries.
hermon | Hermon device |
mtt | MTT descriptor |
Definition at line 700 of file hermon.c.
References DBGC, hermon_bitmask_free(), hermonprm_write_mtt::mtt, and hermon::mtt_inuse.
Referenced by hermon_create_cq(), hermon_create_eq(), hermon_create_qp(), hermon_destroy_cq(), hermon_destroy_eq(), and hermon_destroy_qp().
|
static |
Query or modify static configuration.
hermon | Hermon device |
port | Port |
mode | Command mode |
offset | Offset within static configuration |
stat_cfg | Static configuration |
rc | Return status code |
Definition at line 737 of file hermon.c.
References assert(), be32_to_cpu, hermon_cmd_mod_stat_cfg(), memset(), MLX_FILL_2, offset, port, and rc.
Referenced by hermon_bofm_harvest(), and hermon_bofm_update().
Issue management datagram.
ibdev | Infiniband device |
mad | Management datagram |
rc | Return status code |
Definition at line 777 of file hermon.c.
References DBGC, EIO, ib_mad::hdr, hermon_cmd_mad_ifc(), ib_get_drvdata(), mad, hermonprm_mad::mad, memcpy(), ntohs, ib_device::port, rc, static_assert, ib_mad_hdr::status, and strerror().
Referenced by hermon_event_port_mgmnt_change(), hermon_ib_open(), hermon_inform_sma(), hermon_poll_eq(), hermon_register_ibdev(), and hermon_state_change_ibdev().
|
static |
Dump completion queue context (for debugging only)
hermon | Hermon device |
cq | Completion queue |
rc | Return status code |
Definition at line 822 of file hermon.c.
References ib_completion_queue::cqn, DBG_LOG, DBGC, DBGC_HDA, hermon_cmd_query_cq(), memset(), rc, and strerror().
|
static |
Create completion queue.
ibdev | Infiniband device |
cq | Completion queue |
rc | Return status code |
Definition at line 850 of file hermon.c.
References barrier, c_eqn, hermon::cap, hermon::cq_inuse, hermon_completion_queue::cqe, hermon_completion_queue::cqe_size, ib_completion_queue::cqn, DBGC, hermon_completion_queue::doorbell, ENOMEM, hermon::eq, hermon_event_queue::eqn, fls, free, free_phys(), hermon_alloc_mtt(), hermon_bitmask_alloc(), hermon_bitmask_free(), hermon_cmd_sw2hw_cq(), hermon_free_mtt(), HERMON_MAX_CQS, HERMON_UAR_NON_EQ_PAGE, ib_cq_set_drvdata(), ib_get_drvdata(), malloc_phys(), memset(), MLX_FILL_1, MLX_FILL_2, MLX_FILL_H, hermon_completion_queue::mtt, hermon_mtt::mtt_base_addr, hermonprm_completion_entry::normal, ib_completion_queue::num_cqes, owner, page_offset, hermon_mtt::page_offset, rc, hermon_dev_cap::reserved_cqs, st, strerror(), virt_to_phys(), and zalloc().
|
static |
Destroy completion queue.
ibdev | Infiniband device |
cq | Completion queue |
Definition at line 965 of file hermon.c.
References hermon::cap, hermon::cq_inuse, hermon_completion_queue::cqe, hermon_completion_queue::cqe_size, ib_completion_queue::cqn, DBGC, hermon_completion_queue::doorbell, free, free_phys(), hermon_bitmask_free(), hermon_cmd_hw2sw_cq(), hermon_free_mtt(), ib_cq_get_drvdata(), ib_cq_set_drvdata(), ib_get_drvdata(), hermon_completion_queue::mtt, NULL, rc, hermon_dev_cap::reserved_cqs, and strerror().
|
static |
Assign queue pair number.
ibdev | Infiniband device |
qp | Queue pair |
rc | Return status code |
Definition at line 1010 of file hermon.c.
References DBGC, ENOTSUP, hermon_bitmask_alloc(), HERMON_MAX_QPS, HERMON_PORT_BASE, HERMON_QPN_RANDOM_MASK, ib_get_drvdata(), IB_QPT_ETH, IB_QPT_GSI, IB_QPT_RC, IB_QPT_SMI, IB_QPT_UD, ib_device::port, qp, hermon::qp_inuse, hermon::qpn_base, random(), and hermon::special_qpn_base.
Referenced by hermon_create_qp().
|
static |
Free queue pair number.
ibdev | Infiniband device |
qp | Queue pair |
Definition at line 1053 of file hermon.c.
References hermon_bitmask_free(), HERMON_QPN_RANDOM_MASK, ib_get_drvdata(), qp, hermon::qp_inuse, and hermon::qpn_base.
Referenced by hermon_create_qp(), and hermon_destroy_qp().
|
static |
Calculate transmission rate.
av | Address vector |
hermon_rate | Hermon rate |
Definition at line 1070 of file hermon.c.
References IB_RATE_120, IB_RATE_2_5, and ib_address_vector::rate.
Referenced by hermon_fill_mlx_send_wqe(), hermon_fill_ud_send_wqe(), and hermon_modify_qp().
|
static |
Calculate schedule queue.
ibdev | Infiniband device |
qp | Queue pair |
sched_queue | Schedule queue |
Definition at line 1082 of file hermon.c.
References HERMON_SCHED_DEFAULT, HERMON_SCHED_QP0, IB_QPT_SMI, ib_device::port, and qp.
Referenced by hermon_modify_qp().
|
static |
Dump queue pair context (for debugging only)
hermon | Hermon device |
qp | Queue pair |
rc | Return status code |
Definition at line 1106 of file hermon.c.
References DBG_LOG, DBGC, DBGC_HDA, hermon_cmd_query_qp(), ib_qp_get_drvdata(), memset(), MLX_GET, qp, rc, state, hermon_queue_pair::state, and strerror().
Referenced by hermon_complete().
|
static |
Create queue pair.
ibdev | Infiniband device |
qp | Queue pair |
rc | Return status code |
Definition at line 1143 of file hermon.c.
References data, hermonprm_recv_wqe::data, DBGC, hermon_send_work_queue::doorbell, hermon_recv_work_queue::doorbell, ENOMEM, fls, free, free_phys(), hermon_recv_work_queue::grh, hermon_recv_work_queue::grh_size, hermon_alloc_mtt(), hermon_alloc_qpn(), hermon_cmd_2rst_qp(), hermon_cmd_rst2init_qp(), HERMON_DB_POST_SND_OFFSET, hermon_free_mtt(), hermon_free_qpn(), HERMON_GLOBAL_PD, HERMON_INVALID_LKEY, HERMON_PAGE_SIZE, HERMON_PM_STATE_MIGRATED, hermon_qp_st, HERMON_QP_ST_INIT, HERMON_UAR_NON_EQ_PAGE, ib_get_drvdata(), ib_qp_set_drvdata(), IB_QPT_GSI, IB_QPT_SMI, IB_QPT_UD, malloc_phys(), memset(), MLX_FILL_1, MLX_FILL_2, MLX_FILL_4, MLX_FILL_H, hermon_queue_pair::mtt, hermon_mtt::mtt_base_addr, hermon_send_work_queue::num_wqes, hermon_mtt::page_offset, qp, rc, hermon_recv_wqe::recv, hermon_queue_pair::recv, hermon_queue_pair::send, hermon_queue_pair::state, strerror(), hermon::uar, virt_to_phys(), hermon_send_work_queue::wqe, hermon_recv_work_queue::wqe, hermon_queue_pair::wqe, hermon_send_work_queue::wqe_size, hermon_recv_work_queue::wqe_size, hermon_queue_pair::wqe_size, and zalloc().
|
static |
Modify queue pair.
ibdev | Infiniband device |
qp | Queue pair |
rc | Return status code |
Definition at line 1312 of file hermon.c.
References DBGC, hermon_cmd_init2rtr_qp(), hermon_cmd_rtr2rts_qp(), hermon_cmd_rts2rts_qp(), HERMON_MTU_2048, HERMON_MTU_ETH, HERMON_QP_OPT_PARAM_QKEY, HERMON_QP_ST_RTR, HERMON_QP_ST_RTS, hermon_rate(), HERMON_RETRY_MAX, hermon_sched_queue(), ib_get_drvdata(), ib_qp_get_drvdata(), IB_QPT_ETH, memcpy(), memset(), MLX_FILL_1, MLX_FILL_2, opt_param_mask, qp, rc, hermon_queue_pair::state, and strerror().
|
static |
Destroy queue pair.
ibdev | Infiniband device |
qp | Queue pair |
Definition at line 1390 of file hermon.c.
References DBGC, hermon_recv_work_queue::doorbell, free, free_phys(), hermon_cmd_2rst_qp(), hermon_free_mtt(), hermon_free_qpn(), ib_get_drvdata(), ib_qp_get_drvdata(), ib_qp_set_drvdata(), hermon_queue_pair::mtt, NULL, qp, rc, hermon_queue_pair::recv, strerror(), hermon_queue_pair::wqe, and hermon_queue_pair::wqe_size.
|
static |
Construct UD send work queue entry.
ibdev | Infiniband device |
qp | Queue pair |
dest | Destination address vector |
iobuf | I/O buffer |
wqe | Send work queue entry |
opcode | Control opcode |
Definition at line 1437 of file hermon.c.
References c, ds, HERMON_OPCODE_NOP, MLX_FILL_1, and hermon_queue_pair::wqe.
|
static |
Construct UD send work queue entry.
ibdev | Infiniband device |
qp | Queue pair |
dest | Destination address vector |
iobuf | I/O buffer |
wqe | Send work queue entry |
opcode | Control opcode |
Definition at line 1459 of file hermon.c.
References byte_count, c, hermonprm_ud_send_wqe::ctrl, data, io_buffer::data, hermonprm_ud_send_wqe::data, dest, ds, HERMON_GLOBAL_PD, HERMON_OPCODE_SEND, hermon_rate(), ib_get_drvdata(), iob_len(), hermon::lkey, memcpy(), MLX_FILL_1, MLX_FILL_2, MLX_FILL_H, offsetof, ib_device::port, typeof(), hermonprm_ud_send_wqe::ud, hermon_send_wqe::ud, and virt_to_bus().
|
static |
Construct MLX send work queue entry.
ibdev | Infiniband device |
qp | Queue pair |
dest | Destination address vector |
iobuf | I/O buffer |
wqe | Send work queue entry |
opcode | Control opcode |
Definition at line 1501 of file hermon.c.
References byte_count, c, hermonprm_mlx_send_wqe::ctrl, data, io_buffer::data, hermonprm_mlx_send_wqe::data, dest, ds, headers, hermonprm_mlx_send_wqe::headers, HERMON_OPCODE_SEND, hermon_rate(), ib_get_drvdata(), ib_push(), IB_QPN_SMI, iob_len(), iob_populate(), iob_reserve, hermon::lkey, hermon_send_wqe::mlx, MLX_FILL_1, MLX_FILL_5, MLX_FILL_H, offsetof, qp, rlid, typeof(), and virt_to_bus().
|
static |
Construct RC send work queue entry.
ibdev | Infiniband device |
qp | Queue pair |
dest | Destination address vector |
iobuf | I/O buffer |
wqe | Send work queue entry |
opcode | Control opcode |
Definition at line 1553 of file hermon.c.
References byte_count, c, hermonprm_rc_send_wqe::ctrl, data, io_buffer::data, hermonprm_rc_send_wqe::data, ds, HERMON_OPCODE_SEND, ib_get_drvdata(), iob_len(), hermon::lkey, MLX_FILL_1, MLX_FILL_H, offsetof, hermon_send_wqe::rc, typeof(), and virt_to_bus().
|
static |
Construct Ethernet send work queue entry.
ibdev | Infiniband device |
qp | Queue pair |
dest | Destination address vector |
iobuf | I/O buffer |
wqe | Send work queue entry |
opcode | Control opcode |
Definition at line 1583 of file hermon.c.
References byte_count, c, hermonprm_eth_send_wqe::ctrl, data, io_buffer::data, hermonprm_eth_send_wqe::data, ds, hermon_send_wqe::eth, HERMON_OPCODE_SEND, ib_get_drvdata(), iob_len(), hermon::lkey, hermon_send_wqe::mlx, MLX_FILL_1, MLX_FILL_2, MLX_FILL_H, offsetof, typeof(), and virt_to_bus().
|
static |
Post send work queue entry.
ibdev | Infiniband device |
qp | Queue pair |
dest | Destination address vector |
iobuf | I/O buffer |
rc | Return status code |
Definition at line 1629 of file hermon.c.
References assert(), barrier, DBGC, DBGCP, DBGCP_HDA, dest, hermon_send_work_queue::doorbell, hermonprm_doorbell_register::dword, ENOBUFS, hermon_fill_send_wqe, ib_get_drvdata(), ib_qp_get_drvdata(), ib_work_queue::iobufs, memset(), MLX_FILL_1, MLX_FILL_2, ib_work_queue::next_idx, NULL, ib_work_queue::num_wqes, hermon_send_work_queue::num_wqes, opcode, owner, qp, hermonprm_doorbell_register::send, hermon_queue_pair::send, virt_to_phys(), hermon_send_work_queue::wqe, and writel().
|
static |
Post receive work queue entry.
ibdev | Infiniband device |
qp | Queue pair |
iobuf | I/O buffer |
rc | Return status code |
Definition at line 1690 of file hermon.c.
References barrier, byte_count, data, io_buffer::data, hermonprm_recv_wqe::data, DBGC, hermon_recv_work_queue::doorbell, ENOBUFS, grh, hermon_recv_work_queue::grh, ib_get_drvdata(), ib_qp_get_drvdata(), iob_tailroom(), ib_work_queue::iobufs, hermon::lkey, MLX_FILL_1, MLX_FILL_H, ib_work_queue::next_idx, ib_work_queue::num_wqes, qp, hermon_recv_wqe::recv, hermon_queue_pair::recv, virt_to_bus(), and hermon_recv_work_queue::wqe.
|
static |
Handle completion.
ibdev | Infiniband device |
cq | Completion queue |
cqe | Hardware completion queue entry |
rc | Return status code |
Definition at line 1746 of file hermon.c.
References assert(), byte_cnt, ib_completion_queue::cqn, DBGC, DBGCP, DBGCP_HDA, ib_global_route_header::dgid, EINVAL, EIO, hermonprm_completion_entry::error, ib_address_vector::gid, ib_address_vector::gid_present, grh, hermon_recv_work_queue::grh, hermon_dump_qpctx(), HERMON_OPCODE_RECV_ERROR, HERMON_OPCODE_SEND_ERROR, ib_complete_recv(), ib_complete_send(), ib_find_wq(), ib_get_drvdata(), ib_qp_get_drvdata(), IB_QPT_ETH, IB_QPT_GSI, IB_QPT_RC, IB_QPT_SMI, IB_QPT_UD, iob_put, iob_tailroom(), ib_work_queue::iobufs, len, ib_address_vector::lid, memcpy(), memset(), MLX_GET, hermonprm_completion_entry::normal, NULL, ib_work_queue::num_wqes, opcode, qp, ib_work_queue::qp, qpn, ib_address_vector::qpn, rc, hermon_queue_pair::recv, ib_global_route_header::sgid, sl, ib_address_vector::sl, syndrome, virt_to_phys(), ib_address_vector::vlan, ib_address_vector::vlan_present, and wqe_counter.
Referenced by hermon_poll_cq().
|
static |
Poll completion queue.
ibdev | Infiniband device |
cq | Completion queue |
Definition at line 1870 of file hermon.c.
References hermon_completion_queue::cqe, ib_completion_queue::cqn, DBGC, DBGC_HDA, hermon_completion_queue::doorbell, hermon_complete(), ib_cq_get_drvdata(), ib_get_drvdata(), MLX_FILL_1, MLX_GET, ib_completion_queue::next_idx, hermonprm_completion_entry::normal, ib_completion_queue::num_cqes, owner, rc, strerror(), and virt_to_phys().
|
static |
Dump event queue context (for debugging only)
hermon | Hermon device |
hermon_eq | Event queue |
rc | Return status code |
Definition at line 1920 of file hermon.c.
References DBG_LOG, DBGC, DBGC_HDA, hermon_event_queue::eqn, hermon_cmd_query_eq(), memset(), rc, and strerror().
|
static |
Dump unconsumed event queue entries (for debugging only)
hermon | Hermon device |
hermon_eq | Event queue |
rc | Return status code |
Definition at line 1952 of file hermon.c.
References cons, consumer_counter, DBG_LOG, DBGC, DBGC_HDA, hermon_event_queue::eqe, hermon_event_queue::eqn, hermonprm_event_entry::generic, hermon_cmd_query_eq(), HERMON_NUM_EQES, memset(), MLX_GET, hermon_event_queue::next_idx, owner, producer_counter, rc, and strerror().
|
static |
Create event queue.
hermon | Hermon device |
rc | Return status code |
Definition at line 2001 of file hermon.c.
References barrier, hermon::cap, DBGC, hermon_event_queue::doorbell, ENOMEM, hermon::eq, hermon_event_queue::eqe, hermon_event_queue::eqe_size, hermon_event_queue::eqn, fls, free_phys(), hermonprm_event_entry::generic, hermon_alloc_mtt(), hermon_cmd_hw2sw_eq(), hermon_cmd_map_eq(), hermon_cmd_sw2hw_eq(), HERMON_DB_EQ_OFFSET, hermon_free_mtt(), HERMON_MAP_EQ, HERMON_NUM_EQES, malloc_phys(), memset(), MLX_FILL_1, MLX_FILL_2, MLX_FILL_H, hermon_event_queue::mtt, hermon_mtt::mtt_base_addr, owner, page_offset, hermon_mtt::page_offset, rc, hermon_dev_cap::reserved_eqs, hermon_dev_cap::reserved_uars, st, strerror(), hermon::uar, and virt_to_phys().
Referenced by hermon_start().
|
static |
Destroy event queue.
hermon | Hermon device |
Definition at line 2095 of file hermon.c.
References DBGC, hermon::eq, hermon_event_queue::eqe, hermon_event_queue::eqe_size, hermon_event_queue::eqn, free_phys(), hermon_cmd_hw2sw_eq(), hermon_cmd_map_eq(), hermon_free_mtt(), HERMON_UNMAP_EQ, memset(), hermon_event_queue::mtt, rc, and strerror().
Referenced by hermon_start(), and hermon_stop().
|
static |
Handle port state event.
hermon | Hermon device |
eqe | Port state change event queue entry |
Definition at line 2134 of file hermon.c.
References hermon::cap, data, DBGC, hermonprm_event_entry::generic, MLX_GET, hermon_dev_cap::num_ports, port, hermon::port, hermonprm_event_entry::port_state_change, hermon_port_type::state_change, and hermon_port::type.
Referenced by hermon_poll_eq().
|
static |
Handle port management event.
hermon | Hermon device |
eqe | Port management change event queue entry |
Definition at line 2163 of file hermon.c.
References hermon::cap, DBGC, hermon_mad(), ib_smc_update(), hermon_port::ibdev, MLX_GET, hermon_dev_cap::num_ports, port, hermon::port, and hermonprm_event_entry::port_mgmnt_change.
Referenced by hermon_poll_eq().
|
static |
Poll event queue.
ibdev | Infiniband device |
Definition at line 2188 of file hermon.c.
References ci, currticks(), DBGC, DBGC_HDA, DBGCP, DBGCP_HDA, hermon_event_queue::doorbell, hermonprm_doorbell_register::dword, hermon::eq, hermon_event_queue::eqe, hermon_event_queue::eqn, hermonprm_doorbell_register::event, hermonprm_event_entry::generic, HERMON_EV_PORT_MGMNT_CHANGE, HERMON_EV_PORT_STATE_CHANGE, hermon_event_port_mgmnt_change(), hermon_event_port_state_change(), HERMON_LINK_POLL_INTERVAL, hermon_mad(), HERMON_NUM_EQES, ib_get_drvdata(), ib_is_open(), IB_PORT_STATE_DOWN, ib_smc_update(), hermon::last_poll, MLX_FILL_1, MLX_GET, hermon_event_queue::next_idx, owner, ib_device::port_state, virt_to_phys(), and writel().
|
static |
Map virtual to physical address for firmware usage.
hermon | Hermon device |
map | Mapping function |
va | Virtual address |
pa | Physical address |
len | Length of region |
rc | Return status code |
Definition at line 2272 of file hermon.c.
References assert(), DBG_DISABLE, DBG_ENABLE, DBGC, DBGLVL_EXTRA, DBGLVL_LOG, end, fls, HERMON_PAGE_SIZE, high, len, low, map, memset(), MLX_FILL_1, MLX_FILL_2, MLX_FILL_H, rc, size, start, and strerror().
Referenced by hermon_map_icm(), and hermon_start_firmware().
|
static |
Start firmware running.
hermon | Hermon device |
rc | Return status code |
Definition at line 2351 of file hermon.c.
References assert(), DBGC, ENOMEM, hermon::firmware_area, hermon::firmware_len, hermon_cmd_map_fa(), hermon_cmd_query_fw(), hermon_cmd_run_fw(), hermon_cmd_unmap_fa(), hermon_map_vpm(), HERMON_PAGE_SIZE, MLX_GET, rc, strerror(), umalloc(), and user_to_phys().
Referenced by hermon_probe(), and hermon_start().
|
static |
Stop firmware running.
hermon | Hermon device |
Definition at line 2418 of file hermon.c.
References DBGC, hermon::firmware_area, hermon_cmd_unmap_fa(), rc, strerror(), and UNULL.
Referenced by hermon_probe(), hermon_start(), and hermon_stop().
|
static |
Get device limits.
hermon | Hermon device |
rc | Return status code |
Definition at line 2443 of file hermon.c.
References hermon_dev_cap::altc_entry_size, hermon_dev_cap::auxc_entry_size, hermon::cap, hermon_dev_cap::cmpt_entry_size, hermon_dev_cap::cqc_entry_size, DBGC, hermon_dev_cap::dmpt_entry_size, hermon_dev_cap::dpdp, hermon_dev_cap::eqc_entry_size, hermon_cmd_query_dev_cap(), HERMON_MAX_PORTS, MLX_GET, hermon_dev_cap::mtt_entry_size, num_ports, hermon_dev_cap::num_ports, hermon_dev_cap::qpc_entry_size, rc, hermon_dev_cap::reserved_cqs, hermon_dev_cap::reserved_eqs, hermon_dev_cap::reserved_mrws, hermon_dev_cap::reserved_mtts, hermon_dev_cap::reserved_qps, hermon_dev_cap::reserved_srqs, hermon_dev_cap::reserved_uars, hermon_dev_cap::srqc_entry_size, and strerror().
Referenced by hermon_probe().
|
static |
Map ICM (allocating if necessary)
hermon | Hermon device |
init_hca | INIT_HCA structure to fill in |
rc | Return status code |
Definition at line 2513 of file hermon.c.
References hermon_dev_cap::altc_entry_size, assert(), hermon_dev_cap::auxc_entry_size, hermon::cap, hermon_dev_cap::cmpt_entry_size, hermon_dev_cap::cqc_entry_size, DBGC, hermon_dev_cap::dmpt_entry_size, ENOMEM, hermon_dev_cap::eqc_entry_size, fls, hermon_cmd_map_icm(), hermon_cmd_map_icm_aux(), hermon_cmd_set_icm_size(), hermon_cmd_unmap_icm_aux(), HERMON_CMPT_MAX_ENTRIES, HERMON_ICM_CQ_CMPT, HERMON_ICM_EQ_CMPT, HERMON_ICM_NUM_REGIONS, HERMON_ICM_OTHER, HERMON_ICM_QP_CMPT, HERMON_ICM_SRQ_CMPT, HERMON_LOG_MULTICAST_HASH_SIZE, hermon_map_vpm(), HERMON_MAX_CQS, HERMON_MAX_EQS, HERMON_MAX_MTTS, HERMON_MAX_QPS, HERMON_PAGE_SIZE, HERMON_RSVD_SPECIAL_QPS, hermon::icm, icm_align(), hermon::icm_aux_len, hermon::icm_len, hermon::icm_map, len, hermon_icm_map::len, memset(), MLX_FILL_1, MLX_FILL_2, MLX_GET, hermon_dev_cap::mtt_entry_size, hermon_icm_map::offset, hermon_dev_cap::qpc_entry_size, rc, hermon_dev_cap::reserved_cqs, hermon_dev_cap::reserved_eqs, hermon_dev_cap::reserved_mrws, hermon_dev_cap::reserved_mtts, hermon_dev_cap::reserved_qps, hermon_dev_cap::reserved_srqs, hermon_dev_cap::srqc_entry_size, strerror(), umalloc(), user_to_phys(), and value.
Referenced by hermon_start().
|
static |
Unmap ICM.
hermon | Hermon device |
Definition at line 2800 of file hermon.c.
References fls, hermon_cmd_unmap_icm(), hermon_cmd_unmap_icm_aux(), HERMON_ICM_NUM_REGIONS, HERMON_PAGE_SIZE, hermon::icm_map, hermon_icm_map::len, memset(), MLX_FILL_1, hermon_icm_map::offset, and value.
Referenced by hermon_start(), and hermon_stop().
|
static |
Reset device.
hermon | Hermon device |
rc | Return status code |
Definition at line 2831 of file hermon.c.
References hermon::config, DBGC, ETIMEDOUT, HERMON_RESET_MAGIC, HERMON_RESET_MAX_WAIT_MS, HERMON_RESET_OFFSET, mdelay(), hermon::pci, pci_backup(), PCI_CONFIG_BACKUP_ALL, PCI_CONFIG_BACKUP_EXCLUDE, pci_read_config_word(), pci_restore(), PCI_VENDOR_ID, hermon::toggle, vendor, pci_device::vendor, and writel().
Referenced by hermon_probe(), and hermon_stop().
|
static |
Set up memory protection table.
hermon | Hermon device |
rc | Return status code |
Definition at line 2877 of file hermon.c.
References hermon::cap, DBGC, hermon_cmd_sw2hw_mpt(), HERMON_GLOBAL_PD, HERMON_MKEY_PREFIX, key, hermon::lkey, memset(), MLX_FILL_1, MLX_FILL_7, rc, hermon_dev_cap::reserved_mrws, and strerror().
Referenced by hermon_start().
|
static |
Unmap memory protection table.
hermon | Hermon device |
rc | Return status code |
Definition at line 2917 of file hermon.c.
References hermon::cap, DBGC, hermon_cmd_hw2sw_mpt(), rc, hermon_dev_cap::reserved_mrws, and strerror().
Referenced by hermon_start(), and hermon_stop().
|
static |
Configure special queue pairs.
hermon | Hermon device |
rc | Return status code |
Definition at line 2936 of file hermon.c.
References hermon::cap, DBGC, hermon_cmd_conf_special_qp(), HERMON_NUM_SPECIAL_QPS, hermon::qpn_base, rc, hermon_dev_cap::reserved_qps, hermon::special_qpn_base, and strerror().
Referenced by hermon_start().
|
static |
Start Hermon device.
hermon | Hermon device |
running | Firmware is already running |
rc | Return status code |
Definition at line 2966 of file hermon.c.
References hermon::cap, DBGC, hermon_cmd_close_hca(), hermon_cmd_init_hca(), hermon_configure_special_qps(), hermon_create_eq(), hermon_destroy_eq(), hermon_map_icm(), hermon_setup_mpt(), hermon_start_firmware(), hermon_stop_firmware(), hermon_unmap_icm(), hermon_unmap_mpt(), hermon_port::ibdev, if(), hermon::lkey, memset(), MLX_FILL_1, hermon_dev_cap::num_ports, hermon::port, rc, ib_device::rdma_key, strerror(), and version.
Referenced by hermon_open(), and hermon_probe().
|
static |
Stop Hermon device.
hermon | Hermon device |
Definition at line 3028 of file hermon.c.
References hermon_cmd_close_hca(), hermon_destroy_eq(), hermon_reset(), hermon_stop_firmware(), hermon_unmap_icm(), and hermon_unmap_mpt().
Referenced by hermon_close(), and hermon_probe().
|
static |
Open Hermon device.
hermon | Hermon device |
rc | Return status code |
Definition at line 3043 of file hermon.c.
References hermon_start(), hermon::open_count, and rc.
Referenced by hermon_eth_open(), and hermon_ib_open().
|
static |
Close Hermon device.
hermon | Hermon device |
Definition at line 3063 of file hermon.c.
References assert(), hermon_stop(), and hermon::open_count.
Referenced by hermon_eth_close(), hermon_eth_open(), hermon_ib_close(), and hermon_ib_open().
|
static |
Initialise Infiniband link.
ibdev | Infiniband device |
rc | Return status code |
Definition at line 3087 of file hermon.c.
References DBGC, hermon_close(), hermon_cmd_init_port(), hermon_cmd_set_port(), hermon_mad(), hermon_open(), hermonprm_set_port::ib, ib_get_drvdata(), IB_MTU_2048, ib_smc_update(), IB_VL_0, memset(), MLX_FILL_1, MLX_FILL_2, MLX_FILL_8, ib_device::port, rc, and strerror().
|
static |
Close Infiniband link.
ibdev | Infiniband device |
Definition at line 3143 of file hermon.c.
References DBGC, hermon_close(), hermon_cmd_close_port(), ib_get_drvdata(), ib_device::port, rc, and strerror().
Inform embedded subnet management agent of a received MAD.
ibdev | Infiniband device |
mad | MAD |
rc | Return status code |
Definition at line 3165 of file hermon.c.
References hermon_mad(), ib_smc_update(), mad, and rc.
|
static |
Attach to multicast group.
ibdev | Infiniband device |
qp | Queue pair |
gid | Multicast GID |
rc | Return status code |
Definition at line 3194 of file hermon.c.
References DBGC, EBUSY, gid, hash, hdr, hermon_cmd_mgid_hash(), hermon_cmd_read_mcg(), hermon_cmd_write_mcg(), ib_get_drvdata(), index, memcpy(), MLX_FILL_1, MLX_GET, qp, qpn, rc, and strerror().
|
static |
Detach from multicast group.
ibdev | Infiniband device |
qp | Queue pair |
gid | Multicast GID |
Definition at line 3248 of file hermon.c.
References DBGC, gid, hash, hermon_cmd_mgid_hash(), hermon_cmd_write_mcg(), ib_get_drvdata(), index, memset(), MLX_GET, rc, and strerror().
|
static |
Register Hermon Infiniband device.
hermon | Hermon device |
port | Hermon port |
rc | Return status code |
Definition at line 3300 of file hermon.c.
References DBGC, ETH_ALEN, hermon_mad(), ib_smc_init(), ib_device::lemac, memcpy(), port, ib_device::port, rc, register_ibdev(), and strerror().
|
static |
Handle Hermon Infiniband device port state change.
hermon | Hermon device |
port | Hermon port |
link_up | Link is up |
Definition at line 3328 of file hermon.c.
References hermon_mad(), ib_smc_update(), and port.
|
static |
Unregister Hermon Infiniband device.
hermon | Hermon device |
port | Hermon port |
Definition at line 3343 of file hermon.c.
References port, and unregister_ibdev().
|
static |
Transmit packet via Hermon Ethernet device.
netdev | Network device |
iobuf | I/O buffer |
rc | Return status code |
Definition at line 3380 of file hermon.c.
References DBGC, ib_get_drvdata(), ib_post_send(), netdev, NULL, port, ib_device::port, net_device::priv, rc, and strerror().
|
static |
Handle Hermon Ethernet device send completion.
ibdev | Infiniband device |
qp | Queue pair |
iobuf | I/O buffer |
rc | Completion status code |
Definition at line 3411 of file hermon.c.
References ib_qp_get_ownerdata(), netdev, netdev_tx_complete_err(), qp, and rc.
|
static |
Handle Hermon Ethernet device receive completion.
ibdev | Infiniband device |
qp | Queue pair |
dest | Destination address vector, or NULL |
source | Source address vector, or NULL |
iobuf | I/O buffer |
rc | Completion status code |
Definition at line 3429 of file hermon.c.
References ib_qp_get_ownerdata(), netdev, qp, rc, tag, ib_address_vector::vlan, vlan_netdev_rx(), vlan_netdev_rx_err(), and ib_address_vector::vlan_present.
|
static |
Poll Hermon Ethernet device.
netdev | Network device |
Definition at line 3459 of file hermon.c.
References ib_poll_eq(), netdev, port, and net_device::priv.
|
static |
Open Hermon Ethernet device.
netdev | Network device |
rc | Return status code |
Definition at line 3472 of file hermon.c.
References DBGC, ETH_FRAME_LEN, FCOE_VLAN_PRIORITY, hermonprm_set_port::general, hermon_close(), hermon_cmd_init_port(), hermon_cmd_set_port(), hermon_eth_cq_op, HERMON_ETH_NUM_CQES, HERMON_ETH_NUM_RECV_WQES, HERMON_ETH_NUM_SEND_WQES, hermon_eth_qp_op, hermon_open(), HERMON_SET_PORT_GENERAL_PARAM, HERMON_SET_PORT_RECEIVE_QP, ib_create_cq(), ib_create_qp(), ib_destroy_cq(), ib_destroy_qp(), ib_get_drvdata(), ib_modify_qp(), ib_qp_set_ownerdata(), IB_QPT_ETH, ib_refill_recv(), memset(), MLX_FILL_1, MLX_FILL_2, MLX_FILL_3, mtu, net_device::name, netdev, port, ib_device::port, net_device::priv, rc, hermonprm_set_port::rqp_calc, and strerror().
|
static |
Close Hermon Ethernet device.
netdev | Network device |
Definition at line 3584 of file hermon.c.
References DBGC, hermon_close(), hermon_cmd_close_port(), ib_destroy_cq(), ib_destroy_qp(), ib_get_drvdata(), netdev, port, ib_device::port, net_device::priv, rc, and strerror().
|
static |
Register Hermon Ethernet device.
hermon | Hermon device |
port | Hermon port |
rc | Return status code |
Definition at line 3620 of file hermon.c.
References DBGC, ETH_ALEN, net_device::hw_addr, memcpy(), netdev, netdev_settings(), port, ib_device::port, rc, register_netdev(), register_nvo(), strerror(), unregister_netdev(), and unregister_nvo().
|
static |
Handle Hermon Ethernet device port state change.
hermon | Hermon device |
port | Hermon port |
link_up | Link is up |
Definition at line 3661 of file hermon.c.
References netdev, netdev_link_down(), netdev_link_up(), and port.
|
static |
Unregister Hermon Ethernet device.
hermon | Hermon device |
port | Hermon port |
Definition at line 3679 of file hermon.c.
References netdev, port, unregister_netdev(), and unregister_nvo().
|
inlinestatic |
Name port type.
port_type | Port type |
port_type_name | Port type name |
Definition at line 3710 of file hermon.c.
References HERMON_PORT_TYPE_ETH, HERMON_PORT_TYPE_IB, and HERMON_PORT_TYPE_UNKNOWN.
Referenced by hermon_sense_port_type().
|
static |
Sense port type.
hermon | Hermon device |
port | Hermon port |
port_type | Port type, or negative error |
Definition at line 3726 of file hermon.c.
References hermon::cap, DBGC, hermon_dev_cap::dpdp, hermon_cmd_sense_port(), hermon_name_port_type(), HERMON_PORT_TYPE_IB, MLX_GET, port, ib_device::port, rc, and strerror().
Referenced by hermon_set_port_type().
|
static |
Set port type.
hermon | Hermon device |
port | Hermon port |
rc | Return status code |
Definition at line 3763 of file hermon.c.
References assert(), currticks(), DBGC, EINVAL, hermon_cmd_query_port(), HERMON_PORT_TYPE_ETH, hermon_port_type_eth, HERMON_PORT_TYPE_IB, hermon_port_type_ib, HERMON_PORT_TYPE_UNKNOWN, HERMON_SENSE_PORT_TIMEOUT, hermon_sense_port_type(), htonl, htons, mdelay(), MLX_GET, NULL, port, ib_device::port, rc, start, and strerror().
Referenced by hermon_probe().
|
static |
Harvest Ethernet MAC for BOFM.
bofm | BOFM device |
mport | Multi-port index |
mac | MAC to fill in |
rc | Return status code |
Definition at line 3851 of file hermon.c.
References bofm(), bytes, container_of, DBGC, ETH_ALEN, eth_ntoa(), hermon_mod_stat_cfg(), HERMON_MOD_STAT_CFG_OFFSET, HERMON_MOD_STAT_CFG_QUERY, htonl, mac, memcpy(), MLX_GET, rc, and strerror().
|
static |
Update Ethernet MAC for BOFM.
bofm | BOFM device |
mport | Multi-port index |
mac | MAC to fill in |
rc | Return status code |
Definition at line 3891 of file hermon.c.
References bofm(), bytes, container_of, DBGC, ETH_ALEN, eth_ntoa(), hermon_mod_stat_cfg(), HERMON_MOD_STAT_CFG_OFFSET, HERMON_MOD_STAT_CFG_SET, mac, memcpy(), memset(), MLX_FILL_1, MLX_FILL_2, ntohl, rc, and strerror().
|
static |
Allocate Hermon device.
pci | PCI device |
id | PCI ID |
rc | Return status code |
Definition at line 3947 of file hermon.c.
References free, free_phys(), HERMON_MBOX_ALIGN, HERMON_MBOX_SIZE, hermon::mailbox_in, hermon::mailbox_out, malloc_phys(), NULL, and zalloc().
Referenced by hermon_bofm_probe(), and hermon_probe().
|
static |
Free Hermon device.
hermon | Hermon device |
Definition at line 3981 of file hermon.c.
References hermon::firmware_area, free, free_phys(), HERMON_MBOX_SIZE, hermon::icm, hermon::mailbox_in, hermon::mailbox_out, and ufree().
Referenced by hermon_bofm_probe(), hermon_bofm_remove(), hermon_probe(), and hermon_remove().
|
static |
Probe PCI device.
pci | PCI device |
id | PCI ID |
rc | Return status code |
Definition at line 3997 of file hermon.c.
References adjust_pci_device(), alloc_etherdev(), alloc_ibdev(), hermon::cap, hermon::config, pci_device::dev, net_device::dev, ib_device::dev, ENOMEM, hermon_alloc(), hermon_eth_operations, hermon_free(), hermon_get_cap(), hermon_ib_operations, HERMON_PAGE_SIZE, HERMON_PCI_CONFIG_BAR, HERMON_PCI_CONFIG_BAR_SIZE, HERMON_PCI_UAR_BAR, HERMON_PORT_BASE, hermon_reset(), hermon_set_port_type(), hermon_start(), hermon_start_firmware(), hermon_stop(), hermon_stop_firmware(), HERMON_UAR_NON_EQ_PAGE, HERMON_VPD_FIELD, ib_set_drvdata(), hermon_port::ibdev, ibdev_put(), iounmap(), netdev, hermon_port::netdev, netdev_init(), netdev_nullify(), netdev_put(), NULL, hermon_dev_cap::num_ports, nvs_vpd_init(), nvs_vpd_nvo_init(), hermon::nvsvpd, ib_device::op, hermon::open_count, hermon::pci, pci_bar_start(), pci_ioremap(), pci_set_drvdata(), port, ib_device::port, hermon::port, ib_device::ports, net_device::priv, rc, and hermon::uar.
|
static |
Remove PCI device.
pci | PCI device |
Definition at line 4135 of file hermon.c.
References hermon::cap, hermon::config, hermon_free(), hermon_port::ibdev, ibdev_put(), iounmap(), hermon_port::netdev, netdev_nullify(), netdev_put(), hermon_dev_cap::num_ports, hermon::pci, pci_get_drvdata(), port, hermon::port, and hermon::uar.
|
static |
Probe PCI device for BOFM.
pci | PCI device |
id | PCI ID |
rc | Return status code |
Definition at line 4162 of file hermon.c.
References adjust_pci_device(), hermon::bofm, bofm_init(), bofm_register(), hermon::config, DBGC, ENOMEM, hermon_alloc(), hermon_bofm_operations, hermon_free(), HERMON_PCI_CONFIG_BAR, HERMON_PCI_CONFIG_BAR_SIZE, iounmap(), hermon::pci, pci_bar_start(), pci_ioremap(), pci_set_drvdata(), rc, and strerror().
|
static |
Remove PCI device for BOFM.
pci | PCI device |
Definition at line 4208 of file hermon.c.
References hermon::bofm, bofm_unregister(), hermon::config, hermon_free(), iounmap(), hermon::pci, and pci_get_drvdata().
|
static |
Queue pair transport service type map.
Definition at line 1090 of file hermon.c.
Referenced by hermon_create_qp().
|
static |
Work queue entry constructors.
Definition at line 1608 of file hermon.c.
Referenced by hermon_post_send().
|
static |
Hermon Infiniband operations.
Definition at line 3275 of file hermon.c.
Referenced by hermon_probe().
|
static |
Hermon Infiniband port type.
Definition at line 3351 of file hermon.c.
Referenced by hermon_set_port_type().
|
static |
Hermon Ethernet queue pair operations.
Definition at line 3399 of file hermon.c.
Referenced by hermon_eth_open().
|
static |
Hermon Ethernet device completion operations.
Definition at line 3449 of file hermon.c.
Referenced by hermon_eth_open().
|
static |
Hermon Ethernet network device operations.
Definition at line 3606 of file hermon.c.
Referenced by hermon_probe().
|
static |
Hermon Ethernet port type.
Definition at line 3688 of file hermon.c.
Referenced by hermon_set_port_type().
|
static |
Hermon BOFM operations.
Definition at line 3928 of file hermon.c.
Referenced by hermon_bofm_probe().
|
static |
struct pci_driver hermon_driver __pci_driver |
struct pci_driver hermon_bofm_driver __bofm_driver |