Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 149704
b: refs/heads/master
c: f98a9f6
h: refs/heads/master
v: v3
  • Loading branch information
Dhananjay Phadke authored and David S. Miller committed Apr 8, 2009
1 parent 9abfe16 commit 47fd355
Show file tree
Hide file tree
Showing 8 changed files with 234 additions and 407 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1fbe63235893e5dce28fe91d8465dd231b0cb3d9
refs/heads/master: f98a9f693b5f4919d9c4085a2fd8d67c7e152f3e
19 changes: 7 additions & 12 deletions trunk/drivers/net/netxen/netxen_nic.h
Original file line number Diff line number Diff line change
Expand Up @@ -1312,12 +1312,11 @@ int netxen_niu_gbe_phy_write(struct netxen_adapter *adapter,
/* Functions available from netxen_nic_hw.c */
int netxen_nic_set_mtu_xgb(struct netxen_adapter *adapter, int new_mtu);
int netxen_nic_set_mtu_gb(struct netxen_adapter *adapter, int new_mtu);
void netxen_nic_reg_write(struct netxen_adapter *adapter, u64 off, u32 val);
int netxen_nic_reg_read(struct netxen_adapter *adapter, u64 off);
void netxen_nic_write_w0(struct netxen_adapter *adapter, u32 index, u32 value);
u32 netxen_nic_read_w0(struct netxen_adapter *adapter, u32 index);
void netxen_nic_write_w1(struct netxen_adapter *adapter, u32 index, u32 value);
u32 netxen_nic_read_w1(struct netxen_adapter *adapter, u32 index);

#define NXRD32(adapter, off) \
(adapter->hw_read_wx(adapter, off))
#define NXWR32(adapter, off, val) \
(adapter->hw_write_wx(adapter, off, val))

int netxen_nic_get_board_info(struct netxen_adapter *adapter);
void netxen_nic_get_firmware_info(struct netxen_adapter *adapter);
Expand Down Expand Up @@ -1348,8 +1347,6 @@ int netxen_nic_pci_mem_read_2M(struct netxen_adapter *adapter,
u64 off, void *data, int size);
int netxen_nic_pci_mem_write_2M(struct netxen_adapter *adapter,
u64 off, void *data, int size);
void netxen_crb_writelit_adapter(struct netxen_adapter *adapter,
unsigned long off, int data);
int netxen_nic_pci_write_immediate_2M(struct netxen_adapter *adapter,
u64 off, u32 data);
u32 netxen_nic_pci_read_immediate_2M(struct netxen_adapter *adapter, u64 off);
Expand Down Expand Up @@ -1478,8 +1475,7 @@ dma_watchdog_shutdown_request(struct netxen_adapter *adapter)

/* Send the disable request */
netxen_set_dma_watchdog_disable_req(ctrl);
netxen_crb_writelit_adapter(adapter,
NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL), ctrl);
NXWR32(adapter, NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL), ctrl);

return 0;
}
Expand Down Expand Up @@ -1509,8 +1505,7 @@ dma_watchdog_wakeup(struct netxen_adapter *adapter)
/* send the wakeup request */
netxen_set_dma_watchdog_enable_req(ctrl);

netxen_crb_writelit_adapter(adapter,
NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL), ctrl);
NXWR32(adapter, NETXEN_CAM_RAM(NETXEN_CAM_RAM_DMA_WATCHDOG_CTRL), ctrl);

return 0;
}
Expand Down
29 changes: 13 additions & 16 deletions trunk/drivers/net/netxen/netxen_nic_ctx.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ netxen_api_lock(struct netxen_adapter *adapter)

for (;;) {
/* Acquire PCIE HW semaphore5 */
done = netxen_nic_read_w0(adapter,
NETXEN_PCIE_REG(PCIE_SEM5_LOCK));
done = NXRD32(adapter, NETXEN_PCIE_REG(PCIE_SEM5_LOCK));

if (done == 1)
break;
Expand All @@ -56,7 +55,7 @@ netxen_api_lock(struct netxen_adapter *adapter)
}

#if 0
netxen_nic_write_w1(adapter,
NXWR32(adapter,
NETXEN_API_LOCK_ID, NX_OS_API_LOCK_DRIVER);
#endif
return 0;
Expand All @@ -66,8 +65,7 @@ static int
netxen_api_unlock(struct netxen_adapter *adapter)
{
/* Release PCIE HW semaphore5 */
netxen_nic_read_w0(adapter,
NETXEN_PCIE_REG(PCIE_SEM5_UNLOCK));
NXRD32(adapter, NETXEN_PCIE_REG(PCIE_SEM5_UNLOCK));
return 0;
}

Expand All @@ -84,7 +82,7 @@ netxen_poll_rsp(struct netxen_adapter *adapter)
if (++timeout > NX_OS_CRB_RETRY_COUNT)
return NX_CDRP_RSP_TIMEOUT;

rsp = netxen_nic_read_w1(adapter, NX_CDRP_CRB_OFFSET);
rsp = NXRD32(adapter, NX_CDRP_CRB_OFFSET);
} while (!NX_CDRP_IS_RSP(rsp));

return rsp;
Expand All @@ -104,16 +102,15 @@ netxen_issue_cmd(struct netxen_adapter *adapter,
if (netxen_api_lock(adapter))
return NX_RCODE_TIMEOUT;

netxen_nic_write_w1(adapter, NX_SIGN_CRB_OFFSET, signature);
NXWR32(adapter, NX_SIGN_CRB_OFFSET, signature);

netxen_nic_write_w1(adapter, NX_ARG1_CRB_OFFSET, arg1);
NXWR32(adapter, NX_ARG1_CRB_OFFSET, arg1);

netxen_nic_write_w1(adapter, NX_ARG2_CRB_OFFSET, arg2);
NXWR32(adapter, NX_ARG2_CRB_OFFSET, arg2);

netxen_nic_write_w1(adapter, NX_ARG3_CRB_OFFSET, arg3);
NXWR32(adapter, NX_ARG3_CRB_OFFSET, arg3);

netxen_nic_write_w1(adapter, NX_CDRP_CRB_OFFSET,
NX_CDRP_FORM_CMD(cmd));
NXWR32(adapter, NX_CDRP_CRB_OFFSET, NX_CDRP_FORM_CMD(cmd));

rsp = netxen_poll_rsp(adapter);

Expand All @@ -123,7 +120,7 @@ netxen_issue_cmd(struct netxen_adapter *adapter,

rcode = NX_RCODE_TIMEOUT;
} else if (rsp == NX_CDRP_RSP_FAIL) {
rcode = netxen_nic_read_w1(adapter, NX_ARG1_CRB_OFFSET);
rcode = NXRD32(adapter, NX_ARG1_CRB_OFFSET);

printk(KERN_ERR "%s: failed card response code:0x%x\n",
netxen_nic_driver_name, rcode);
Expand Down Expand Up @@ -515,11 +512,11 @@ netxen_init_old_ctx(struct netxen_adapter *adapter)
adapter->ctx_desc->sts_ring_addr = cpu_to_le64(sds_ring->phys_addr);
adapter->ctx_desc->sts_ring_size = cpu_to_le32(sds_ring->num_desc);

adapter->hw_write_wx(adapter, CRB_CTX_ADDR_REG_LO(func_id),
NXWR32(adapter, CRB_CTX_ADDR_REG_LO(func_id),
lower32(adapter->ctx_desc_phys_addr));
adapter->hw_write_wx(adapter, CRB_CTX_ADDR_REG_HI(func_id),
NXWR32(adapter, CRB_CTX_ADDR_REG_HI(func_id),
upper32(adapter->ctx_desc_phys_addr));
adapter->hw_write_wx(adapter, CRB_CTX_SIGNATURE_REG(func_id),
NXWR32(adapter, CRB_CTX_SIGNATURE_REG(func_id),
NETXEN_CTX_SIGNATURE | func_id);
return 0;
}
Expand Down
59 changes: 26 additions & 33 deletions trunk/drivers/net/netxen/netxen_nic_ethtool.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,9 @@ netxen_nic_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo)
strncpy(drvinfo->driver, netxen_nic_driver_name, 32);
strncpy(drvinfo->version, NETXEN_NIC_LINUX_VERSIONID, 32);
write_lock_irqsave(&adapter->adapter_lock, flags);
fw_major = adapter->hw_read_wx(adapter,
NETXEN_FW_VERSION_MAJOR);
fw_minor = adapter->hw_read_wx(adapter,
NETXEN_FW_VERSION_MINOR);
fw_build = adapter->hw_read_wx(adapter,
NETXEN_FW_VERSION_SUB);
fw_major = NXRD32(adapter, NETXEN_FW_VERSION_MAJOR);
fw_minor = NXRD32(adapter, NETXEN_FW_VERSION_MINOR);
fw_build = NXRD32(adapter, NETXEN_FW_VERSION_SUB);
write_unlock_irqrestore(&adapter->adapter_lock, flags);
sprintf(drvinfo->fw_version, "%d.%d.%d", fw_major, fw_minor, fw_build);

Expand Down Expand Up @@ -135,7 +132,7 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
} else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) {
u32 val;

val = adapter->hw_read_wx(adapter, NETXEN_PORT_MODE_ADDR);
val = NXRD32(adapter, NETXEN_PORT_MODE_ADDR);
if (val == NETXEN_PORT_MODE_802_3_AP) {
ecmd->supported = SUPPORTED_1000baseT_Full;
ecmd->advertising = ADVERTISED_1000baseT_Full;
Expand All @@ -156,8 +153,7 @@ netxen_nic_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
if (NX_IS_REVISION_P3(adapter->ahw.revision_id)) {
u16 pcifn = adapter->ahw.pci_func;

val = adapter->hw_read_wx(adapter,
P3_LINK_SPEED_REG(pcifn));
val = NXRD32(adapter, P3_LINK_SPEED_REG(pcifn));
ecmd->speed = P3_LINK_SPEED_MHZ *
P3_LINK_SPEED_VAL(pcifn, val);
} else
Expand Down Expand Up @@ -423,12 +419,11 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p)
regs->version = (1 << 24) | (adapter->ahw.revision_id << 16) |
(adapter->pdev)->device;
/* which mode */
regs_buff[0] = adapter->hw_read_wx(adapter, NETXEN_NIU_MODE);
regs_buff[0] = NXRD32(adapter, NETXEN_NIU_MODE);
mode = regs_buff[0];

/* Common registers to all the modes */
regs_buff[2] = adapter->hw_read_wx(adapter,
NETXEN_NIU_STRAP_VALUE_SAVE_HIGHER);
regs_buff[2] = NXRD32(adapter, NETXEN_NIU_STRAP_VALUE_SAVE_HIGHER);
/* GB/XGB Mode */
mode = (mode / 2) - 1;
window = 0;
Expand All @@ -439,7 +434,7 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p)
window = adapter->physical_port *
NETXEN_NIC_PORT_WINDOW;

regs_buff[i] = adapter->hw_read_wx(adapter,
regs_buff[i] = NXRD32(adapter,
niu_registers[mode].reg[i - 3] + window);
}

Expand All @@ -464,7 +459,7 @@ static u32 netxen_nic_test_link(struct net_device *dev)
return !val;
}
} else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) {
val = adapter->hw_read_wx(adapter, CRB_XG_STATE);
val = NXRD32(adapter, CRB_XG_STATE);
return (val == XG_LINK_UP) ? 0 : 1;
}
return -EIO;
Expand Down Expand Up @@ -528,10 +523,9 @@ netxen_nic_get_pauseparam(struct net_device *dev,
if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS))
return;
/* get flow control settings */
val = netxen_nic_read_w0(adapter,
NETXEN_NIU_GB_MAC_CONFIG_0(port));
val = NXRD32(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port));
pause->rx_pause = netxen_gb_get_rx_flowctl(val);
val = netxen_nic_read_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL);
val = NXRD32(adapter, NETXEN_NIU_GB_PAUSE_CTL);
switch (port) {
case 0:
pause->tx_pause = !(netxen_gb_get_gb0_mask(val));
Expand All @@ -551,7 +545,7 @@ netxen_nic_get_pauseparam(struct net_device *dev,
if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS))
return;
pause->rx_pause = 1;
val = netxen_nic_read_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL);
val = NXRD32(adapter, NETXEN_NIU_XG_PAUSE_CTL);
if (port == 0)
pause->tx_pause = !(netxen_xg_get_xg0_mask(val));
else
Expand All @@ -574,18 +568,17 @@ netxen_nic_set_pauseparam(struct net_device *dev,
if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS))
return -EIO;
/* set flow control */
val = netxen_nic_read_w0(adapter,
NETXEN_NIU_GB_MAC_CONFIG_0(port));
val = NXRD32(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port));

if (pause->rx_pause)
netxen_gb_rx_flowctl(val);
else
netxen_gb_unset_rx_flowctl(val);

netxen_nic_write_w0(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port),
NXWR32(adapter, NETXEN_NIU_GB_MAC_CONFIG_0(port),
val);
/* set autoneg */
val = netxen_nic_read_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL);
val = NXRD32(adapter, NETXEN_NIU_GB_PAUSE_CTL);
switch (port) {
case 0:
if (pause->tx_pause)
Expand Down Expand Up @@ -613,11 +606,11 @@ netxen_nic_set_pauseparam(struct net_device *dev,
netxen_gb_set_gb3_mask(val);
break;
}
netxen_nic_write_w0(adapter, NETXEN_NIU_GB_PAUSE_CTL, val);
NXWR32(adapter, NETXEN_NIU_GB_PAUSE_CTL, val);
} else if (adapter->ahw.port_type == NETXEN_NIC_XGBE) {
if ((port < 0) || (port > NETXEN_NIU_MAX_XG_PORTS))
return -EIO;
val = netxen_nic_read_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL);
val = NXRD32(adapter, NETXEN_NIU_XG_PAUSE_CTL);
if (port == 0) {
if (pause->tx_pause)
netxen_xg_unset_xg0_mask(val);
Expand All @@ -629,7 +622,7 @@ netxen_nic_set_pauseparam(struct net_device *dev,
else
netxen_xg_set_xg1_mask(val);
}
netxen_nic_write_w0(adapter, NETXEN_NIU_XG_PAUSE_CTL, val);
NXWR32(adapter, NETXEN_NIU_XG_PAUSE_CTL, val);
} else {
printk(KERN_ERR "%s: Unknown board type: %x\n",
netxen_nic_driver_name,
Expand All @@ -643,14 +636,14 @@ static int netxen_nic_reg_test(struct net_device *dev)
struct netxen_adapter *adapter = netdev_priv(dev);
u32 data_read, data_written;

data_read = netxen_nic_read_w0(adapter, NETXEN_PCIX_PH_REG(0));
data_read = NXRD32(adapter, NETXEN_PCIX_PH_REG(0));
if ((data_read & 0xffff) != PHAN_VENDOR_ID)
return 1;

data_written = (u32)0xa5a5a5a5;

netxen_nic_reg_write(adapter, CRB_SCRATCHPAD_TEST, data_written);
data_read = adapter->hw_read_wx(adapter, CRB_SCRATCHPAD_TEST);
NXWR32(adapter, CRB_SCRATCHPAD_TEST, data_written);
data_read = NXRD32(adapter, CRB_SCRATCHPAD_TEST);
if (data_written != data_read)
return 1;

Expand Down Expand Up @@ -767,11 +760,11 @@ netxen_nic_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
if (NX_IS_REVISION_P2(adapter->ahw.revision_id))
return;

wol_cfg = netxen_nic_reg_read(adapter, NETXEN_WOL_CONFIG_NV);
wol_cfg = NXRD32(adapter, NETXEN_WOL_CONFIG_NV);
if (wol_cfg & (1UL << adapter->portnum))
wol->supported |= WAKE_MAGIC;

wol_cfg = netxen_nic_reg_read(adapter, NETXEN_WOL_CONFIG);
wol_cfg = NXRD32(adapter, NETXEN_WOL_CONFIG);
if (wol_cfg & (1UL << adapter->portnum))
wol->wolopts |= WAKE_MAGIC;
}
Expand All @@ -788,16 +781,16 @@ netxen_nic_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
if (wol->wolopts & ~WAKE_MAGIC)
return -EOPNOTSUPP;

wol_cfg = netxen_nic_reg_read(adapter, NETXEN_WOL_CONFIG_NV);
wol_cfg = NXRD32(adapter, NETXEN_WOL_CONFIG_NV);
if (!(wol_cfg & (1 << adapter->portnum)))
return -EOPNOTSUPP;

wol_cfg = netxen_nic_reg_read(adapter, NETXEN_WOL_CONFIG);
wol_cfg = NXRD32(adapter, NETXEN_WOL_CONFIG);
if (wol->wolopts & WAKE_MAGIC)
wol_cfg |= 1UL << adapter->portnum;
else
wol_cfg &= ~(1UL << adapter->portnum);
netxen_nic_reg_write(adapter, NETXEN_WOL_CONFIG, wol_cfg);
NXWR32(adapter, NETXEN_WOL_CONFIG, wol_cfg);

return 0;
}
Expand Down
Loading

0 comments on commit 47fd355

Please sign in to comment.