Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions
siena_sriov.c File Reference
#include <linux/pci.h>
#include <linux/module.h>
#include "net_driver.h"
#include "efx.h"
#include "nic.h"
#include "io.h"
#include "mcdi.h"
#include "filter.h"
#include "mcdi_pcol.h"
#include "regs.h"
#include "vfdi.h"

Go to the source code of this file.

Data Structures

struct  efx_vf
 
struct  efx_memcpy_req
 
struct  efx_local_addr
 
struct  efx_endpoint_page
 

Macros

#define VI_MASK_LENGTH   BITS_TO_LONGS(1 << EFX_VI_SCALE_MAX)
 
#define VF_MAX_RX_QUEUES   63
 
#define EFX_BUFTBL_TXQ_BASE(_vf, _qid)   ((_vf)->buftbl_base + EFX_VF_BUFTBL_PER_VI * (_qid))
 
#define EFX_BUFTBL_RXQ_BASE(_vf, _qid)
 
#define EFX_BUFTBL_EVQ_BASE(_vf, _qid)
 
#define EFX_FIELD_MASK(_field)   ((1 << _field ## _WIDTH) - 1)
 

Typedefs

typedef int(* efx_vfdi_op_t )(struct efx_vf *vf)
 

Enumerations

enum  efx_vf_tx_filter_mode { VF_TX_FILTER_OFF, VF_TX_FILTER_AUTO, VF_TX_FILTER_ON }
 

Functions

 module_param (vf_max_tx_channels, uint, 0444)
 
 MODULE_PARM_DESC (vf_max_tx_channels,"Limit the number of TX channels VFs can use")
 
 module_param (max_vfs, int, 0444)
 
 MODULE_PARM_DESC (max_vfs,"Reduce the number of VFs initialized by the driver")
 
void efx_sriov_probe (struct efx_nic *efx)
 
int efx_sriov_init (struct efx_nic *efx)
 
void efx_sriov_fini (struct efx_nic *efx)
 
void efx_sriov_event (struct efx_channel *channel, efx_qword_t *event)
 
void efx_sriov_flr (struct efx_nic *efx, unsigned vf_i)
 
void efx_sriov_mac_address_changed (struct efx_nic *efx)
 
void efx_sriov_tx_flush_done (struct efx_nic *efx, efx_qword_t *event)
 
void efx_sriov_rx_flush_done (struct efx_nic *efx, efx_qword_t *event)
 
void efx_sriov_desc_fetch_err (struct efx_nic *efx, unsigned dmaq)
 
void efx_sriov_reset (struct efx_nic *efx)
 
int efx_init_sriov (void)
 
void efx_fini_sriov (void)
 
int efx_sriov_set_vf_mac (struct net_device *net_dev, int vf_i, u8 *mac)
 
int efx_sriov_set_vf_vlan (struct net_device *net_dev, int vf_i, u16 vlan, u8 qos)
 
int efx_sriov_set_vf_spoofchk (struct net_device *net_dev, int vf_i, bool spoofchk)
 
int efx_sriov_get_vf_config (struct net_device *net_dev, int vf_i, struct ifla_vf_info *ivi)
 

Macro Definition Documentation

#define EFX_BUFTBL_EVQ_BASE (   _vf,
  _qid 
)
Value:

Definition at line 168 of file siena_sriov.c.

#define EFX_BUFTBL_RXQ_BASE (   _vf,
  _qid 
)
Value:

Definition at line 165 of file siena_sriov.c.

#define EFX_BUFTBL_TXQ_BASE (   _vf,
  _qid 
)    ((_vf)->buftbl_base + EFX_VF_BUFTBL_PER_VI * (_qid))

Definition at line 163 of file siena_sriov.c.

#define EFX_FIELD_MASK (   _field)    ((1 << _field ## _WIDTH) - 1)

Definition at line 172 of file siena_sriov.c.

#define VF_MAX_RX_QUEUES   63

Definition at line 25 of file siena_sriov.c.

#define VI_MASK_LENGTH   BITS_TO_LONGS(1 << EFX_VI_SCALE_MAX)

Definition at line 22 of file siena_sriov.c.

Typedef Documentation

typedef int(* efx_vfdi_op_t)(struct efx_vf *vf)

Definition at line 855 of file siena_sriov.c.

Enumeration Type Documentation

enum efx_vf_tx_filter_mode - TX MAC filtering behaviour : Disabled : Enabled if MAC address assigned to VF and only 2 TX queues allowed per VF. : Enabled

Enumerator:
VF_TX_FILTER_OFF 
VF_TX_FILTER_AUTO 
VF_TX_FILTER_ON 

Definition at line 34 of file siena_sriov.c.

Function Documentation

void efx_fini_sriov ( void  )

Definition at line 1564 of file siena_sriov.c.

int efx_init_sriov ( void  )

Definition at line 1551 of file siena_sriov.c.

void efx_sriov_desc_fetch_err ( struct efx_nic efx,
unsigned  dmaq 
)

Definition at line 1510 of file siena_sriov.c.

void efx_sriov_event ( struct efx_channel channel,
efx_qword_t event 
)

Definition at line 1381 of file siena_sriov.c.

void efx_sriov_fini ( struct efx_nic efx)

Definition at line 1348 of file siena_sriov.c.

void efx_sriov_flr ( struct efx_nic efx,
unsigned  vf_i 
)

Definition at line 1438 of file siena_sriov.c.

int efx_sriov_get_vf_config ( struct net_device net_dev,
int  vf_i,
struct ifla_vf_info ivi 
)

Definition at line 1630 of file siena_sriov.c.

int efx_sriov_init ( struct efx_nic efx)

Definition at line 1267 of file siena_sriov.c.

void efx_sriov_mac_address_changed ( struct efx_nic efx)

Definition at line 1455 of file siena_sriov.c.

void efx_sriov_probe ( struct efx_nic efx)

Definition at line 1044 of file siena_sriov.c.

void efx_sriov_reset ( struct efx_nic efx)

Definition at line 1526 of file siena_sriov.c.

void efx_sriov_rx_flush_done ( struct efx_nic efx,
efx_qword_t event 
)

Definition at line 1485 of file siena_sriov.c.

int efx_sriov_set_vf_mac ( struct net_device net_dev,
int  vf_i,
u8 mac 
)

Definition at line 1569 of file siena_sriov.c.

int efx_sriov_set_vf_spoofchk ( struct net_device net_dev,
int  vf_i,
bool  spoofchk 
)

Definition at line 1606 of file siena_sriov.c.

int efx_sriov_set_vf_vlan ( struct net_device net_dev,
int  vf_i,
u16  vlan,
u8  qos 
)

Definition at line 1586 of file siena_sriov.c.

void efx_sriov_tx_flush_done ( struct efx_nic efx,
efx_qword_t event 
)

Definition at line 1466 of file siena_sriov.c.

module_param ( vf_max_tx_channels  ,
uint  ,
0444   
)
module_param ( max_vfs  ,
int  ,
0444   
)
MODULE_PARM_DESC ( vf_max_tx_channels  ,
"Limit the number of TX channels VFs can use"   
)
MODULE_PARM_DESC ( max_vfs  ,
"Reduce the number of VFs initialized by the driver  
)