|
@@ -77,7 +77,7 @@
|
|
#include "s2io.h"
|
|
#include "s2io.h"
|
|
#include "s2io-regs.h"
|
|
#include "s2io-regs.h"
|
|
|
|
|
|
-#define DRV_VERSION "2.0.15.2"
|
|
|
|
|
|
+#define DRV_VERSION "2.0.16.1"
|
|
|
|
|
|
/* S2io Driver name & version. */
|
|
/* S2io Driver name & version. */
|
|
static char s2io_driver_name[] = "Neterion";
|
|
static char s2io_driver_name[] = "Neterion";
|
|
@@ -86,7 +86,7 @@ static char s2io_driver_version[] = DRV_VERSION;
|
|
static int rxd_size[4] = {32,48,48,64};
|
|
static int rxd_size[4] = {32,48,48,64};
|
|
static int rxd_count[4] = {127,85,85,63};
|
|
static int rxd_count[4] = {127,85,85,63};
|
|
|
|
|
|
-static inline int RXD_IS_UP2DT(RxD_t *rxdp)
|
|
|
|
|
|
+static inline int RXD_IS_UP2DT(struct RxD_t *rxdp)
|
|
{
|
|
{
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
@@ -111,9 +111,9 @@ static inline int RXD_IS_UP2DT(RxD_t *rxdp)
|
|
#define TASKLET_IN_USE test_and_set_bit(0, (&sp->tasklet_status))
|
|
#define TASKLET_IN_USE test_and_set_bit(0, (&sp->tasklet_status))
|
|
#define PANIC 1
|
|
#define PANIC 1
|
|
#define LOW 2
|
|
#define LOW 2
|
|
-static inline int rx_buffer_level(nic_t * sp, int rxb_size, int ring)
|
|
|
|
|
|
+static inline int rx_buffer_level(struct s2io_nic * sp, int rxb_size, int ring)
|
|
{
|
|
{
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
|
|
|
|
mac_control = &sp->mac_control;
|
|
mac_control = &sp->mac_control;
|
|
if (rxb_size <= rxd_count[sp->rxd_mode])
|
|
if (rxb_size <= rxd_count[sp->rxd_mode])
|
|
@@ -286,7 +286,7 @@ static char ethtool_stats_keys[][ETH_GSTRING_LEN] = {
|
|
static void s2io_vlan_rx_register(struct net_device *dev,
|
|
static void s2io_vlan_rx_register(struct net_device *dev,
|
|
struct vlan_group *grp)
|
|
struct vlan_group *grp)
|
|
{
|
|
{
|
|
- nic_t *nic = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *nic = dev->priv;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&nic->tx_lock, flags);
|
|
spin_lock_irqsave(&nic->tx_lock, flags);
|
|
@@ -297,7 +297,7 @@ static void s2io_vlan_rx_register(struct net_device *dev,
|
|
/* Unregister the vlan */
|
|
/* Unregister the vlan */
|
|
static void s2io_vlan_rx_kill_vid(struct net_device *dev, unsigned long vid)
|
|
static void s2io_vlan_rx_kill_vid(struct net_device *dev, unsigned long vid)
|
|
{
|
|
{
|
|
- nic_t *nic = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *nic = dev->priv;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
spin_lock_irqsave(&nic->tx_lock, flags);
|
|
spin_lock_irqsave(&nic->tx_lock, flags);
|
|
@@ -458,14 +458,14 @@ static int init_shared_mem(struct s2io_nic *nic)
|
|
u32 size;
|
|
u32 size;
|
|
void *tmp_v_addr, *tmp_v_addr_next;
|
|
void *tmp_v_addr, *tmp_v_addr_next;
|
|
dma_addr_t tmp_p_addr, tmp_p_addr_next;
|
|
dma_addr_t tmp_p_addr, tmp_p_addr_next;
|
|
- RxD_block_t *pre_rxd_blk = NULL;
|
|
|
|
|
|
+ struct RxD_block *pre_rxd_blk = NULL;
|
|
int i, j, blk_cnt;
|
|
int i, j, blk_cnt;
|
|
int lst_size, lst_per_page;
|
|
int lst_size, lst_per_page;
|
|
struct net_device *dev = nic->dev;
|
|
struct net_device *dev = nic->dev;
|
|
unsigned long tmp;
|
|
unsigned long tmp;
|
|
- buffAdd_t *ba;
|
|
|
|
|
|
+ struct buffAdd *ba;
|
|
|
|
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
|
|
|
|
mac_control = &nic->mac_control;
|
|
mac_control = &nic->mac_control;
|
|
@@ -483,12 +483,12 @@ static int init_shared_mem(struct s2io_nic *nic)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
- lst_size = (sizeof(TxD_t) * config->max_txds);
|
|
|
|
|
|
+ lst_size = (sizeof(struct TxD) * config->max_txds);
|
|
lst_per_page = PAGE_SIZE / lst_size;
|
|
lst_per_page = PAGE_SIZE / lst_size;
|
|
|
|
|
|
for (i = 0; i < config->tx_fifo_num; i++) {
|
|
for (i = 0; i < config->tx_fifo_num; i++) {
|
|
int fifo_len = config->tx_cfg[i].fifo_len;
|
|
int fifo_len = config->tx_cfg[i].fifo_len;
|
|
- int list_holder_size = fifo_len * sizeof(list_info_hold_t);
|
|
|
|
|
|
+ int list_holder_size = fifo_len * sizeof(struct list_info_hold);
|
|
mac_control->fifos[i].list_info = kmalloc(list_holder_size,
|
|
mac_control->fifos[i].list_info = kmalloc(list_holder_size,
|
|
GFP_KERNEL);
|
|
GFP_KERNEL);
|
|
if (!mac_control->fifos[i].list_info) {
|
|
if (!mac_control->fifos[i].list_info) {
|
|
@@ -579,9 +579,9 @@ static int init_shared_mem(struct s2io_nic *nic)
|
|
mac_control->rings[i].block_count;
|
|
mac_control->rings[i].block_count;
|
|
}
|
|
}
|
|
if (nic->rxd_mode == RXD_MODE_1)
|
|
if (nic->rxd_mode == RXD_MODE_1)
|
|
- size = (size * (sizeof(RxD1_t)));
|
|
|
|
|
|
+ size = (size * (sizeof(struct RxD1)));
|
|
else
|
|
else
|
|
- size = (size * (sizeof(RxD3_t)));
|
|
|
|
|
|
+ size = (size * (sizeof(struct RxD3)));
|
|
|
|
|
|
for (i = 0; i < config->rx_ring_num; i++) {
|
|
for (i = 0; i < config->rx_ring_num; i++) {
|
|
mac_control->rings[i].rx_curr_get_info.block_index = 0;
|
|
mac_control->rings[i].rx_curr_get_info.block_index = 0;
|
|
@@ -599,7 +599,7 @@ static int init_shared_mem(struct s2io_nic *nic)
|
|
(rxd_count[nic->rxd_mode] + 1);
|
|
(rxd_count[nic->rxd_mode] + 1);
|
|
/* Allocating all the Rx blocks */
|
|
/* Allocating all the Rx blocks */
|
|
for (j = 0; j < blk_cnt; j++) {
|
|
for (j = 0; j < blk_cnt; j++) {
|
|
- rx_block_info_t *rx_blocks;
|
|
|
|
|
|
+ struct rx_block_info *rx_blocks;
|
|
int l;
|
|
int l;
|
|
|
|
|
|
rx_blocks = &mac_control->rings[i].rx_blocks[j];
|
|
rx_blocks = &mac_control->rings[i].rx_blocks[j];
|
|
@@ -619,7 +619,7 @@ static int init_shared_mem(struct s2io_nic *nic)
|
|
memset(tmp_v_addr, 0, size);
|
|
memset(tmp_v_addr, 0, size);
|
|
rx_blocks->block_virt_addr = tmp_v_addr;
|
|
rx_blocks->block_virt_addr = tmp_v_addr;
|
|
rx_blocks->block_dma_addr = tmp_p_addr;
|
|
rx_blocks->block_dma_addr = tmp_p_addr;
|
|
- rx_blocks->rxds = kmalloc(sizeof(rxd_info_t)*
|
|
|
|
|
|
+ rx_blocks->rxds = kmalloc(sizeof(struct rxd_info)*
|
|
rxd_count[nic->rxd_mode],
|
|
rxd_count[nic->rxd_mode],
|
|
GFP_KERNEL);
|
|
GFP_KERNEL);
|
|
if (!rx_blocks->rxds)
|
|
if (!rx_blocks->rxds)
|
|
@@ -646,7 +646,7 @@ static int init_shared_mem(struct s2io_nic *nic)
|
|
mac_control->rings[i].rx_blocks[(j + 1) %
|
|
mac_control->rings[i].rx_blocks[(j + 1) %
|
|
blk_cnt].block_dma_addr;
|
|
blk_cnt].block_dma_addr;
|
|
|
|
|
|
- pre_rxd_blk = (RxD_block_t *) tmp_v_addr;
|
|
|
|
|
|
+ pre_rxd_blk = (struct RxD_block *) tmp_v_addr;
|
|
pre_rxd_blk->reserved_2_pNext_RxD_block =
|
|
pre_rxd_blk->reserved_2_pNext_RxD_block =
|
|
(unsigned long) tmp_v_addr_next;
|
|
(unsigned long) tmp_v_addr_next;
|
|
pre_rxd_blk->pNext_RxD_Blk_physical =
|
|
pre_rxd_blk->pNext_RxD_Blk_physical =
|
|
@@ -662,14 +662,14 @@ static int init_shared_mem(struct s2io_nic *nic)
|
|
blk_cnt = config->rx_cfg[i].num_rxd /
|
|
blk_cnt = config->rx_cfg[i].num_rxd /
|
|
(rxd_count[nic->rxd_mode]+ 1);
|
|
(rxd_count[nic->rxd_mode]+ 1);
|
|
mac_control->rings[i].ba =
|
|
mac_control->rings[i].ba =
|
|
- kmalloc((sizeof(buffAdd_t *) * blk_cnt),
|
|
|
|
|
|
+ kmalloc((sizeof(struct buffAdd *) * blk_cnt),
|
|
GFP_KERNEL);
|
|
GFP_KERNEL);
|
|
if (!mac_control->rings[i].ba)
|
|
if (!mac_control->rings[i].ba)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
for (j = 0; j < blk_cnt; j++) {
|
|
for (j = 0; j < blk_cnt; j++) {
|
|
int k = 0;
|
|
int k = 0;
|
|
mac_control->rings[i].ba[j] =
|
|
mac_control->rings[i].ba[j] =
|
|
- kmalloc((sizeof(buffAdd_t) *
|
|
|
|
|
|
+ kmalloc((sizeof(struct buffAdd) *
|
|
(rxd_count[nic->rxd_mode] + 1)),
|
|
(rxd_count[nic->rxd_mode] + 1)),
|
|
GFP_KERNEL);
|
|
GFP_KERNEL);
|
|
if (!mac_control->rings[i].ba[j])
|
|
if (!mac_control->rings[i].ba[j])
|
|
@@ -701,7 +701,7 @@ static int init_shared_mem(struct s2io_nic *nic)
|
|
}
|
|
}
|
|
|
|
|
|
/* Allocation and initialization of Statistics block */
|
|
/* Allocation and initialization of Statistics block */
|
|
- size = sizeof(StatInfo_t);
|
|
|
|
|
|
+ size = sizeof(struct stat_block);
|
|
mac_control->stats_mem = pci_alloc_consistent
|
|
mac_control->stats_mem = pci_alloc_consistent
|
|
(nic->pdev, size, &mac_control->stats_mem_phy);
|
|
(nic->pdev, size, &mac_control->stats_mem_phy);
|
|
|
|
|
|
@@ -716,7 +716,7 @@ static int init_shared_mem(struct s2io_nic *nic)
|
|
mac_control->stats_mem_sz = size;
|
|
mac_control->stats_mem_sz = size;
|
|
|
|
|
|
tmp_v_addr = mac_control->stats_mem;
|
|
tmp_v_addr = mac_control->stats_mem;
|
|
- mac_control->stats_info = (StatInfo_t *) tmp_v_addr;
|
|
|
|
|
|
+ mac_control->stats_info = (struct stat_block *) tmp_v_addr;
|
|
memset(tmp_v_addr, 0, size);
|
|
memset(tmp_v_addr, 0, size);
|
|
DBG_PRINT(INIT_DBG, "%s:Ring Mem PHY: 0x%llx\n", dev->name,
|
|
DBG_PRINT(INIT_DBG, "%s:Ring Mem PHY: 0x%llx\n", dev->name,
|
|
(unsigned long long) tmp_p_addr);
|
|
(unsigned long long) tmp_p_addr);
|
|
@@ -736,7 +736,7 @@ static void free_shared_mem(struct s2io_nic *nic)
|
|
int i, j, blk_cnt, size;
|
|
int i, j, blk_cnt, size;
|
|
void *tmp_v_addr;
|
|
void *tmp_v_addr;
|
|
dma_addr_t tmp_p_addr;
|
|
dma_addr_t tmp_p_addr;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
int lst_size, lst_per_page;
|
|
int lst_size, lst_per_page;
|
|
struct net_device *dev = nic->dev;
|
|
struct net_device *dev = nic->dev;
|
|
@@ -747,7 +747,7 @@ static void free_shared_mem(struct s2io_nic *nic)
|
|
mac_control = &nic->mac_control;
|
|
mac_control = &nic->mac_control;
|
|
config = &nic->config;
|
|
config = &nic->config;
|
|
|
|
|
|
- lst_size = (sizeof(TxD_t) * config->max_txds);
|
|
|
|
|
|
+ lst_size = (sizeof(struct TxD) * config->max_txds);
|
|
lst_per_page = PAGE_SIZE / lst_size;
|
|
lst_per_page = PAGE_SIZE / lst_size;
|
|
|
|
|
|
for (i = 0; i < config->tx_fifo_num; i++) {
|
|
for (i = 0; i < config->tx_fifo_num; i++) {
|
|
@@ -810,7 +810,7 @@ static void free_shared_mem(struct s2io_nic *nic)
|
|
if (!mac_control->rings[i].ba[j])
|
|
if (!mac_control->rings[i].ba[j])
|
|
continue;
|
|
continue;
|
|
while (k != rxd_count[nic->rxd_mode]) {
|
|
while (k != rxd_count[nic->rxd_mode]) {
|
|
- buffAdd_t *ba =
|
|
|
|
|
|
+ struct buffAdd *ba =
|
|
&mac_control->rings[i].ba[j][k];
|
|
&mac_control->rings[i].ba[j][k];
|
|
kfree(ba->ba_0_org);
|
|
kfree(ba->ba_0_org);
|
|
kfree(ba->ba_1_org);
|
|
kfree(ba->ba_1_org);
|
|
@@ -836,9 +836,9 @@ static void free_shared_mem(struct s2io_nic *nic)
|
|
* s2io_verify_pci_mode -
|
|
* s2io_verify_pci_mode -
|
|
*/
|
|
*/
|
|
|
|
|
|
-static int s2io_verify_pci_mode(nic_t *nic)
|
|
|
|
|
|
+static int s2io_verify_pci_mode(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
register u64 val64 = 0;
|
|
register u64 val64 = 0;
|
|
int mode;
|
|
int mode;
|
|
|
|
|
|
@@ -869,9 +869,9 @@ static int bus_speed[8] = {33, 133, 133, 200, 266, 133, 200, 266};
|
|
/**
|
|
/**
|
|
* s2io_print_pci_mode -
|
|
* s2io_print_pci_mode -
|
|
*/
|
|
*/
|
|
-static int s2io_print_pci_mode(nic_t *nic)
|
|
|
|
|
|
+static int s2io_print_pci_mode(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
register u64 val64 = 0;
|
|
register u64 val64 = 0;
|
|
int mode;
|
|
int mode;
|
|
struct config_param *config = &nic->config;
|
|
struct config_param *config = &nic->config;
|
|
@@ -939,13 +939,13 @@ static int s2io_print_pci_mode(nic_t *nic)
|
|
|
|
|
|
static int init_nic(struct s2io_nic *nic)
|
|
static int init_nic(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
struct net_device *dev = nic->dev;
|
|
struct net_device *dev = nic->dev;
|
|
register u64 val64 = 0;
|
|
register u64 val64 = 0;
|
|
void __iomem *add;
|
|
void __iomem *add;
|
|
u32 time;
|
|
u32 time;
|
|
int i, j;
|
|
int i, j;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
int dtx_cnt = 0;
|
|
int dtx_cnt = 0;
|
|
unsigned long long mem_share;
|
|
unsigned long long mem_share;
|
|
@@ -1628,7 +1628,7 @@ static int init_nic(struct s2io_nic *nic)
|
|
#define LINK_UP_DOWN_INTERRUPT 1
|
|
#define LINK_UP_DOWN_INTERRUPT 1
|
|
#define MAC_RMAC_ERR_TIMER 2
|
|
#define MAC_RMAC_ERR_TIMER 2
|
|
|
|
|
|
-static int s2io_link_fault_indication(nic_t *nic)
|
|
|
|
|
|
+static int s2io_link_fault_indication(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
if (nic->intr_type != INTA)
|
|
if (nic->intr_type != INTA)
|
|
return MAC_RMAC_ERR_TIMER;
|
|
return MAC_RMAC_ERR_TIMER;
|
|
@@ -1651,7 +1651,7 @@ static int s2io_link_fault_indication(nic_t *nic)
|
|
|
|
|
|
static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag)
|
|
static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
register u64 val64 = 0, temp64 = 0;
|
|
register u64 val64 = 0, temp64 = 0;
|
|
|
|
|
|
/* Top level interrupt classification */
|
|
/* Top level interrupt classification */
|
|
@@ -1773,10 +1773,10 @@ static void en_dis_able_nic_intrs(struct s2io_nic *nic, u16 mask, int flag)
|
|
* Return: 1 If PCC is quiescence
|
|
* Return: 1 If PCC is quiescence
|
|
* 0 If PCC is not quiescence
|
|
* 0 If PCC is not quiescence
|
|
*/
|
|
*/
|
|
-static int verify_pcc_quiescent(nic_t *sp, int flag)
|
|
|
|
|
|
+static int verify_pcc_quiescent(struct s2io_nic *sp, int flag)
|
|
{
|
|
{
|
|
int ret = 0, herc;
|
|
int ret = 0, herc;
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64 = readq(&bar0->adapter_status);
|
|
u64 val64 = readq(&bar0->adapter_status);
|
|
|
|
|
|
herc = (sp->device_type == XFRAME_II_DEVICE);
|
|
herc = (sp->device_type == XFRAME_II_DEVICE);
|
|
@@ -1813,10 +1813,10 @@ static int verify_pcc_quiescent(nic_t *sp, int flag)
|
|
* 0 If Xena is not quiescence
|
|
* 0 If Xena is not quiescence
|
|
*/
|
|
*/
|
|
|
|
|
|
-static int verify_xena_quiescence(nic_t *sp)
|
|
|
|
|
|
+static int verify_xena_quiescence(struct s2io_nic *sp)
|
|
{
|
|
{
|
|
int mode;
|
|
int mode;
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64 = readq(&bar0->adapter_status);
|
|
u64 val64 = readq(&bar0->adapter_status);
|
|
mode = s2io_verify_pci_mode(sp);
|
|
mode = s2io_verify_pci_mode(sp);
|
|
|
|
|
|
@@ -1880,9 +1880,9 @@ static int verify_xena_quiescence(nic_t *sp)
|
|
*
|
|
*
|
|
*/
|
|
*/
|
|
|
|
|
|
-static void fix_mac_address(nic_t * sp)
|
|
|
|
|
|
+static void fix_mac_address(struct s2io_nic * sp)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64;
|
|
u64 val64;
|
|
int i = 0;
|
|
int i = 0;
|
|
|
|
|
|
@@ -1908,11 +1908,11 @@ static void fix_mac_address(nic_t * sp)
|
|
|
|
|
|
static int start_nic(struct s2io_nic *nic)
|
|
static int start_nic(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
struct net_device *dev = nic->dev;
|
|
struct net_device *dev = nic->dev;
|
|
register u64 val64 = 0;
|
|
register u64 val64 = 0;
|
|
u16 subid, i;
|
|
u16 subid, i;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
|
|
|
|
mac_control = &nic->mac_control;
|
|
mac_control = &nic->mac_control;
|
|
@@ -2017,11 +2017,12 @@ static int start_nic(struct s2io_nic *nic)
|
|
/**
|
|
/**
|
|
* s2io_txdl_getskb - Get the skb from txdl, unmap and return skb
|
|
* s2io_txdl_getskb - Get the skb from txdl, unmap and return skb
|
|
*/
|
|
*/
|
|
-static struct sk_buff *s2io_txdl_getskb(fifo_info_t *fifo_data, TxD_t *txdlp, int get_off)
|
|
|
|
|
|
+static struct sk_buff *s2io_txdl_getskb(struct fifo_info *fifo_data, struct \
|
|
|
|
+ TxD *txdlp, int get_off)
|
|
{
|
|
{
|
|
- nic_t *nic = fifo_data->nic;
|
|
|
|
|
|
+ struct s2io_nic *nic = fifo_data->nic;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
- TxD_t *txds;
|
|
|
|
|
|
+ struct TxD *txds;
|
|
u16 j, frg_cnt;
|
|
u16 j, frg_cnt;
|
|
|
|
|
|
txds = txdlp;
|
|
txds = txdlp;
|
|
@@ -2035,7 +2036,7 @@ static struct sk_buff *s2io_txdl_getskb(fifo_info_t *fifo_data, TxD_t *txdlp, in
|
|
skb = (struct sk_buff *) ((unsigned long)
|
|
skb = (struct sk_buff *) ((unsigned long)
|
|
txds->Host_Control);
|
|
txds->Host_Control);
|
|
if (!skb) {
|
|
if (!skb) {
|
|
- memset(txdlp, 0, (sizeof(TxD_t) * fifo_data->max_txds));
|
|
|
|
|
|
+ memset(txdlp, 0, (sizeof(struct TxD) * fifo_data->max_txds));
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
@@ -2054,7 +2055,7 @@ static struct sk_buff *s2io_txdl_getskb(fifo_info_t *fifo_data, TxD_t *txdlp, in
|
|
frag->size, PCI_DMA_TODEVICE);
|
|
frag->size, PCI_DMA_TODEVICE);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- memset(txdlp,0, (sizeof(TxD_t) * fifo_data->max_txds));
|
|
|
|
|
|
+ memset(txdlp,0, (sizeof(struct TxD) * fifo_data->max_txds));
|
|
return(skb);
|
|
return(skb);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2070,9 +2071,9 @@ static void free_tx_buffers(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
struct net_device *dev = nic->dev;
|
|
struct net_device *dev = nic->dev;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
- TxD_t *txdp;
|
|
|
|
|
|
+ struct TxD *txdp;
|
|
int i, j;
|
|
int i, j;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
int cnt = 0;
|
|
int cnt = 0;
|
|
|
|
|
|
@@ -2081,7 +2082,7 @@ static void free_tx_buffers(struct s2io_nic *nic)
|
|
|
|
|
|
for (i = 0; i < config->tx_fifo_num; i++) {
|
|
for (i = 0; i < config->tx_fifo_num; i++) {
|
|
for (j = 0; j < config->tx_cfg[i].fifo_len - 1; j++) {
|
|
for (j = 0; j < config->tx_cfg[i].fifo_len - 1; j++) {
|
|
- txdp = (TxD_t *) mac_control->fifos[i].list_info[j].
|
|
|
|
|
|
+ txdp = (struct TxD *) mac_control->fifos[i].list_info[j].
|
|
list_virt_addr;
|
|
list_virt_addr;
|
|
skb = s2io_txdl_getskb(&mac_control->fifos[i], txdp, j);
|
|
skb = s2io_txdl_getskb(&mac_control->fifos[i], txdp, j);
|
|
if (skb) {
|
|
if (skb) {
|
|
@@ -2109,10 +2110,10 @@ static void free_tx_buffers(struct s2io_nic *nic)
|
|
|
|
|
|
static void stop_nic(struct s2io_nic *nic)
|
|
static void stop_nic(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
register u64 val64 = 0;
|
|
register u64 val64 = 0;
|
|
u16 interruptible;
|
|
u16 interruptible;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
|
|
|
|
mac_control = &nic->mac_control;
|
|
mac_control = &nic->mac_control;
|
|
@@ -2130,14 +2131,15 @@ static void stop_nic(struct s2io_nic *nic)
|
|
writeq(val64, &bar0->adapter_control);
|
|
writeq(val64, &bar0->adapter_control);
|
|
}
|
|
}
|
|
|
|
|
|
-static int fill_rxd_3buf(nic_t *nic, RxD_t *rxdp, struct sk_buff *skb)
|
|
|
|
|
|
+static int fill_rxd_3buf(struct s2io_nic *nic, struct RxD_t *rxdp, struct \
|
|
|
|
+ sk_buff *skb)
|
|
{
|
|
{
|
|
struct net_device *dev = nic->dev;
|
|
struct net_device *dev = nic->dev;
|
|
struct sk_buff *frag_list;
|
|
struct sk_buff *frag_list;
|
|
void *tmp;
|
|
void *tmp;
|
|
|
|
|
|
/* Buffer-1 receives L3/L4 headers */
|
|
/* Buffer-1 receives L3/L4 headers */
|
|
- ((RxD3_t*)rxdp)->Buffer1_ptr = pci_map_single
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer1_ptr = pci_map_single
|
|
(nic->pdev, skb->data, l3l4hdr_size + 4,
|
|
(nic->pdev, skb->data, l3l4hdr_size + 4,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
|
|
|
|
@@ -2155,7 +2157,7 @@ static int fill_rxd_3buf(nic_t *nic, RxD_t *rxdp, struct sk_buff *skb)
|
|
frag_list->tail = tmp;
|
|
frag_list->tail = tmp;
|
|
|
|
|
|
/* Buffer-2 receives L4 data payload */
|
|
/* Buffer-2 receives L4 data payload */
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr = pci_map_single(nic->pdev,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr = pci_map_single(nic->pdev,
|
|
frag_list->data, dev->mtu,
|
|
frag_list->data, dev->mtu,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
rxdp->Control_2 |= SET_BUFFER1_SIZE_3(l3l4hdr_size + 4);
|
|
rxdp->Control_2 |= SET_BUFFER1_SIZE_3(l3l4hdr_size + 4);
|
|
@@ -2189,16 +2191,16 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
|
|
{
|
|
{
|
|
struct net_device *dev = nic->dev;
|
|
struct net_device *dev = nic->dev;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
- RxD_t *rxdp;
|
|
|
|
|
|
+ struct RxD_t *rxdp;
|
|
int off, off1, size, block_no, block_no1;
|
|
int off, off1, size, block_no, block_no1;
|
|
u32 alloc_tab = 0;
|
|
u32 alloc_tab = 0;
|
|
u32 alloc_cnt;
|
|
u32 alloc_cnt;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
u64 tmp;
|
|
u64 tmp;
|
|
- buffAdd_t *ba;
|
|
|
|
|
|
+ struct buffAdd *ba;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
- RxD_t *first_rxdp = NULL;
|
|
|
|
|
|
+ struct RxD_t *first_rxdp = NULL;
|
|
|
|
|
|
mac_control = &nic->mac_control;
|
|
mac_control = &nic->mac_control;
|
|
config = &nic->config;
|
|
config = &nic->config;
|
|
@@ -2280,9 +2282,9 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
|
|
}
|
|
}
|
|
if (nic->rxd_mode == RXD_MODE_1) {
|
|
if (nic->rxd_mode == RXD_MODE_1) {
|
|
/* 1 buffer mode - normal operation mode */
|
|
/* 1 buffer mode - normal operation mode */
|
|
- memset(rxdp, 0, sizeof(RxD1_t));
|
|
|
|
|
|
+ memset(rxdp, 0, sizeof(struct RxD1));
|
|
skb_reserve(skb, NET_IP_ALIGN);
|
|
skb_reserve(skb, NET_IP_ALIGN);
|
|
- ((RxD1_t*)rxdp)->Buffer0_ptr = pci_map_single
|
|
|
|
|
|
+ ((struct RxD1*)rxdp)->Buffer0_ptr = pci_map_single
|
|
(nic->pdev, skb->data, size - NET_IP_ALIGN,
|
|
(nic->pdev, skb->data, size - NET_IP_ALIGN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
rxdp->Control_2 = SET_BUFFER0_SIZE_1(size - NET_IP_ALIGN);
|
|
rxdp->Control_2 = SET_BUFFER0_SIZE_1(size - NET_IP_ALIGN);
|
|
@@ -2299,7 +2301,7 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
|
|
* payload
|
|
* payload
|
|
*/
|
|
*/
|
|
|
|
|
|
- memset(rxdp, 0, sizeof(RxD3_t));
|
|
|
|
|
|
+ memset(rxdp, 0, sizeof(struct RxD3));
|
|
ba = &mac_control->rings[ring_no].ba[block_no][off];
|
|
ba = &mac_control->rings[ring_no].ba[block_no][off];
|
|
skb_reserve(skb, BUF0_LEN);
|
|
skb_reserve(skb, BUF0_LEN);
|
|
tmp = (u64)(unsigned long) skb->data;
|
|
tmp = (u64)(unsigned long) skb->data;
|
|
@@ -2308,13 +2310,13 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
|
|
skb->data = (void *) (unsigned long)tmp;
|
|
skb->data = (void *) (unsigned long)tmp;
|
|
skb->tail = (void *) (unsigned long)tmp;
|
|
skb->tail = (void *) (unsigned long)tmp;
|
|
|
|
|
|
- if (!(((RxD3_t*)rxdp)->Buffer0_ptr))
|
|
|
|
- ((RxD3_t*)rxdp)->Buffer0_ptr =
|
|
|
|
|
|
+ if (!(((struct RxD3*)rxdp)->Buffer0_ptr))
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer0_ptr =
|
|
pci_map_single(nic->pdev, ba->ba_0, BUF0_LEN,
|
|
pci_map_single(nic->pdev, ba->ba_0, BUF0_LEN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
else
|
|
else
|
|
pci_dma_sync_single_for_device(nic->pdev,
|
|
pci_dma_sync_single_for_device(nic->pdev,
|
|
- (dma_addr_t) ((RxD3_t*)rxdp)->Buffer0_ptr,
|
|
|
|
|
|
+ (dma_addr_t) ((struct RxD3*)rxdp)->Buffer0_ptr,
|
|
BUF0_LEN, PCI_DMA_FROMDEVICE);
|
|
BUF0_LEN, PCI_DMA_FROMDEVICE);
|
|
rxdp->Control_2 = SET_BUFFER0_SIZE_3(BUF0_LEN);
|
|
rxdp->Control_2 = SET_BUFFER0_SIZE_3(BUF0_LEN);
|
|
if (nic->rxd_mode == RXD_MODE_3B) {
|
|
if (nic->rxd_mode == RXD_MODE_3B) {
|
|
@@ -2324,13 +2326,13 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
|
|
* Buffer2 will have L3/L4 header plus
|
|
* Buffer2 will have L3/L4 header plus
|
|
* L4 payload
|
|
* L4 payload
|
|
*/
|
|
*/
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr = pci_map_single
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr = pci_map_single
|
|
(nic->pdev, skb->data, dev->mtu + 4,
|
|
(nic->pdev, skb->data, dev->mtu + 4,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
|
|
|
|
/* Buffer-1 will be dummy buffer. Not used */
|
|
/* Buffer-1 will be dummy buffer. Not used */
|
|
- if (!(((RxD3_t*)rxdp)->Buffer1_ptr)) {
|
|
|
|
- ((RxD3_t*)rxdp)->Buffer1_ptr =
|
|
|
|
|
|
+ if (!(((struct RxD3*)rxdp)->Buffer1_ptr)) {
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer1_ptr =
|
|
pci_map_single(nic->pdev,
|
|
pci_map_single(nic->pdev,
|
|
ba->ba_1, BUF1_LEN,
|
|
ba->ba_1, BUF1_LEN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
@@ -2390,9 +2392,9 @@ static void free_rxd_blk(struct s2io_nic *sp, int ring_no, int blk)
|
|
struct net_device *dev = sp->dev;
|
|
struct net_device *dev = sp->dev;
|
|
int j;
|
|
int j;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
- RxD_t *rxdp;
|
|
|
|
- mac_info_t *mac_control;
|
|
|
|
- buffAdd_t *ba;
|
|
|
|
|
|
+ struct RxD_t *rxdp;
|
|
|
|
+ struct mac_info *mac_control;
|
|
|
|
+ struct buffAdd *ba;
|
|
|
|
|
|
mac_control = &sp->mac_control;
|
|
mac_control = &sp->mac_control;
|
|
for (j = 0 ; j < rxd_count[sp->rxd_mode]; j++) {
|
|
for (j = 0 ; j < rxd_count[sp->rxd_mode]; j++) {
|
|
@@ -2405,41 +2407,41 @@ static void free_rxd_blk(struct s2io_nic *sp, int ring_no, int blk)
|
|
}
|
|
}
|
|
if (sp->rxd_mode == RXD_MODE_1) {
|
|
if (sp->rxd_mode == RXD_MODE_1) {
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
- ((RxD1_t*)rxdp)->Buffer0_ptr,
|
|
|
|
|
|
+ ((struct RxD1*)rxdp)->Buffer0_ptr,
|
|
dev->mtu +
|
|
dev->mtu +
|
|
HEADER_ETHERNET_II_802_3_SIZE
|
|
HEADER_ETHERNET_II_802_3_SIZE
|
|
+ HEADER_802_2_SIZE +
|
|
+ HEADER_802_2_SIZE +
|
|
HEADER_SNAP_SIZE,
|
|
HEADER_SNAP_SIZE,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
- memset(rxdp, 0, sizeof(RxD1_t));
|
|
|
|
|
|
+ memset(rxdp, 0, sizeof(struct RxD1));
|
|
} else if(sp->rxd_mode == RXD_MODE_3B) {
|
|
} else if(sp->rxd_mode == RXD_MODE_3B) {
|
|
ba = &mac_control->rings[ring_no].
|
|
ba = &mac_control->rings[ring_no].
|
|
ba[blk][j];
|
|
ba[blk][j];
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer0_ptr,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer0_ptr,
|
|
BUF0_LEN,
|
|
BUF0_LEN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer1_ptr,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer1_ptr,
|
|
BUF1_LEN,
|
|
BUF1_LEN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr,
|
|
dev->mtu + 4,
|
|
dev->mtu + 4,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
- memset(rxdp, 0, sizeof(RxD3_t));
|
|
|
|
|
|
+ memset(rxdp, 0, sizeof(struct RxD3));
|
|
} else {
|
|
} else {
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer0_ptr, BUF0_LEN,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer0_ptr, BUF0_LEN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer1_ptr,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer1_ptr,
|
|
l3l4hdr_size + 4,
|
|
l3l4hdr_size + 4,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
pci_unmap_single(sp->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr, dev->mtu,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr, dev->mtu,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
- memset(rxdp, 0, sizeof(RxD3_t));
|
|
|
|
|
|
+ memset(rxdp, 0, sizeof(struct RxD3));
|
|
}
|
|
}
|
|
dev_kfree_skb(skb);
|
|
dev_kfree_skb(skb);
|
|
atomic_dec(&sp->rx_bufs_left[ring_no]);
|
|
atomic_dec(&sp->rx_bufs_left[ring_no]);
|
|
@@ -2459,7 +2461,7 @@ static void free_rx_buffers(struct s2io_nic *sp)
|
|
{
|
|
{
|
|
struct net_device *dev = sp->dev;
|
|
struct net_device *dev = sp->dev;
|
|
int i, blk = 0, buf_cnt = 0;
|
|
int i, blk = 0, buf_cnt = 0;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
|
|
|
|
mac_control = &sp->mac_control;
|
|
mac_control = &sp->mac_control;
|
|
@@ -2494,11 +2496,11 @@ static void free_rx_buffers(struct s2io_nic *sp)
|
|
|
|
|
|
static int s2io_poll(struct net_device *dev, int *budget)
|
|
static int s2io_poll(struct net_device *dev, int *budget)
|
|
{
|
|
{
|
|
- nic_t *nic = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *nic = dev->priv;
|
|
int pkt_cnt = 0, org_pkts_to_process;
|
|
int pkt_cnt = 0, org_pkts_to_process;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
atomic_inc(&nic->isr_cnt);
|
|
atomic_inc(&nic->isr_cnt);
|
|
@@ -2568,10 +2570,10 @@ no_rx:
|
|
*/
|
|
*/
|
|
static void s2io_netpoll(struct net_device *dev)
|
|
static void s2io_netpoll(struct net_device *dev)
|
|
{
|
|
{
|
|
- nic_t *nic = dev->priv;
|
|
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct s2io_nic *nic = dev->priv;
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
u64 val64 = 0xFFFFFFFFFFFFFFFFULL;
|
|
u64 val64 = 0xFFFFFFFFFFFFFFFFULL;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -2620,13 +2622,13 @@ static void s2io_netpoll(struct net_device *dev)
|
|
* Return Value:
|
|
* Return Value:
|
|
* NONE.
|
|
* NONE.
|
|
*/
|
|
*/
|
|
-static void rx_intr_handler(ring_info_t *ring_data)
|
|
|
|
|
|
+static void rx_intr_handler(struct ring_info *ring_data)
|
|
{
|
|
{
|
|
- nic_t *nic = ring_data->nic;
|
|
|
|
|
|
+ struct s2io_nic *nic = ring_data->nic;
|
|
struct net_device *dev = (struct net_device *) nic->dev;
|
|
struct net_device *dev = (struct net_device *) nic->dev;
|
|
int get_block, put_block, put_offset;
|
|
int get_block, put_block, put_offset;
|
|
- rx_curr_get_info_t get_info, put_info;
|
|
|
|
- RxD_t *rxdp;
|
|
|
|
|
|
+ struct rx_curr_get_info get_info, put_info;
|
|
|
|
+ struct RxD_t *rxdp;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
int pkt_cnt = 0;
|
|
int pkt_cnt = 0;
|
|
int i;
|
|
int i;
|
|
@@ -2641,7 +2643,7 @@ static void rx_intr_handler(ring_info_t *ring_data)
|
|
|
|
|
|
get_info = ring_data->rx_curr_get_info;
|
|
get_info = ring_data->rx_curr_get_info;
|
|
get_block = get_info.block_index;
|
|
get_block = get_info.block_index;
|
|
- put_info = ring_data->rx_curr_put_info;
|
|
|
|
|
|
+ memcpy(&put_info, &ring_data->rx_curr_put_info, sizeof(put_info));
|
|
put_block = put_info.block_index;
|
|
put_block = put_info.block_index;
|
|
rxdp = ring_data->rx_blocks[get_block].rxds[get_info.offset].virt_addr;
|
|
rxdp = ring_data->rx_blocks[get_block].rxds[get_info.offset].virt_addr;
|
|
if (!napi) {
|
|
if (!napi) {
|
|
@@ -2671,7 +2673,7 @@ static void rx_intr_handler(ring_info_t *ring_data)
|
|
}
|
|
}
|
|
if (nic->rxd_mode == RXD_MODE_1) {
|
|
if (nic->rxd_mode == RXD_MODE_1) {
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
- ((RxD1_t*)rxdp)->Buffer0_ptr,
|
|
|
|
|
|
+ ((struct RxD1*)rxdp)->Buffer0_ptr,
|
|
dev->mtu +
|
|
dev->mtu +
|
|
HEADER_ETHERNET_II_802_3_SIZE +
|
|
HEADER_ETHERNET_II_802_3_SIZE +
|
|
HEADER_802_2_SIZE +
|
|
HEADER_802_2_SIZE +
|
|
@@ -2679,22 +2681,22 @@ static void rx_intr_handler(ring_info_t *ring_data)
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
} else if (nic->rxd_mode == RXD_MODE_3B) {
|
|
} else if (nic->rxd_mode == RXD_MODE_3B) {
|
|
pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t)
|
|
pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer0_ptr,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer0_ptr,
|
|
BUF0_LEN, PCI_DMA_FROMDEVICE);
|
|
BUF0_LEN, PCI_DMA_FROMDEVICE);
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr,
|
|
dev->mtu + 4,
|
|
dev->mtu + 4,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
} else {
|
|
} else {
|
|
pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t)
|
|
pci_dma_sync_single_for_cpu(nic->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer0_ptr, BUF0_LEN,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer0_ptr, BUF0_LEN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer1_ptr,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer1_ptr,
|
|
l3l4hdr_size + 4,
|
|
l3l4hdr_size + 4,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
pci_unmap_single(nic->pdev, (dma_addr_t)
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr,
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr,
|
|
dev->mtu, PCI_DMA_FROMDEVICE);
|
|
dev->mtu, PCI_DMA_FROMDEVICE);
|
|
}
|
|
}
|
|
prefetch(skb->data);
|
|
prefetch(skb->data);
|
|
@@ -2723,7 +2725,7 @@ static void rx_intr_handler(ring_info_t *ring_data)
|
|
if (nic->lro) {
|
|
if (nic->lro) {
|
|
/* Clear all LRO sessions before exiting */
|
|
/* Clear all LRO sessions before exiting */
|
|
for (i=0; i<MAX_LRO_SESSIONS; i++) {
|
|
for (i=0; i<MAX_LRO_SESSIONS; i++) {
|
|
- lro_t *lro = &nic->lro0_n[i];
|
|
|
|
|
|
+ struct lro *lro = &nic->lro0_n[i];
|
|
if (lro->in_use) {
|
|
if (lro->in_use) {
|
|
update_L3L4_header(nic, lro);
|
|
update_L3L4_header(nic, lro);
|
|
queue_rx_frame(lro->parent);
|
|
queue_rx_frame(lro->parent);
|
|
@@ -2747,17 +2749,17 @@ static void rx_intr_handler(ring_info_t *ring_data)
|
|
* NONE
|
|
* NONE
|
|
*/
|
|
*/
|
|
|
|
|
|
-static void tx_intr_handler(fifo_info_t *fifo_data)
|
|
|
|
|
|
+static void tx_intr_handler(struct fifo_info *fifo_data)
|
|
{
|
|
{
|
|
- nic_t *nic = fifo_data->nic;
|
|
|
|
|
|
+ struct s2io_nic *nic = fifo_data->nic;
|
|
struct net_device *dev = (struct net_device *) nic->dev;
|
|
struct net_device *dev = (struct net_device *) nic->dev;
|
|
- tx_curr_get_info_t get_info, put_info;
|
|
|
|
|
|
+ struct tx_curr_get_info get_info, put_info;
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
- TxD_t *txdlp;
|
|
|
|
|
|
+ struct TxD *txdlp;
|
|
|
|
|
|
get_info = fifo_data->tx_curr_get_info;
|
|
get_info = fifo_data->tx_curr_get_info;
|
|
- put_info = fifo_data->tx_curr_put_info;
|
|
|
|
- txdlp = (TxD_t *) fifo_data->list_info[get_info.offset].
|
|
|
|
|
|
+ memcpy(&put_info, &fifo_data->tx_curr_put_info, sizeof(put_info));
|
|
|
|
+ txdlp = (struct TxD *) fifo_data->list_info[get_info.offset].
|
|
list_virt_addr;
|
|
list_virt_addr;
|
|
while ((!(txdlp->Control_1 & TXD_LIST_OWN_XENA)) &&
|
|
while ((!(txdlp->Control_1 & TXD_LIST_OWN_XENA)) &&
|
|
(get_info.offset != put_info.offset) &&
|
|
(get_info.offset != put_info.offset) &&
|
|
@@ -2794,7 +2796,7 @@ static void tx_intr_handler(fifo_info_t *fifo_data)
|
|
get_info.offset++;
|
|
get_info.offset++;
|
|
if (get_info.offset == get_info.fifo_len + 1)
|
|
if (get_info.offset == get_info.fifo_len + 1)
|
|
get_info.offset = 0;
|
|
get_info.offset = 0;
|
|
- txdlp = (TxD_t *) fifo_data->list_info
|
|
|
|
|
|
+ txdlp = (struct TxD *) fifo_data->list_info
|
|
[get_info.offset].list_virt_addr;
|
|
[get_info.offset].list_virt_addr;
|
|
fifo_data->tx_curr_get_info.offset =
|
|
fifo_data->tx_curr_get_info.offset =
|
|
get_info.offset;
|
|
get_info.offset;
|
|
@@ -2819,8 +2821,8 @@ static void tx_intr_handler(fifo_info_t *fifo_data)
|
|
static void s2io_mdio_write(u32 mmd_type, u64 addr, u16 value, struct net_device *dev)
|
|
static void s2io_mdio_write(u32 mmd_type, u64 addr, u16 value, struct net_device *dev)
|
|
{
|
|
{
|
|
u64 val64 = 0x0;
|
|
u64 val64 = 0x0;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
//address transaction
|
|
//address transaction
|
|
val64 = val64 | MDIO_MMD_INDX_ADDR(addr)
|
|
val64 = val64 | MDIO_MMD_INDX_ADDR(addr)
|
|
@@ -2868,8 +2870,8 @@ static u64 s2io_mdio_read(u32 mmd_type, u64 addr, struct net_device *dev)
|
|
{
|
|
{
|
|
u64 val64 = 0x0;
|
|
u64 val64 = 0x0;
|
|
u64 rval64 = 0x0;
|
|
u64 rval64 = 0x0;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
/* address transaction */
|
|
/* address transaction */
|
|
val64 = val64 | MDIO_MMD_INDX_ADDR(addr)
|
|
val64 = val64 | MDIO_MMD_INDX_ADDR(addr)
|
|
@@ -2972,8 +2974,8 @@ static void s2io_updt_xpak_counter(struct net_device *dev)
|
|
u64 val64 = 0x0;
|
|
u64 val64 = 0x0;
|
|
u64 addr = 0x0;
|
|
u64 addr = 0x0;
|
|
|
|
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- StatInfo_t *stat_info = sp->mac_control.stats_info;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct stat_block *stat_info = sp->mac_control.stats_info;
|
|
|
|
|
|
/* Check the communication with the MDIO slave */
|
|
/* Check the communication with the MDIO slave */
|
|
addr = 0x0000;
|
|
addr = 0x0000;
|
|
@@ -3071,7 +3073,7 @@ static void s2io_updt_xpak_counter(struct net_device *dev)
|
|
static void alarm_intr_handler(struct s2io_nic *nic)
|
|
static void alarm_intr_handler(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
struct net_device *dev = (struct net_device *) nic->dev;
|
|
struct net_device *dev = (struct net_device *) nic->dev;
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
register u64 val64 = 0, err_reg = 0;
|
|
register u64 val64 = 0, err_reg = 0;
|
|
u64 cnt;
|
|
u64 cnt;
|
|
int i;
|
|
int i;
|
|
@@ -3246,9 +3248,9 @@ static u16 check_pci_device_id(u16 id)
|
|
* void.
|
|
* void.
|
|
*/
|
|
*/
|
|
|
|
|
|
-static void s2io_reset(nic_t * sp)
|
|
|
|
|
|
+static void s2io_reset(struct s2io_nic * sp)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64;
|
|
u64 val64;
|
|
u16 subid, pci_cmd;
|
|
u16 subid, pci_cmd;
|
|
int i;
|
|
int i;
|
|
@@ -3352,10 +3354,10 @@ new_way:
|
|
* SUCCESS on success and FAILURE on failure.
|
|
* SUCCESS on success and FAILURE on failure.
|
|
*/
|
|
*/
|
|
|
|
|
|
-static int s2io_set_swapper(nic_t * sp)
|
|
|
|
|
|
+static int s2io_set_swapper(struct s2io_nic * sp)
|
|
{
|
|
{
|
|
struct net_device *dev = sp->dev;
|
|
struct net_device *dev = sp->dev;
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64, valt, valr;
|
|
u64 val64, valt, valr;
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -3480,9 +3482,9 @@ static int s2io_set_swapper(nic_t * sp)
|
|
return SUCCESS;
|
|
return SUCCESS;
|
|
}
|
|
}
|
|
|
|
|
|
-static int wait_for_msix_trans(nic_t *nic, int i)
|
|
|
|
|
|
+static int wait_for_msix_trans(struct s2io_nic *nic, int i)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
u64 val64;
|
|
u64 val64;
|
|
int ret = 0, cnt = 0;
|
|
int ret = 0, cnt = 0;
|
|
|
|
|
|
@@ -3501,9 +3503,9 @@ static int wait_for_msix_trans(nic_t *nic, int i)
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
-static void restore_xmsi_data(nic_t *nic)
|
|
|
|
|
|
+static void restore_xmsi_data(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
u64 val64;
|
|
u64 val64;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -3519,9 +3521,9 @@ static void restore_xmsi_data(nic_t *nic)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-static void store_xmsi_data(nic_t *nic)
|
|
|
|
|
|
+static void store_xmsi_data(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
u64 val64, addr, data;
|
|
u64 val64, addr, data;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -3542,9 +3544,9 @@ static void store_xmsi_data(nic_t *nic)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-int s2io_enable_msi(nic_t *nic)
|
|
|
|
|
|
+int s2io_enable_msi(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
u16 msi_ctrl, msg_val;
|
|
u16 msi_ctrl, msg_val;
|
|
struct config_param *config = &nic->config;
|
|
struct config_param *config = &nic->config;
|
|
struct net_device *dev = nic->dev;
|
|
struct net_device *dev = nic->dev;
|
|
@@ -3592,9 +3594,9 @@ int s2io_enable_msi(nic_t *nic)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-static int s2io_enable_msi_x(nic_t *nic)
|
|
|
|
|
|
+static int s2io_enable_msi_x(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
u64 tx_mat, rx_mat;
|
|
u64 tx_mat, rx_mat;
|
|
u16 msi_control; /* Temp variable */
|
|
u16 msi_control; /* Temp variable */
|
|
int ret, i, j, msix_indx = 1;
|
|
int ret, i, j, msix_indx = 1;
|
|
@@ -3702,7 +3704,7 @@ static int s2io_enable_msi_x(nic_t *nic)
|
|
|
|
|
|
static int s2io_open(struct net_device *dev)
|
|
static int s2io_open(struct net_device *dev)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
int err = 0;
|
|
int err = 0;
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -3755,7 +3757,7 @@ hw_init_failed:
|
|
|
|
|
|
static int s2io_close(struct net_device *dev)
|
|
static int s2io_close(struct net_device *dev)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
|
|
flush_scheduled_work();
|
|
flush_scheduled_work();
|
|
netif_stop_queue(dev);
|
|
netif_stop_queue(dev);
|
|
@@ -3781,15 +3783,15 @@ static int s2io_close(struct net_device *dev)
|
|
|
|
|
|
static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off;
|
|
u16 frg_cnt, frg_len, i, queue, queue_len, put_off, get_off;
|
|
register u64 val64;
|
|
register u64 val64;
|
|
- TxD_t *txdp;
|
|
|
|
- TxFIFO_element_t __iomem *tx_fifo;
|
|
|
|
|
|
+ struct TxD *txdp;
|
|
|
|
+ struct TxFIFO_element __iomem *tx_fifo;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
u16 vlan_tag = 0;
|
|
u16 vlan_tag = 0;
|
|
int vlan_priority = 0;
|
|
int vlan_priority = 0;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
int offload_type;
|
|
int offload_type;
|
|
|
|
|
|
@@ -3817,7 +3819,7 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
|
|
|
put_off = (u16) mac_control->fifos[queue].tx_curr_put_info.offset;
|
|
put_off = (u16) mac_control->fifos[queue].tx_curr_put_info.offset;
|
|
get_off = (u16) mac_control->fifos[queue].tx_curr_get_info.offset;
|
|
get_off = (u16) mac_control->fifos[queue].tx_curr_get_info.offset;
|
|
- txdp = (TxD_t *) mac_control->fifos[queue].list_info[put_off].
|
|
|
|
|
|
+ txdp = (struct TxD *) mac_control->fifos[queue].list_info[put_off].
|
|
list_virt_addr;
|
|
list_virt_addr;
|
|
|
|
|
|
queue_len = mac_control->fifos[queue].tx_curr_put_info.fifo_len + 1;
|
|
queue_len = mac_control->fifos[queue].tx_curr_put_info.fifo_len + 1;
|
|
@@ -3944,13 +3946,13 @@ static int s2io_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
static void
|
|
static void
|
|
s2io_alarm_handle(unsigned long data)
|
|
s2io_alarm_handle(unsigned long data)
|
|
{
|
|
{
|
|
- nic_t *sp = (nic_t *)data;
|
|
|
|
|
|
+ struct s2io_nic *sp = (struct s2io_nic *)data;
|
|
|
|
|
|
alarm_intr_handler(sp);
|
|
alarm_intr_handler(sp);
|
|
mod_timer(&sp->alarm_timer, jiffies + HZ / 2);
|
|
mod_timer(&sp->alarm_timer, jiffies + HZ / 2);
|
|
}
|
|
}
|
|
|
|
|
|
-static int s2io_chk_rx_buffers(nic_t *sp, int rng_n)
|
|
|
|
|
|
+static int s2io_chk_rx_buffers(struct s2io_nic *sp, int rng_n)
|
|
{
|
|
{
|
|
int rxb_size, level;
|
|
int rxb_size, level;
|
|
|
|
|
|
@@ -3982,9 +3984,9 @@ static int s2io_chk_rx_buffers(nic_t *sp, int rng_n)
|
|
static irqreturn_t s2io_msi_handle(int irq, void *dev_id)
|
|
static irqreturn_t s2io_msi_handle(int irq, void *dev_id)
|
|
{
|
|
{
|
|
struct net_device *dev = (struct net_device *) dev_id;
|
|
struct net_device *dev = (struct net_device *) dev_id;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
int i;
|
|
int i;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
|
|
|
|
atomic_inc(&sp->isr_cnt);
|
|
atomic_inc(&sp->isr_cnt);
|
|
@@ -4014,8 +4016,8 @@ static irqreturn_t s2io_msi_handle(int irq, void *dev_id)
|
|
|
|
|
|
static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id)
|
|
static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id)
|
|
{
|
|
{
|
|
- ring_info_t *ring = (ring_info_t *)dev_id;
|
|
|
|
- nic_t *sp = ring->nic;
|
|
|
|
|
|
+ struct ring_info *ring = (struct ring_info *)dev_id;
|
|
|
|
+ struct s2io_nic *sp = ring->nic;
|
|
|
|
|
|
atomic_inc(&sp->isr_cnt);
|
|
atomic_inc(&sp->isr_cnt);
|
|
|
|
|
|
@@ -4028,17 +4030,17 @@ static irqreturn_t s2io_msix_ring_handle(int irq, void *dev_id)
|
|
|
|
|
|
static irqreturn_t s2io_msix_fifo_handle(int irq, void *dev_id)
|
|
static irqreturn_t s2io_msix_fifo_handle(int irq, void *dev_id)
|
|
{
|
|
{
|
|
- fifo_info_t *fifo = (fifo_info_t *)dev_id;
|
|
|
|
- nic_t *sp = fifo->nic;
|
|
|
|
|
|
+ struct fifo_info *fifo = (struct fifo_info *)dev_id;
|
|
|
|
+ struct s2io_nic *sp = fifo->nic;
|
|
|
|
|
|
atomic_inc(&sp->isr_cnt);
|
|
atomic_inc(&sp->isr_cnt);
|
|
tx_intr_handler(fifo);
|
|
tx_intr_handler(fifo);
|
|
atomic_dec(&sp->isr_cnt);
|
|
atomic_dec(&sp->isr_cnt);
|
|
return IRQ_HANDLED;
|
|
return IRQ_HANDLED;
|
|
}
|
|
}
|
|
-static void s2io_txpic_intr_handle(nic_t *sp)
|
|
|
|
|
|
+static void s2io_txpic_intr_handle(struct s2io_nic *sp)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64;
|
|
u64 val64;
|
|
|
|
|
|
val64 = readq(&bar0->pic_int_status);
|
|
val64 = readq(&bar0->pic_int_status);
|
|
@@ -4108,11 +4110,11 @@ static void s2io_txpic_intr_handle(nic_t *sp)
|
|
static irqreturn_t s2io_isr(int irq, void *dev_id)
|
|
static irqreturn_t s2io_isr(int irq, void *dev_id)
|
|
{
|
|
{
|
|
struct net_device *dev = (struct net_device *) dev_id;
|
|
struct net_device *dev = (struct net_device *) dev_id;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
int i;
|
|
int i;
|
|
u64 reason = 0;
|
|
u64 reason = 0;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
|
|
|
|
atomic_inc(&sp->isr_cnt);
|
|
atomic_inc(&sp->isr_cnt);
|
|
@@ -4198,9 +4200,9 @@ static irqreturn_t s2io_isr(int irq, void *dev_id)
|
|
/**
|
|
/**
|
|
* s2io_updt_stats -
|
|
* s2io_updt_stats -
|
|
*/
|
|
*/
|
|
-static void s2io_updt_stats(nic_t *sp)
|
|
|
|
|
|
+static void s2io_updt_stats(struct s2io_nic *sp)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64;
|
|
u64 val64;
|
|
int cnt = 0;
|
|
int cnt = 0;
|
|
|
|
|
|
@@ -4219,7 +4221,7 @@ static void s2io_updt_stats(nic_t *sp)
|
|
break; /* Updt failed */
|
|
break; /* Updt failed */
|
|
} while(1);
|
|
} while(1);
|
|
} else {
|
|
} else {
|
|
- memset(sp->mac_control.stats_info, 0, sizeof(StatInfo_t));
|
|
|
|
|
|
+ memset(sp->mac_control.stats_info, 0, sizeof(struct stat_block));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -4235,8 +4237,8 @@ static void s2io_updt_stats(nic_t *sp)
|
|
|
|
|
|
static struct net_device_stats *s2io_get_stats(struct net_device *dev)
|
|
static struct net_device_stats *s2io_get_stats(struct net_device *dev)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
|
|
|
|
|
|
|
|
@@ -4277,8 +4279,8 @@ static void s2io_set_multicast(struct net_device *dev)
|
|
{
|
|
{
|
|
int i, j, prev_cnt;
|
|
int i, j, prev_cnt;
|
|
struct dev_mc_list *mclist;
|
|
struct dev_mc_list *mclist;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64 = 0, multi_mac = 0x010203040506ULL, mask =
|
|
u64 val64 = 0, multi_mac = 0x010203040506ULL, mask =
|
|
0xfeffffffffffULL;
|
|
0xfeffffffffffULL;
|
|
u64 dis_addr = 0xffffffffffffULL, mac_addr = 0;
|
|
u64 dis_addr = 0xffffffffffffULL, mac_addr = 0;
|
|
@@ -4431,8 +4433,8 @@ static void s2io_set_multicast(struct net_device *dev)
|
|
|
|
|
|
static int s2io_set_mac_addr(struct net_device *dev, u8 * addr)
|
|
static int s2io_set_mac_addr(struct net_device *dev, u8 * addr)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
register u64 val64, mac_addr = 0;
|
|
register u64 val64, mac_addr = 0;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -4478,7 +4480,7 @@ static int s2io_set_mac_addr(struct net_device *dev, u8 * addr)
|
|
static int s2io_ethtool_sset(struct net_device *dev,
|
|
static int s2io_ethtool_sset(struct net_device *dev,
|
|
struct ethtool_cmd *info)
|
|
struct ethtool_cmd *info)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
if ((info->autoneg == AUTONEG_ENABLE) ||
|
|
if ((info->autoneg == AUTONEG_ENABLE) ||
|
|
(info->speed != SPEED_10000) || (info->duplex != DUPLEX_FULL))
|
|
(info->speed != SPEED_10000) || (info->duplex != DUPLEX_FULL))
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
@@ -4504,7 +4506,7 @@ static int s2io_ethtool_sset(struct net_device *dev,
|
|
|
|
|
|
static int s2io_ethtool_gset(struct net_device *dev, struct ethtool_cmd *info)
|
|
static int s2io_ethtool_gset(struct net_device *dev, struct ethtool_cmd *info)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
info->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE);
|
|
info->supported = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE);
|
|
info->advertising = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE);
|
|
info->advertising = (SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE);
|
|
info->port = PORT_FIBRE;
|
|
info->port = PORT_FIBRE;
|
|
@@ -4537,7 +4539,7 @@ static int s2io_ethtool_gset(struct net_device *dev, struct ethtool_cmd *info)
|
|
static void s2io_ethtool_gdrvinfo(struct net_device *dev,
|
|
static void s2io_ethtool_gdrvinfo(struct net_device *dev,
|
|
struct ethtool_drvinfo *info)
|
|
struct ethtool_drvinfo *info)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
|
|
strncpy(info->driver, s2io_driver_name, sizeof(info->driver));
|
|
strncpy(info->driver, s2io_driver_name, sizeof(info->driver));
|
|
strncpy(info->version, s2io_driver_version, sizeof(info->version));
|
|
strncpy(info->version, s2io_driver_version, sizeof(info->version));
|
|
@@ -4569,7 +4571,7 @@ static void s2io_ethtool_gregs(struct net_device *dev,
|
|
int i;
|
|
int i;
|
|
u64 reg;
|
|
u64 reg;
|
|
u8 *reg_space = (u8 *) space;
|
|
u8 *reg_space = (u8 *) space;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
|
|
regs->len = XENA_REG_SPACE;
|
|
regs->len = XENA_REG_SPACE;
|
|
regs->version = sp->pdev->subsystem_device;
|
|
regs->version = sp->pdev->subsystem_device;
|
|
@@ -4591,8 +4593,8 @@ static void s2io_ethtool_gregs(struct net_device *dev,
|
|
*/
|
|
*/
|
|
static void s2io_phy_id(unsigned long data)
|
|
static void s2io_phy_id(unsigned long data)
|
|
{
|
|
{
|
|
- nic_t *sp = (nic_t *) data;
|
|
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct s2io_nic *sp = (struct s2io_nic *) data;
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64 = 0;
|
|
u64 val64 = 0;
|
|
u16 subid;
|
|
u16 subid;
|
|
|
|
|
|
@@ -4629,8 +4631,8 @@ static void s2io_phy_id(unsigned long data)
|
|
static int s2io_ethtool_idnic(struct net_device *dev, u32 data)
|
|
static int s2io_ethtool_idnic(struct net_device *dev, u32 data)
|
|
{
|
|
{
|
|
u64 val64 = 0, last_gpio_ctrl_val;
|
|
u64 val64 = 0, last_gpio_ctrl_val;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u16 subid;
|
|
u16 subid;
|
|
|
|
|
|
subid = sp->pdev->subsystem_device;
|
|
subid = sp->pdev->subsystem_device;
|
|
@@ -4678,8 +4680,8 @@ static void s2io_ethtool_getpause_data(struct net_device *dev,
|
|
struct ethtool_pauseparam *ep)
|
|
struct ethtool_pauseparam *ep)
|
|
{
|
|
{
|
|
u64 val64;
|
|
u64 val64;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
val64 = readq(&bar0->rmac_pause_cfg);
|
|
val64 = readq(&bar0->rmac_pause_cfg);
|
|
if (val64 & RMAC_PAUSE_GEN_ENABLE)
|
|
if (val64 & RMAC_PAUSE_GEN_ENABLE)
|
|
@@ -4705,8 +4707,8 @@ static int s2io_ethtool_setpause_data(struct net_device *dev,
|
|
struct ethtool_pauseparam *ep)
|
|
struct ethtool_pauseparam *ep)
|
|
{
|
|
{
|
|
u64 val64;
|
|
u64 val64;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
val64 = readq(&bar0->rmac_pause_cfg);
|
|
val64 = readq(&bar0->rmac_pause_cfg);
|
|
if (ep->tx_pause)
|
|
if (ep->tx_pause)
|
|
@@ -4738,12 +4740,12 @@ static int s2io_ethtool_setpause_data(struct net_device *dev,
|
|
*/
|
|
*/
|
|
|
|
|
|
#define S2IO_DEV_ID 5
|
|
#define S2IO_DEV_ID 5
|
|
-static int read_eeprom(nic_t * sp, int off, u64 * data)
|
|
|
|
|
|
+static int read_eeprom(struct s2io_nic * sp, int off, u64 * data)
|
|
{
|
|
{
|
|
int ret = -1;
|
|
int ret = -1;
|
|
u32 exit_cnt = 0;
|
|
u32 exit_cnt = 0;
|
|
u64 val64;
|
|
u64 val64;
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
if (sp->device_type == XFRAME_I_DEVICE) {
|
|
if (sp->device_type == XFRAME_I_DEVICE) {
|
|
val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) |
|
|
val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) |
|
|
@@ -4803,11 +4805,11 @@ static int read_eeprom(nic_t * sp, int off, u64 * data)
|
|
* 0 on success, -1 on failure.
|
|
* 0 on success, -1 on failure.
|
|
*/
|
|
*/
|
|
|
|
|
|
-static int write_eeprom(nic_t * sp, int off, u64 data, int cnt)
|
|
|
|
|
|
+static int write_eeprom(struct s2io_nic * sp, int off, u64 data, int cnt)
|
|
{
|
|
{
|
|
int exit_cnt = 0, ret = -1;
|
|
int exit_cnt = 0, ret = -1;
|
|
u64 val64;
|
|
u64 val64;
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
if (sp->device_type == XFRAME_I_DEVICE) {
|
|
if (sp->device_type == XFRAME_I_DEVICE) {
|
|
val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) |
|
|
val64 = I2C_CONTROL_DEV_ID(S2IO_DEV_ID) | I2C_CONTROL_ADDR(off) |
|
|
@@ -4852,7 +4854,7 @@ static int write_eeprom(nic_t * sp, int off, u64 data, int cnt)
|
|
}
|
|
}
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
-static void s2io_vpd_read(nic_t *nic)
|
|
|
|
|
|
+static void s2io_vpd_read(struct s2io_nic *nic)
|
|
{
|
|
{
|
|
u8 *vpd_data;
|
|
u8 *vpd_data;
|
|
u8 data;
|
|
u8 data;
|
|
@@ -4931,7 +4933,7 @@ static int s2io_ethtool_geeprom(struct net_device *dev,
|
|
{
|
|
{
|
|
u32 i, valid;
|
|
u32 i, valid;
|
|
u64 data;
|
|
u64 data;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
|
|
eeprom->magic = sp->pdev->vendor | (sp->pdev->device << 16);
|
|
eeprom->magic = sp->pdev->vendor | (sp->pdev->device << 16);
|
|
|
|
|
|
@@ -4969,7 +4971,7 @@ static int s2io_ethtool_seeprom(struct net_device *dev,
|
|
{
|
|
{
|
|
int len = eeprom->len, cnt = 0;
|
|
int len = eeprom->len, cnt = 0;
|
|
u64 valid = 0, data;
|
|
u64 valid = 0, data;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
|
|
if (eeprom->magic != (sp->pdev->vendor | (sp->pdev->device << 16))) {
|
|
if (eeprom->magic != (sp->pdev->vendor | (sp->pdev->device << 16))) {
|
|
DBG_PRINT(ERR_DBG,
|
|
DBG_PRINT(ERR_DBG,
|
|
@@ -5013,9 +5015,9 @@ static int s2io_ethtool_seeprom(struct net_device *dev,
|
|
* 0 on success.
|
|
* 0 on success.
|
|
*/
|
|
*/
|
|
|
|
|
|
-static int s2io_register_test(nic_t * sp, uint64_t * data)
|
|
|
|
|
|
+static int s2io_register_test(struct s2io_nic * sp, uint64_t * data)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64 = 0, exp_val;
|
|
u64 val64 = 0, exp_val;
|
|
int fail = 0;
|
|
int fail = 0;
|
|
|
|
|
|
@@ -5080,7 +5082,7 @@ static int s2io_register_test(nic_t * sp, uint64_t * data)
|
|
* 0 on success.
|
|
* 0 on success.
|
|
*/
|
|
*/
|
|
|
|
|
|
-static int s2io_eeprom_test(nic_t * sp, uint64_t * data)
|
|
|
|
|
|
+static int s2io_eeprom_test(struct s2io_nic * sp, uint64_t * data)
|
|
{
|
|
{
|
|
int fail = 0;
|
|
int fail = 0;
|
|
u64 ret_data, org_4F0, org_7F0;
|
|
u64 ret_data, org_4F0, org_7F0;
|
|
@@ -5182,7 +5184,7 @@ static int s2io_eeprom_test(nic_t * sp, uint64_t * data)
|
|
* 0 on success and -1 on failure.
|
|
* 0 on success and -1 on failure.
|
|
*/
|
|
*/
|
|
|
|
|
|
-static int s2io_bist_test(nic_t * sp, uint64_t * data)
|
|
|
|
|
|
+static int s2io_bist_test(struct s2io_nic * sp, uint64_t * data)
|
|
{
|
|
{
|
|
u8 bist = 0;
|
|
u8 bist = 0;
|
|
int cnt = 0, ret = -1;
|
|
int cnt = 0, ret = -1;
|
|
@@ -5218,9 +5220,9 @@ static int s2io_bist_test(nic_t * sp, uint64_t * data)
|
|
* 0 on success.
|
|
* 0 on success.
|
|
*/
|
|
*/
|
|
|
|
|
|
-static int s2io_link_test(nic_t * sp, uint64_t * data)
|
|
|
|
|
|
+static int s2io_link_test(struct s2io_nic * sp, uint64_t * data)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64;
|
|
u64 val64;
|
|
|
|
|
|
val64 = readq(&bar0->adapter_status);
|
|
val64 = readq(&bar0->adapter_status);
|
|
@@ -5245,9 +5247,9 @@ static int s2io_link_test(nic_t * sp, uint64_t * data)
|
|
* 0 on success.
|
|
* 0 on success.
|
|
*/
|
|
*/
|
|
|
|
|
|
-static int s2io_rldram_test(nic_t * sp, uint64_t * data)
|
|
|
|
|
|
+static int s2io_rldram_test(struct s2io_nic * sp, uint64_t * data)
|
|
{
|
|
{
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64;
|
|
u64 val64;
|
|
int cnt, iteration = 0, test_fail = 0;
|
|
int cnt, iteration = 0, test_fail = 0;
|
|
|
|
|
|
@@ -5349,7 +5351,7 @@ static void s2io_ethtool_test(struct net_device *dev,
|
|
struct ethtool_test *ethtest,
|
|
struct ethtool_test *ethtest,
|
|
uint64_t * data)
|
|
uint64_t * data)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
int orig_state = netif_running(sp->dev);
|
|
int orig_state = netif_running(sp->dev);
|
|
|
|
|
|
if (ethtest->flags == ETH_TEST_FL_OFFLINE) {
|
|
if (ethtest->flags == ETH_TEST_FL_OFFLINE) {
|
|
@@ -5405,8 +5407,8 @@ static void s2io_get_ethtool_stats(struct net_device *dev,
|
|
u64 * tmp_stats)
|
|
u64 * tmp_stats)
|
|
{
|
|
{
|
|
int i = 0;
|
|
int i = 0;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
- StatInfo_t *stat_info = sp->mac_control.stats_info;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
+ struct stat_block *stat_info = sp->mac_control.stats_info;
|
|
|
|
|
|
s2io_updt_stats(sp);
|
|
s2io_updt_stats(sp);
|
|
tmp_stats[i++] =
|
|
tmp_stats[i++] =
|
|
@@ -5633,14 +5635,14 @@ static int s2io_ethtool_get_regs_len(struct net_device *dev)
|
|
|
|
|
|
static u32 s2io_ethtool_get_rx_csum(struct net_device * dev)
|
|
static u32 s2io_ethtool_get_rx_csum(struct net_device * dev)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
|
|
return (sp->rx_csum);
|
|
return (sp->rx_csum);
|
|
}
|
|
}
|
|
|
|
|
|
static int s2io_ethtool_set_rx_csum(struct net_device *dev, u32 data)
|
|
static int s2io_ethtool_set_rx_csum(struct net_device *dev, u32 data)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
|
|
if (data)
|
|
if (data)
|
|
sp->rx_csum = 1;
|
|
sp->rx_csum = 1;
|
|
@@ -5761,7 +5763,7 @@ static int s2io_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
|
|
|
|
|
|
static int s2io_change_mtu(struct net_device *dev, int new_mtu)
|
|
static int s2io_change_mtu(struct net_device *dev, int new_mtu)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
|
|
if ((new_mtu < MIN_MTU) || (new_mtu > S2IO_JUMBO_SIZE)) {
|
|
if ((new_mtu < MIN_MTU) || (new_mtu > S2IO_JUMBO_SIZE)) {
|
|
DBG_PRINT(ERR_DBG, "%s: MTU size is invalid.\n",
|
|
DBG_PRINT(ERR_DBG, "%s: MTU size is invalid.\n",
|
|
@@ -5780,7 +5782,7 @@ static int s2io_change_mtu(struct net_device *dev, int new_mtu)
|
|
if (netif_queue_stopped(dev))
|
|
if (netif_queue_stopped(dev))
|
|
netif_wake_queue(dev);
|
|
netif_wake_queue(dev);
|
|
} else { /* Device is down */
|
|
} else { /* Device is down */
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
u64 val64 = new_mtu;
|
|
u64 val64 = new_mtu;
|
|
|
|
|
|
writeq(vBIT(val64, 2, 14), &bar0->rmac_max_pyld_len);
|
|
writeq(vBIT(val64, 2, 14), &bar0->rmac_max_pyld_len);
|
|
@@ -5805,9 +5807,9 @@ static int s2io_change_mtu(struct net_device *dev, int new_mtu)
|
|
static void s2io_tasklet(unsigned long dev_addr)
|
|
static void s2io_tasklet(unsigned long dev_addr)
|
|
{
|
|
{
|
|
struct net_device *dev = (struct net_device *) dev_addr;
|
|
struct net_device *dev = (struct net_device *) dev_addr;
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
int i, ret;
|
|
int i, ret;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
|
|
|
|
mac_control = &sp->mac_control;
|
|
mac_control = &sp->mac_control;
|
|
@@ -5840,9 +5842,9 @@ static void s2io_tasklet(unsigned long dev_addr)
|
|
|
|
|
|
static void s2io_set_link(struct work_struct *work)
|
|
static void s2io_set_link(struct work_struct *work)
|
|
{
|
|
{
|
|
- nic_t *nic = container_of(work, nic_t, set_link_task);
|
|
|
|
|
|
+ struct s2io_nic *nic = container_of(work, struct s2io_nic, set_link_task);
|
|
struct net_device *dev = nic->dev;
|
|
struct net_device *dev = nic->dev;
|
|
- XENA_dev_config_t __iomem *bar0 = nic->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = nic->bar0;
|
|
register u64 val64;
|
|
register u64 val64;
|
|
u16 subid;
|
|
u16 subid;
|
|
|
|
|
|
@@ -5904,9 +5906,10 @@ static void s2io_set_link(struct work_struct *work)
|
|
clear_bit(0, &(nic->link_state));
|
|
clear_bit(0, &(nic->link_state));
|
|
}
|
|
}
|
|
|
|
|
|
-static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba,
|
|
|
|
- struct sk_buff **skb, u64 *temp0, u64 *temp1,
|
|
|
|
- u64 *temp2, int size)
|
|
|
|
|
|
+static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
|
|
|
|
+ struct buffAdd *ba,
|
|
|
|
+ struct sk_buff **skb, u64 *temp0, u64 *temp1,
|
|
|
|
+ u64 *temp2, int size)
|
|
{
|
|
{
|
|
struct net_device *dev = sp->dev;
|
|
struct net_device *dev = sp->dev;
|
|
struct sk_buff *frag_list;
|
|
struct sk_buff *frag_list;
|
|
@@ -5920,7 +5923,7 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba,
|
|
* using same mapped address for the Rxd
|
|
* using same mapped address for the Rxd
|
|
* buffer pointer
|
|
* buffer pointer
|
|
*/
|
|
*/
|
|
- ((RxD1_t*)rxdp)->Buffer0_ptr = *temp0;
|
|
|
|
|
|
+ ((struct RxD1*)rxdp)->Buffer0_ptr = *temp0;
|
|
} else {
|
|
} else {
|
|
*skb = dev_alloc_skb(size);
|
|
*skb = dev_alloc_skb(size);
|
|
if (!(*skb)) {
|
|
if (!(*skb)) {
|
|
@@ -5932,7 +5935,7 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba,
|
|
* such it will be used for next rxd whose
|
|
* such it will be used for next rxd whose
|
|
* Host Control is NULL
|
|
* Host Control is NULL
|
|
*/
|
|
*/
|
|
- ((RxD1_t*)rxdp)->Buffer0_ptr = *temp0 =
|
|
|
|
|
|
+ ((struct RxD1*)rxdp)->Buffer0_ptr = *temp0 =
|
|
pci_map_single( sp->pdev, (*skb)->data,
|
|
pci_map_single( sp->pdev, (*skb)->data,
|
|
size - NET_IP_ALIGN,
|
|
size - NET_IP_ALIGN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
@@ -5941,9 +5944,9 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba,
|
|
} else if ((sp->rxd_mode == RXD_MODE_3B) && (rxdp->Host_Control == 0)) {
|
|
} else if ((sp->rxd_mode == RXD_MODE_3B) && (rxdp->Host_Control == 0)) {
|
|
/* Two buffer Mode */
|
|
/* Two buffer Mode */
|
|
if (*skb) {
|
|
if (*skb) {
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr = *temp2;
|
|
|
|
- ((RxD3_t*)rxdp)->Buffer0_ptr = *temp0;
|
|
|
|
- ((RxD3_t*)rxdp)->Buffer1_ptr = *temp1;
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr = *temp2;
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer0_ptr = *temp0;
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer1_ptr = *temp1;
|
|
} else {
|
|
} else {
|
|
*skb = dev_alloc_skb(size);
|
|
*skb = dev_alloc_skb(size);
|
|
if (!(*skb)) {
|
|
if (!(*skb)) {
|
|
@@ -5951,26 +5954,26 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba,
|
|
dev->name);
|
|
dev->name);
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
}
|
|
}
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr = *temp2 =
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr = *temp2 =
|
|
pci_map_single(sp->pdev, (*skb)->data,
|
|
pci_map_single(sp->pdev, (*skb)->data,
|
|
dev->mtu + 4,
|
|
dev->mtu + 4,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
- ((RxD3_t*)rxdp)->Buffer0_ptr = *temp0 =
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer0_ptr = *temp0 =
|
|
pci_map_single( sp->pdev, ba->ba_0, BUF0_LEN,
|
|
pci_map_single( sp->pdev, ba->ba_0, BUF0_LEN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
rxdp->Host_Control = (unsigned long) (*skb);
|
|
rxdp->Host_Control = (unsigned long) (*skb);
|
|
|
|
|
|
/* Buffer-1 will be dummy buffer not used */
|
|
/* Buffer-1 will be dummy buffer not used */
|
|
- ((RxD3_t*)rxdp)->Buffer1_ptr = *temp1 =
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer1_ptr = *temp1 =
|
|
pci_map_single(sp->pdev, ba->ba_1, BUF1_LEN,
|
|
pci_map_single(sp->pdev, ba->ba_1, BUF1_LEN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
}
|
|
}
|
|
} else if ((rxdp->Host_Control == 0)) {
|
|
} else if ((rxdp->Host_Control == 0)) {
|
|
/* Three buffer mode */
|
|
/* Three buffer mode */
|
|
if (*skb) {
|
|
if (*skb) {
|
|
- ((RxD3_t*)rxdp)->Buffer0_ptr = *temp0;
|
|
|
|
- ((RxD3_t*)rxdp)->Buffer1_ptr = *temp1;
|
|
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr = *temp2;
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer0_ptr = *temp0;
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer1_ptr = *temp1;
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr = *temp2;
|
|
} else {
|
|
} else {
|
|
*skb = dev_alloc_skb(size);
|
|
*skb = dev_alloc_skb(size);
|
|
if (!(*skb)) {
|
|
if (!(*skb)) {
|
|
@@ -5978,11 +5981,11 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba,
|
|
dev->name);
|
|
dev->name);
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
}
|
|
}
|
|
- ((RxD3_t*)rxdp)->Buffer0_ptr = *temp0 =
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer0_ptr = *temp0 =
|
|
pci_map_single(sp->pdev, ba->ba_0, BUF0_LEN,
|
|
pci_map_single(sp->pdev, ba->ba_0, BUF0_LEN,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
/* Buffer-1 receives L3/L4 headers */
|
|
/* Buffer-1 receives L3/L4 headers */
|
|
- ((RxD3_t*)rxdp)->Buffer1_ptr = *temp1 =
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer1_ptr = *temp1 =
|
|
pci_map_single( sp->pdev, (*skb)->data,
|
|
pci_map_single( sp->pdev, (*skb)->data,
|
|
l3l4hdr_size + 4,
|
|
l3l4hdr_size + 4,
|
|
PCI_DMA_FROMDEVICE);
|
|
PCI_DMA_FROMDEVICE);
|
|
@@ -6002,14 +6005,15 @@ static int set_rxd_buffer_pointer(nic_t *sp, RxD_t *rxdp, buffAdd_t *ba,
|
|
/*
|
|
/*
|
|
* Buffer-2 receives L4 data payload
|
|
* Buffer-2 receives L4 data payload
|
|
*/
|
|
*/
|
|
- ((RxD3_t*)rxdp)->Buffer2_ptr = *temp2 =
|
|
|
|
|
|
+ ((struct RxD3*)rxdp)->Buffer2_ptr = *temp2 =
|
|
pci_map_single( sp->pdev, frag_list->data,
|
|
pci_map_single( sp->pdev, frag_list->data,
|
|
dev->mtu, PCI_DMA_FROMDEVICE);
|
|
dev->mtu, PCI_DMA_FROMDEVICE);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
-static void set_rxd_buffer_size(nic_t *sp, RxD_t *rxdp, int size)
|
|
|
|
|
|
+static void set_rxd_buffer_size(struct s2io_nic *sp, struct RxD_t *rxdp,
|
|
|
|
+ int size)
|
|
{
|
|
{
|
|
struct net_device *dev = sp->dev;
|
|
struct net_device *dev = sp->dev;
|
|
if (sp->rxd_mode == RXD_MODE_1) {
|
|
if (sp->rxd_mode == RXD_MODE_1) {
|
|
@@ -6025,15 +6029,15 @@ static void set_rxd_buffer_size(nic_t *sp, RxD_t *rxdp, int size)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-static int rxd_owner_bit_reset(nic_t *sp)
|
|
|
|
|
|
+static int rxd_owner_bit_reset(struct s2io_nic *sp)
|
|
{
|
|
{
|
|
int i, j, k, blk_cnt = 0, size;
|
|
int i, j, k, blk_cnt = 0, size;
|
|
- mac_info_t * mac_control = &sp->mac_control;
|
|
|
|
|
|
+ struct mac_info * mac_control = &sp->mac_control;
|
|
struct config_param *config = &sp->config;
|
|
struct config_param *config = &sp->config;
|
|
struct net_device *dev = sp->dev;
|
|
struct net_device *dev = sp->dev;
|
|
- RxD_t *rxdp = NULL;
|
|
|
|
|
|
+ struct RxD_t *rxdp = NULL;
|
|
struct sk_buff *skb = NULL;
|
|
struct sk_buff *skb = NULL;
|
|
- buffAdd_t *ba = NULL;
|
|
|
|
|
|
+ struct buffAdd *ba = NULL;
|
|
u64 temp0_64 = 0, temp1_64 = 0, temp2_64 = 0;
|
|
u64 temp0_64 = 0, temp1_64 = 0, temp2_64 = 0;
|
|
|
|
|
|
/* Calculate the size based on ring mode */
|
|
/* Calculate the size based on ring mode */
|
|
@@ -6072,7 +6076,7 @@ static int rxd_owner_bit_reset(nic_t *sp)
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-static int s2io_add_isr(nic_t * sp)
|
|
|
|
|
|
+static int s2io_add_isr(struct s2io_nic * sp)
|
|
{
|
|
{
|
|
int ret = 0;
|
|
int ret = 0;
|
|
struct net_device *dev = sp->dev;
|
|
struct net_device *dev = sp->dev;
|
|
@@ -6087,7 +6091,7 @@ static int s2io_add_isr(nic_t * sp)
|
|
sp->intr_type = INTA;
|
|
sp->intr_type = INTA;
|
|
}
|
|
}
|
|
|
|
|
|
- /* Store the values of the MSIX table in the nic_t structure */
|
|
|
|
|
|
+ /* Store the values of the MSIX table in the struct s2io_nic structure */
|
|
store_xmsi_data(sp);
|
|
store_xmsi_data(sp);
|
|
|
|
|
|
/* After proper initialization of H/W, register ISR */
|
|
/* After proper initialization of H/W, register ISR */
|
|
@@ -6142,7 +6146,7 @@ static int s2io_add_isr(nic_t * sp)
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
-static void s2io_rem_isr(nic_t * sp)
|
|
|
|
|
|
+static void s2io_rem_isr(struct s2io_nic * sp)
|
|
{
|
|
{
|
|
int cnt = 0;
|
|
int cnt = 0;
|
|
struct net_device *dev = sp->dev;
|
|
struct net_device *dev = sp->dev;
|
|
@@ -6184,10 +6188,10 @@ static void s2io_rem_isr(nic_t * sp)
|
|
} while(cnt < 5);
|
|
} while(cnt < 5);
|
|
}
|
|
}
|
|
|
|
|
|
-static void s2io_card_down(nic_t * sp)
|
|
|
|
|
|
+static void s2io_card_down(struct s2io_nic * sp)
|
|
{
|
|
{
|
|
int cnt = 0;
|
|
int cnt = 0;
|
|
- XENA_dev_config_t __iomem *bar0 = sp->bar0;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = sp->bar0;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
register u64 val64 = 0;
|
|
register u64 val64 = 0;
|
|
|
|
|
|
@@ -6248,10 +6252,10 @@ static void s2io_card_down(nic_t * sp)
|
|
clear_bit(0, &(sp->link_state));
|
|
clear_bit(0, &(sp->link_state));
|
|
}
|
|
}
|
|
|
|
|
|
-static int s2io_card_up(nic_t * sp)
|
|
|
|
|
|
+static int s2io_card_up(struct s2io_nic * sp)
|
|
{
|
|
{
|
|
int i, ret = 0;
|
|
int i, ret = 0;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
struct net_device *dev = (struct net_device *) sp->dev;
|
|
struct net_device *dev = (struct net_device *) sp->dev;
|
|
u16 interruptible;
|
|
u16 interruptible;
|
|
@@ -6350,7 +6354,7 @@ static int s2io_card_up(nic_t * sp)
|
|
|
|
|
|
static void s2io_restart_nic(struct work_struct *work)
|
|
static void s2io_restart_nic(struct work_struct *work)
|
|
{
|
|
{
|
|
- nic_t *sp = container_of(work, nic_t, rst_timer_task);
|
|
|
|
|
|
+ struct s2io_nic *sp = container_of(work, struct s2io_nic, rst_timer_task);
|
|
struct net_device *dev = sp->dev;
|
|
struct net_device *dev = sp->dev;
|
|
|
|
|
|
s2io_card_down(sp);
|
|
s2io_card_down(sp);
|
|
@@ -6379,7 +6383,7 @@ static void s2io_restart_nic(struct work_struct *work)
|
|
|
|
|
|
static void s2io_tx_watchdog(struct net_device *dev)
|
|
static void s2io_tx_watchdog(struct net_device *dev)
|
|
{
|
|
{
|
|
- nic_t *sp = dev->priv;
|
|
|
|
|
|
+ struct s2io_nic *sp = dev->priv;
|
|
|
|
|
|
if (netif_carrier_ok(dev)) {
|
|
if (netif_carrier_ok(dev)) {
|
|
schedule_work(&sp->rst_timer_task);
|
|
schedule_work(&sp->rst_timer_task);
|
|
@@ -6404,16 +6408,16 @@ static void s2io_tx_watchdog(struct net_device *dev)
|
|
* Return value:
|
|
* Return value:
|
|
* SUCCESS on success and -1 on failure.
|
|
* SUCCESS on success and -1 on failure.
|
|
*/
|
|
*/
|
|
-static int rx_osm_handler(ring_info_t *ring_data, RxD_t * rxdp)
|
|
|
|
|
|
+static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp)
|
|
{
|
|
{
|
|
- nic_t *sp = ring_data->nic;
|
|
|
|
|
|
+ struct s2io_nic *sp = ring_data->nic;
|
|
struct net_device *dev = (struct net_device *) sp->dev;
|
|
struct net_device *dev = (struct net_device *) sp->dev;
|
|
struct sk_buff *skb = (struct sk_buff *)
|
|
struct sk_buff *skb = (struct sk_buff *)
|
|
((unsigned long) rxdp->Host_Control);
|
|
((unsigned long) rxdp->Host_Control);
|
|
int ring_no = ring_data->ring_no;
|
|
int ring_no = ring_data->ring_no;
|
|
u16 l3_csum, l4_csum;
|
|
u16 l3_csum, l4_csum;
|
|
unsigned long long err = rxdp->Control_1 & RXD_T_CODE;
|
|
unsigned long long err = rxdp->Control_1 & RXD_T_CODE;
|
|
- lro_t *lro;
|
|
|
|
|
|
+ struct lro *lro;
|
|
|
|
|
|
skb->dev = dev;
|
|
skb->dev = dev;
|
|
|
|
|
|
@@ -6458,7 +6462,7 @@ static int rx_osm_handler(ring_info_t *ring_data, RxD_t * rxdp)
|
|
int buf2_len = RXD_GET_BUFFER2_SIZE_3(rxdp->Control_2);
|
|
int buf2_len = RXD_GET_BUFFER2_SIZE_3(rxdp->Control_2);
|
|
unsigned char *buff = skb_push(skb, buf0_len);
|
|
unsigned char *buff = skb_push(skb, buf0_len);
|
|
|
|
|
|
- buffAdd_t *ba = &ring_data->ba[get_block][get_off];
|
|
|
|
|
|
+ struct buffAdd *ba = &ring_data->ba[get_block][get_off];
|
|
sp->stats.rx_bytes += buf0_len + buf2_len;
|
|
sp->stats.rx_bytes += buf0_len + buf2_len;
|
|
memcpy(buff, ba->ba_0, buf0_len);
|
|
memcpy(buff, ba->ba_0, buf0_len);
|
|
|
|
|
|
@@ -6588,7 +6592,7 @@ aggregate:
|
|
* void.
|
|
* void.
|
|
*/
|
|
*/
|
|
|
|
|
|
-static void s2io_link(nic_t * sp, int link)
|
|
|
|
|
|
+static void s2io_link(struct s2io_nic * sp, int link)
|
|
{
|
|
{
|
|
struct net_device *dev = (struct net_device *) sp->dev;
|
|
struct net_device *dev = (struct net_device *) sp->dev;
|
|
|
|
|
|
@@ -6632,7 +6636,7 @@ static int get_xena_rev_id(struct pci_dev *pdev)
|
|
* void
|
|
* void
|
|
*/
|
|
*/
|
|
|
|
|
|
-static void s2io_init_pci(nic_t * sp)
|
|
|
|
|
|
+static void s2io_init_pci(struct s2io_nic * sp)
|
|
{
|
|
{
|
|
u16 pci_cmd = 0, pcix_cmd = 0;
|
|
u16 pci_cmd = 0, pcix_cmd = 0;
|
|
|
|
|
|
@@ -6715,15 +6719,15 @@ static int s2io_verify_parm(struct pci_dev *pdev, u8 *dev_intr_type)
|
|
static int __devinit
|
|
static int __devinit
|
|
s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
|
|
s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
|
|
{
|
|
{
|
|
- nic_t *sp;
|
|
|
|
|
|
+ struct s2io_nic *sp;
|
|
struct net_device *dev;
|
|
struct net_device *dev;
|
|
int i, j, ret;
|
|
int i, j, ret;
|
|
int dma_flag = FALSE;
|
|
int dma_flag = FALSE;
|
|
u32 mac_up, mac_down;
|
|
u32 mac_up, mac_down;
|
|
u64 val64 = 0, tmp64 = 0;
|
|
u64 val64 = 0, tmp64 = 0;
|
|
- XENA_dev_config_t __iomem *bar0 = NULL;
|
|
|
|
|
|
+ struct XENA_dev_config __iomem *bar0 = NULL;
|
|
u16 subid;
|
|
u16 subid;
|
|
- mac_info_t *mac_control;
|
|
|
|
|
|
+ struct mac_info *mac_control;
|
|
struct config_param *config;
|
|
struct config_param *config;
|
|
int mode;
|
|
int mode;
|
|
u8 dev_intr_type = intr_type;
|
|
u8 dev_intr_type = intr_type;
|
|
@@ -6778,7 +6782,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- dev = alloc_etherdev(sizeof(nic_t));
|
|
|
|
|
|
+ dev = alloc_etherdev(sizeof(struct s2io_nic));
|
|
if (dev == NULL) {
|
|
if (dev == NULL) {
|
|
DBG_PRINT(ERR_DBG, "Device allocation failed\n");
|
|
DBG_PRINT(ERR_DBG, "Device allocation failed\n");
|
|
pci_disable_device(pdev);
|
|
pci_disable_device(pdev);
|
|
@@ -6793,7 +6797,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
|
|
|
|
|
|
/* Private member variable initialized to s2io NIC structure */
|
|
/* Private member variable initialized to s2io NIC structure */
|
|
sp = dev->priv;
|
|
sp = dev->priv;
|
|
- memset(sp, 0, sizeof(nic_t));
|
|
|
|
|
|
+ memset(sp, 0, sizeof(struct s2io_nic));
|
|
sp->dev = dev;
|
|
sp->dev = dev;
|
|
sp->pdev = pdev;
|
|
sp->pdev = pdev;
|
|
sp->high_dma_flag = dma_flag;
|
|
sp->high_dma_flag = dma_flag;
|
|
@@ -6909,7 +6913,7 @@ s2io_init_nic(struct pci_dev *pdev, const struct pci_device_id *pre)
|
|
|
|
|
|
/* Initializing the BAR1 address as the start of the FIFO pointer. */
|
|
/* Initializing the BAR1 address as the start of the FIFO pointer. */
|
|
for (j = 0; j < MAX_TX_FIFOS; j++) {
|
|
for (j = 0; j < MAX_TX_FIFOS; j++) {
|
|
- mac_control->tx_FIFO_start[j] = (TxFIFO_element_t __iomem *)
|
|
|
|
|
|
+ mac_control->tx_FIFO_start[j] = (struct TxFIFO_element __iomem *)
|
|
(sp->bar1 + (j * 0x00020000));
|
|
(sp->bar1 + (j * 0x00020000));
|
|
}
|
|
}
|
|
|
|
|
|
@@ -7163,7 +7167,7 @@ static void __devexit s2io_rem_nic(struct pci_dev *pdev)
|
|
{
|
|
{
|
|
struct net_device *dev =
|
|
struct net_device *dev =
|
|
(struct net_device *) pci_get_drvdata(pdev);
|
|
(struct net_device *) pci_get_drvdata(pdev);
|
|
- nic_t *sp;
|
|
|
|
|
|
+ struct s2io_nic *sp;
|
|
|
|
|
|
if (dev == NULL) {
|
|
if (dev == NULL) {
|
|
DBG_PRINT(ERR_DBG, "Driver Data is NULL!!\n");
|
|
DBG_PRINT(ERR_DBG, "Driver Data is NULL!!\n");
|
|
@@ -7215,7 +7219,7 @@ module_init(s2io_starter);
|
|
module_exit(s2io_closer);
|
|
module_exit(s2io_closer);
|
|
|
|
|
|
static int check_L2_lro_capable(u8 *buffer, struct iphdr **ip,
|
|
static int check_L2_lro_capable(u8 *buffer, struct iphdr **ip,
|
|
- struct tcphdr **tcp, RxD_t *rxdp)
|
|
|
|
|
|
+ struct tcphdr **tcp, struct RxD_t *rxdp)
|
|
{
|
|
{
|
|
int ip_off;
|
|
int ip_off;
|
|
u8 l2_type = (u8)((rxdp->Control_1 >> 37) & 0x7), ip_len;
|
|
u8 l2_type = (u8)((rxdp->Control_1 >> 37) & 0x7), ip_len;
|
|
@@ -7249,7 +7253,7 @@ static int check_L2_lro_capable(u8 *buffer, struct iphdr **ip,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-static int check_for_socket_match(lro_t *lro, struct iphdr *ip,
|
|
|
|
|
|
+static int check_for_socket_match(struct lro *lro, struct iphdr *ip,
|
|
struct tcphdr *tcp)
|
|
struct tcphdr *tcp)
|
|
{
|
|
{
|
|
DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__);
|
|
DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__);
|
|
@@ -7264,7 +7268,7 @@ static inline int get_l4_pyld_length(struct iphdr *ip, struct tcphdr *tcp)
|
|
return(ntohs(ip->tot_len) - (ip->ihl << 2) - (tcp->doff << 2));
|
|
return(ntohs(ip->tot_len) - (ip->ihl << 2) - (tcp->doff << 2));
|
|
}
|
|
}
|
|
|
|
|
|
-static void initiate_new_session(lro_t *lro, u8 *l2h,
|
|
|
|
|
|
+static void initiate_new_session(struct lro *lro, u8 *l2h,
|
|
struct iphdr *ip, struct tcphdr *tcp, u32 tcp_pyld_len)
|
|
struct iphdr *ip, struct tcphdr *tcp, u32 tcp_pyld_len)
|
|
{
|
|
{
|
|
DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__);
|
|
DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__);
|
|
@@ -7290,12 +7294,12 @@ static void initiate_new_session(lro_t *lro, u8 *l2h,
|
|
lro->in_use = 1;
|
|
lro->in_use = 1;
|
|
}
|
|
}
|
|
|
|
|
|
-static void update_L3L4_header(nic_t *sp, lro_t *lro)
|
|
|
|
|
|
+static void update_L3L4_header(struct s2io_nic *sp, struct lro *lro)
|
|
{
|
|
{
|
|
struct iphdr *ip = lro->iph;
|
|
struct iphdr *ip = lro->iph;
|
|
struct tcphdr *tcp = lro->tcph;
|
|
struct tcphdr *tcp = lro->tcph;
|
|
u16 nchk;
|
|
u16 nchk;
|
|
- StatInfo_t *statinfo = sp->mac_control.stats_info;
|
|
|
|
|
|
+ struct stat_block *statinfo = sp->mac_control.stats_info;
|
|
DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__);
|
|
DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__);
|
|
|
|
|
|
/* Update L3 header */
|
|
/* Update L3 header */
|
|
@@ -7321,7 +7325,7 @@ static void update_L3L4_header(nic_t *sp, lro_t *lro)
|
|
statinfo->sw_stat.num_aggregations++;
|
|
statinfo->sw_stat.num_aggregations++;
|
|
}
|
|
}
|
|
|
|
|
|
-static void aggregate_new_rx(lro_t *lro, struct iphdr *ip,
|
|
|
|
|
|
+static void aggregate_new_rx(struct lro *lro, struct iphdr *ip,
|
|
struct tcphdr *tcp, u32 l4_pyld)
|
|
struct tcphdr *tcp, u32 l4_pyld)
|
|
{
|
|
{
|
|
DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__);
|
|
DBG_PRINT(INFO_DBG,"%s: Been here...\n", __FUNCTION__);
|
|
@@ -7343,7 +7347,7 @@ static void aggregate_new_rx(lro_t *lro, struct iphdr *ip,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-static int verify_l3_l4_lro_capable(lro_t *l_lro, struct iphdr *ip,
|
|
|
|
|
|
+static int verify_l3_l4_lro_capable(struct lro *l_lro, struct iphdr *ip,
|
|
struct tcphdr *tcp, u32 tcp_pyld_len)
|
|
struct tcphdr *tcp, u32 tcp_pyld_len)
|
|
{
|
|
{
|
|
u8 *ptr;
|
|
u8 *ptr;
|
|
@@ -7401,8 +7405,8 @@ static int verify_l3_l4_lro_capable(lro_t *l_lro, struct iphdr *ip,
|
|
}
|
|
}
|
|
|
|
|
|
static int
|
|
static int
|
|
-s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, lro_t **lro,
|
|
|
|
- RxD_t *rxdp, nic_t *sp)
|
|
|
|
|
|
+s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, struct lro **lro,
|
|
|
|
+ struct RxD_t *rxdp, struct s2io_nic *sp)
|
|
{
|
|
{
|
|
struct iphdr *ip;
|
|
struct iphdr *ip;
|
|
struct tcphdr *tcph;
|
|
struct tcphdr *tcph;
|
|
@@ -7419,7 +7423,7 @@ s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, lro_t **lro,
|
|
tcph = (struct tcphdr *)*tcp;
|
|
tcph = (struct tcphdr *)*tcp;
|
|
*tcp_len = get_l4_pyld_length(ip, tcph);
|
|
*tcp_len = get_l4_pyld_length(ip, tcph);
|
|
for (i=0; i<MAX_LRO_SESSIONS; i++) {
|
|
for (i=0; i<MAX_LRO_SESSIONS; i++) {
|
|
- lro_t *l_lro = &sp->lro0_n[i];
|
|
|
|
|
|
+ struct lro *l_lro = &sp->lro0_n[i];
|
|
if (l_lro->in_use) {
|
|
if (l_lro->in_use) {
|
|
if (check_for_socket_match(l_lro, ip, tcph))
|
|
if (check_for_socket_match(l_lro, ip, tcph))
|
|
continue;
|
|
continue;
|
|
@@ -7457,7 +7461,7 @@ s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, lro_t **lro,
|
|
}
|
|
}
|
|
|
|
|
|
for (i=0; i<MAX_LRO_SESSIONS; i++) {
|
|
for (i=0; i<MAX_LRO_SESSIONS; i++) {
|
|
- lro_t *l_lro = &sp->lro0_n[i];
|
|
|
|
|
|
+ struct lro *l_lro = &sp->lro0_n[i];
|
|
if (!(l_lro->in_use)) {
|
|
if (!(l_lro->in_use)) {
|
|
*lro = l_lro;
|
|
*lro = l_lro;
|
|
ret = 3; /* Begin anew */
|
|
ret = 3; /* Begin anew */
|
|
@@ -7496,9 +7500,9 @@ s2io_club_tcp_session(u8 *buffer, u8 **tcp, u32 *tcp_len, lro_t **lro,
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
-static void clear_lro_session(lro_t *lro)
|
|
|
|
|
|
+static void clear_lro_session(struct lro *lro)
|
|
{
|
|
{
|
|
- static u16 lro_struct_size = sizeof(lro_t);
|
|
|
|
|
|
+ static u16 lro_struct_size = sizeof(struct lro);
|
|
|
|
|
|
memset(lro, 0, lro_struct_size);
|
|
memset(lro, 0, lro_struct_size);
|
|
}
|
|
}
|
|
@@ -7514,7 +7518,8 @@ static void queue_rx_frame(struct sk_buff *skb)
|
|
netif_rx(skb);
|
|
netif_rx(skb);
|
|
}
|
|
}
|
|
|
|
|
|
-static void lro_append_pkt(nic_t *sp, lro_t *lro, struct sk_buff *skb,
|
|
|
|
|
|
+static void lro_append_pkt(struct s2io_nic *sp, struct lro *lro,
|
|
|
|
+ struct sk_buff *skb,
|
|
u32 tcp_len)
|
|
u32 tcp_len)
|
|
{
|
|
{
|
|
struct sk_buff *first = lro->parent;
|
|
struct sk_buff *first = lro->parent;
|