|
@@ -35,6 +35,7 @@
|
|
|
#include <linux/delay.h>
|
|
|
#include "cxgb4.h"
|
|
|
#include "t4_regs.h"
|
|
|
+#include "t4_values.h"
|
|
|
#include "t4fw_api.h"
|
|
|
|
|
|
/**
|
|
@@ -149,20 +150,20 @@ void t4_write_indirect(struct adapter *adap, unsigned int addr_reg,
|
|
|
*/
|
|
|
void t4_hw_pci_read_cfg4(struct adapter *adap, int reg, u32 *val)
|
|
|
{
|
|
|
- u32 req = ENABLE | FUNCTION(adap->fn) | reg;
|
|
|
+ u32 req = ENABLE_F | FUNCTION_V(adap->fn) | REGISTER_V(reg);
|
|
|
|
|
|
if (is_t4(adap->params.chip))
|
|
|
- req |= F_LOCALCFG;
|
|
|
+ req |= LOCALCFG_F;
|
|
|
|
|
|
- t4_write_reg(adap, PCIE_CFG_SPACE_REQ, req);
|
|
|
- *val = t4_read_reg(adap, PCIE_CFG_SPACE_DATA);
|
|
|
+ t4_write_reg(adap, PCIE_CFG_SPACE_REQ_A, req);
|
|
|
+ *val = t4_read_reg(adap, PCIE_CFG_SPACE_DATA_A);
|
|
|
|
|
|
/* Reset ENABLE to 0 so reads of PCIE_CFG_SPACE_DATA won't cause a
|
|
|
* Configuration Space read. (None of the other fields matter when
|
|
|
* ENABLE is 0 so a simple register write is easier than a
|
|
|
* read-modify-write via t4_set_reg_field().)
|
|
|
*/
|
|
|
- t4_write_reg(adap, PCIE_CFG_SPACE_REQ, 0);
|
|
|
+ t4_write_reg(adap, PCIE_CFG_SPACE_REQ_A, 0);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -187,8 +188,8 @@ static void t4_report_fw_error(struct adapter *adap)
|
|
|
};
|
|
|
u32 pcie_fw;
|
|
|
|
|
|
- pcie_fw = t4_read_reg(adap, MA_PCIE_FW);
|
|
|
- if (pcie_fw & PCIE_FW_ERR)
|
|
|
+ pcie_fw = t4_read_reg(adap, PCIE_FW_A);
|
|
|
+ if (pcie_fw & PCIE_FW_ERR_F)
|
|
|
dev_err(adap->pdev_dev, "Firmware reports adapter error: %s\n",
|
|
|
reason[PCIE_FW_EVAL_G(pcie_fw)]);
|
|
|
}
|
|
@@ -264,8 +265,8 @@ int t4_wr_mbox_meat(struct adapter *adap, int mbox, const void *cmd, int size,
|
|
|
u64 res;
|
|
|
int i, ms, delay_idx;
|
|
|
const __be64 *p = cmd;
|
|
|
- u32 data_reg = PF_REG(mbox, CIM_PF_MAILBOX_DATA);
|
|
|
- u32 ctl_reg = PF_REG(mbox, CIM_PF_MAILBOX_CTRL);
|
|
|
+ u32 data_reg = PF_REG(mbox, CIM_PF_MAILBOX_DATA_A);
|
|
|
+ u32 ctl_reg = PF_REG(mbox, CIM_PF_MAILBOX_CTRL_A);
|
|
|
|
|
|
if ((size & 15) || size > MBOX_LEN)
|
|
|
return -EINVAL;
|
|
@@ -277,9 +278,9 @@ int t4_wr_mbox_meat(struct adapter *adap, int mbox, const void *cmd, int size,
|
|
|
if (adap->pdev->error_state != pci_channel_io_normal)
|
|
|
return -EIO;
|
|
|
|
|
|
- v = MBOWNER_GET(t4_read_reg(adap, ctl_reg));
|
|
|
+ v = MBOWNER_G(t4_read_reg(adap, ctl_reg));
|
|
|
for (i = 0; v == MBOX_OWNER_NONE && i < 3; i++)
|
|
|
- v = MBOWNER_GET(t4_read_reg(adap, ctl_reg));
|
|
|
+ v = MBOWNER_G(t4_read_reg(adap, ctl_reg));
|
|
|
|
|
|
if (v != MBOX_OWNER_DRV)
|
|
|
return v ? -EBUSY : -ETIMEDOUT;
|
|
@@ -287,7 +288,7 @@ int t4_wr_mbox_meat(struct adapter *adap, int mbox, const void *cmd, int size,
|
|
|
for (i = 0; i < size; i += 8)
|
|
|
t4_write_reg64(adap, data_reg + i, be64_to_cpu(*p++));
|
|
|
|
|
|
- t4_write_reg(adap, ctl_reg, MBMSGVALID | MBOWNER(MBOX_OWNER_FW));
|
|
|
+ t4_write_reg(adap, ctl_reg, MBMSGVALID_F | MBOWNER_V(MBOX_OWNER_FW));
|
|
|
t4_read_reg(adap, ctl_reg); /* flush write */
|
|
|
|
|
|
delay_idx = 0;
|
|
@@ -303,8 +304,8 @@ int t4_wr_mbox_meat(struct adapter *adap, int mbox, const void *cmd, int size,
|
|
|
mdelay(ms);
|
|
|
|
|
|
v = t4_read_reg(adap, ctl_reg);
|
|
|
- if (MBOWNER_GET(v) == MBOX_OWNER_DRV) {
|
|
|
- if (!(v & MBMSGVALID)) {
|
|
|
+ if (MBOWNER_G(v) == MBOX_OWNER_DRV) {
|
|
|
+ if (!(v & MBMSGVALID_F)) {
|
|
|
t4_write_reg(adap, ctl_reg, 0);
|
|
|
continue;
|
|
|
}
|
|
@@ -350,27 +351,27 @@ int t4_mc_read(struct adapter *adap, int idx, u32 addr, __be32 *data, u64 *ecc)
|
|
|
u32 mc_bist_status_rdata, mc_bist_data_pattern;
|
|
|
|
|
|
if (is_t4(adap->params.chip)) {
|
|
|
- mc_bist_cmd = MC_BIST_CMD;
|
|
|
- mc_bist_cmd_addr = MC_BIST_CMD_ADDR;
|
|
|
- mc_bist_cmd_len = MC_BIST_CMD_LEN;
|
|
|
- mc_bist_status_rdata = MC_BIST_STATUS_RDATA;
|
|
|
- mc_bist_data_pattern = MC_BIST_DATA_PATTERN;
|
|
|
+ mc_bist_cmd = MC_BIST_CMD_A;
|
|
|
+ mc_bist_cmd_addr = MC_BIST_CMD_ADDR_A;
|
|
|
+ mc_bist_cmd_len = MC_BIST_CMD_LEN_A;
|
|
|
+ mc_bist_status_rdata = MC_BIST_STATUS_RDATA_A;
|
|
|
+ mc_bist_data_pattern = MC_BIST_DATA_PATTERN_A;
|
|
|
} else {
|
|
|
- mc_bist_cmd = MC_REG(MC_P_BIST_CMD, idx);
|
|
|
- mc_bist_cmd_addr = MC_REG(MC_P_BIST_CMD_ADDR, idx);
|
|
|
- mc_bist_cmd_len = MC_REG(MC_P_BIST_CMD_LEN, idx);
|
|
|
- mc_bist_status_rdata = MC_REG(MC_P_BIST_STATUS_RDATA, idx);
|
|
|
- mc_bist_data_pattern = MC_REG(MC_P_BIST_DATA_PATTERN, idx);
|
|
|
+ mc_bist_cmd = MC_REG(MC_P_BIST_CMD_A, idx);
|
|
|
+ mc_bist_cmd_addr = MC_REG(MC_P_BIST_CMD_ADDR_A, idx);
|
|
|
+ mc_bist_cmd_len = MC_REG(MC_P_BIST_CMD_LEN_A, idx);
|
|
|
+ mc_bist_status_rdata = MC_REG(MC_P_BIST_STATUS_RDATA_A, idx);
|
|
|
+ mc_bist_data_pattern = MC_REG(MC_P_BIST_DATA_PATTERN_A, idx);
|
|
|
}
|
|
|
|
|
|
- if (t4_read_reg(adap, mc_bist_cmd) & START_BIST)
|
|
|
+ if (t4_read_reg(adap, mc_bist_cmd) & START_BIST_F)
|
|
|
return -EBUSY;
|
|
|
t4_write_reg(adap, mc_bist_cmd_addr, addr & ~0x3fU);
|
|
|
t4_write_reg(adap, mc_bist_cmd_len, 64);
|
|
|
t4_write_reg(adap, mc_bist_data_pattern, 0xc);
|
|
|
- t4_write_reg(adap, mc_bist_cmd, BIST_OPCODE(1) | START_BIST |
|
|
|
- BIST_CMD_GAP(1));
|
|
|
- i = t4_wait_op_done(adap, mc_bist_cmd, START_BIST, 0, 10, 1);
|
|
|
+ t4_write_reg(adap, mc_bist_cmd, BIST_OPCODE_V(1) | START_BIST_F |
|
|
|
+ BIST_CMD_GAP_V(1));
|
|
|
+ i = t4_wait_op_done(adap, mc_bist_cmd, START_BIST_F, 0, 10, 1);
|
|
|
if (i)
|
|
|
return i;
|
|
|
|
|
@@ -403,31 +404,31 @@ int t4_edc_read(struct adapter *adap, int idx, u32 addr, __be32 *data, u64 *ecc)
|
|
|
u32 edc_bist_cmd_data_pattern, edc_bist_status_rdata;
|
|
|
|
|
|
if (is_t4(adap->params.chip)) {
|
|
|
- edc_bist_cmd = EDC_REG(EDC_BIST_CMD, idx);
|
|
|
- edc_bist_cmd_addr = EDC_REG(EDC_BIST_CMD_ADDR, idx);
|
|
|
- edc_bist_cmd_len = EDC_REG(EDC_BIST_CMD_LEN, idx);
|
|
|
- edc_bist_cmd_data_pattern = EDC_REG(EDC_BIST_DATA_PATTERN,
|
|
|
- idx);
|
|
|
- edc_bist_status_rdata = EDC_REG(EDC_BIST_STATUS_RDATA,
|
|
|
+ edc_bist_cmd = EDC_REG(EDC_BIST_CMD_A, idx);
|
|
|
+ edc_bist_cmd_addr = EDC_REG(EDC_BIST_CMD_ADDR_A, idx);
|
|
|
+ edc_bist_cmd_len = EDC_REG(EDC_BIST_CMD_LEN_A, idx);
|
|
|
+ edc_bist_cmd_data_pattern = EDC_REG(EDC_BIST_DATA_PATTERN_A,
|
|
|
idx);
|
|
|
+ edc_bist_status_rdata = EDC_REG(EDC_BIST_STATUS_RDATA_A,
|
|
|
+ idx);
|
|
|
} else {
|
|
|
- edc_bist_cmd = EDC_REG_T5(EDC_H_BIST_CMD, idx);
|
|
|
- edc_bist_cmd_addr = EDC_REG_T5(EDC_H_BIST_CMD_ADDR, idx);
|
|
|
- edc_bist_cmd_len = EDC_REG_T5(EDC_H_BIST_CMD_LEN, idx);
|
|
|
+ edc_bist_cmd = EDC_REG_T5(EDC_H_BIST_CMD_A, idx);
|
|
|
+ edc_bist_cmd_addr = EDC_REG_T5(EDC_H_BIST_CMD_ADDR_A, idx);
|
|
|
+ edc_bist_cmd_len = EDC_REG_T5(EDC_H_BIST_CMD_LEN_A, idx);
|
|
|
edc_bist_cmd_data_pattern =
|
|
|
- EDC_REG_T5(EDC_H_BIST_DATA_PATTERN, idx);
|
|
|
+ EDC_REG_T5(EDC_H_BIST_DATA_PATTERN_A, idx);
|
|
|
edc_bist_status_rdata =
|
|
|
- EDC_REG_T5(EDC_H_BIST_STATUS_RDATA, idx);
|
|
|
+ EDC_REG_T5(EDC_H_BIST_STATUS_RDATA_A, idx);
|
|
|
}
|
|
|
|
|
|
- if (t4_read_reg(adap, edc_bist_cmd) & START_BIST)
|
|
|
+ if (t4_read_reg(adap, edc_bist_cmd) & START_BIST_F)
|
|
|
return -EBUSY;
|
|
|
t4_write_reg(adap, edc_bist_cmd_addr, addr & ~0x3fU);
|
|
|
t4_write_reg(adap, edc_bist_cmd_len, 64);
|
|
|
t4_write_reg(adap, edc_bist_cmd_data_pattern, 0xc);
|
|
|
t4_write_reg(adap, edc_bist_cmd,
|
|
|
- BIST_OPCODE(1) | BIST_CMD_GAP(1) | START_BIST);
|
|
|
- i = t4_wait_op_done(adap, edc_bist_cmd, START_BIST, 0, 10, 1);
|
|
|
+ BIST_OPCODE_V(1) | BIST_CMD_GAP_V(1) | START_BIST_F);
|
|
|
+ i = t4_wait_op_done(adap, edc_bist_cmd, START_BIST_F, 0, 10, 1);
|
|
|
if (i)
|
|
|
return i;
|
|
|
|
|
@@ -505,13 +506,13 @@ int t4_memory_rw(struct adapter *adap, int win, int mtype, u32 addr,
|
|
|
* the address is relative to BAR0.
|
|
|
*/
|
|
|
mem_reg = t4_read_reg(adap,
|
|
|
- PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_BASE_WIN,
|
|
|
+ PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_BASE_WIN_A,
|
|
|
win));
|
|
|
- mem_aperture = 1 << (GET_WINDOW(mem_reg) + 10);
|
|
|
- mem_base = GET_PCIEOFST(mem_reg) << 10;
|
|
|
+ mem_aperture = 1 << (WINDOW_G(mem_reg) + WINDOW_SHIFT_X);
|
|
|
+ mem_base = PCIEOFST_G(mem_reg) << PCIEOFST_SHIFT_X;
|
|
|
if (is_t4(adap->params.chip))
|
|
|
mem_base -= adap->t4_bar0;
|
|
|
- win_pf = is_t4(adap->params.chip) ? 0 : V_PFNUM(adap->fn);
|
|
|
+ win_pf = is_t4(adap->params.chip) ? 0 : PFNUM_V(adap->fn);
|
|
|
|
|
|
/* Calculate our initial PCI-E Memory Window Position and Offset into
|
|
|
* that Window.
|
|
@@ -524,10 +525,10 @@ int t4_memory_rw(struct adapter *adap, int win, int mtype, u32 addr,
|
|
|
* attempt to use the new value.)
|
|
|
*/
|
|
|
t4_write_reg(adap,
|
|
|
- PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_OFFSET, win),
|
|
|
+ PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_OFFSET_A, win),
|
|
|
pos | win_pf);
|
|
|
t4_read_reg(adap,
|
|
|
- PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_OFFSET, win));
|
|
|
+ PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_OFFSET_A, win));
|
|
|
|
|
|
/* Transfer data to/from the adapter as long as there's an integral
|
|
|
* number of 32-bit transfers to complete.
|
|
@@ -552,11 +553,11 @@ int t4_memory_rw(struct adapter *adap, int win, int mtype, u32 addr,
|
|
|
pos += mem_aperture;
|
|
|
offset = 0;
|
|
|
t4_write_reg(adap,
|
|
|
- PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_OFFSET,
|
|
|
- win), pos | win_pf);
|
|
|
+ PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_OFFSET_A,
|
|
|
+ win), pos | win_pf);
|
|
|
t4_read_reg(adap,
|
|
|
- PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_OFFSET,
|
|
|
- win));
|
|
|
+ PCIE_MEM_ACCESS_REG(PCIE_MEM_ACCESS_OFFSET_A,
|
|
|
+ win));
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -760,14 +761,13 @@ static int sf1_read(struct adapter *adapter, unsigned int byte_cnt, int cont,
|
|
|
|
|
|
if (!byte_cnt || byte_cnt > 4)
|
|
|
return -EINVAL;
|
|
|
- if (t4_read_reg(adapter, SF_OP) & SF_BUSY)
|
|
|
+ if (t4_read_reg(adapter, SF_OP_A) & SF_BUSY_F)
|
|
|
return -EBUSY;
|
|
|
- cont = cont ? SF_CONT : 0;
|
|
|
- lock = lock ? SF_LOCK : 0;
|
|
|
- t4_write_reg(adapter, SF_OP, lock | cont | BYTECNT(byte_cnt - 1));
|
|
|
- ret = t4_wait_op_done(adapter, SF_OP, SF_BUSY, 0, SF_ATTEMPTS, 5);
|
|
|
+ t4_write_reg(adapter, SF_OP_A, SF_LOCK_V(lock) |
|
|
|
+ SF_CONT_V(cont) | BYTECNT_V(byte_cnt - 1));
|
|
|
+ ret = t4_wait_op_done(adapter, SF_OP_A, SF_BUSY_F, 0, SF_ATTEMPTS, 5);
|
|
|
if (!ret)
|
|
|
- *valp = t4_read_reg(adapter, SF_DATA);
|
|
|
+ *valp = t4_read_reg(adapter, SF_DATA_A);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -788,14 +788,12 @@ static int sf1_write(struct adapter *adapter, unsigned int byte_cnt, int cont,
|
|
|
{
|
|
|
if (!byte_cnt || byte_cnt > 4)
|
|
|
return -EINVAL;
|
|
|
- if (t4_read_reg(adapter, SF_OP) & SF_BUSY)
|
|
|
+ if (t4_read_reg(adapter, SF_OP_A) & SF_BUSY_F)
|
|
|
return -EBUSY;
|
|
|
- cont = cont ? SF_CONT : 0;
|
|
|
- lock = lock ? SF_LOCK : 0;
|
|
|
- t4_write_reg(adapter, SF_DATA, val);
|
|
|
- t4_write_reg(adapter, SF_OP, lock |
|
|
|
- cont | BYTECNT(byte_cnt - 1) | OP_WR);
|
|
|
- return t4_wait_op_done(adapter, SF_OP, SF_BUSY, 0, SF_ATTEMPTS, 5);
|
|
|
+ t4_write_reg(adapter, SF_DATA_A, val);
|
|
|
+ t4_write_reg(adapter, SF_OP_A, SF_LOCK_V(lock) |
|
|
|
+ SF_CONT_V(cont) | BYTECNT_V(byte_cnt - 1) | OP_V(1));
|
|
|
+ return t4_wait_op_done(adapter, SF_OP_A, SF_BUSY_F, 0, SF_ATTEMPTS, 5);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -854,7 +852,7 @@ static int t4_read_flash(struct adapter *adapter, unsigned int addr,
|
|
|
for ( ; nwords; nwords--, data++) {
|
|
|
ret = sf1_read(adapter, 4, nwords > 1, nwords == 1, data);
|
|
|
if (nwords == 1)
|
|
|
- t4_write_reg(adapter, SF_OP, 0); /* unlock SF */
|
|
|
+ t4_write_reg(adapter, SF_OP_A, 0); /* unlock SF */
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
if (byte_oriented)
|
|
@@ -902,7 +900,7 @@ static int t4_write_flash(struct adapter *adapter, unsigned int addr,
|
|
|
if (ret)
|
|
|
goto unlock;
|
|
|
|
|
|
- t4_write_reg(adapter, SF_OP, 0); /* unlock SF */
|
|
|
+ t4_write_reg(adapter, SF_OP_A, 0); /* unlock SF */
|
|
|
|
|
|
/* Read the page to verify the write succeeded */
|
|
|
ret = t4_read_flash(adapter, addr & ~0xff, ARRAY_SIZE(buf), buf, 1);
|
|
@@ -918,7 +916,7 @@ static int t4_write_flash(struct adapter *adapter, unsigned int addr,
|
|
|
return 0;
|
|
|
|
|
|
unlock:
|
|
|
- t4_write_reg(adapter, SF_OP, 0); /* unlock SF */
|
|
|
+ t4_write_reg(adapter, SF_OP_A, 0); /* unlock SF */
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -1113,7 +1111,7 @@ static int t4_flash_erase_sectors(struct adapter *adapter, int start, int end)
|
|
|
}
|
|
|
start++;
|
|
|
}
|
|
|
- t4_write_reg(adapter, SF_OP, 0); /* unlock SF */
|
|
|
+ t4_write_reg(adapter, SF_OP_A, 0); /* unlock SF */
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -1365,95 +1363,97 @@ static int t4_handle_intr_status(struct adapter *adapter, unsigned int reg,
|
|
|
static void pcie_intr_handler(struct adapter *adapter)
|
|
|
{
|
|
|
static const struct intr_info sysbus_intr_info[] = {
|
|
|
- { RNPP, "RXNP array parity error", -1, 1 },
|
|
|
- { RPCP, "RXPC array parity error", -1, 1 },
|
|
|
- { RCIP, "RXCIF array parity error", -1, 1 },
|
|
|
- { RCCP, "Rx completions control array parity error", -1, 1 },
|
|
|
- { RFTP, "RXFT array parity error", -1, 1 },
|
|
|
+ { RNPP_F, "RXNP array parity error", -1, 1 },
|
|
|
+ { RPCP_F, "RXPC array parity error", -1, 1 },
|
|
|
+ { RCIP_F, "RXCIF array parity error", -1, 1 },
|
|
|
+ { RCCP_F, "Rx completions control array parity error", -1, 1 },
|
|
|
+ { RFTP_F, "RXFT array parity error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
static const struct intr_info pcie_port_intr_info[] = {
|
|
|
- { TPCP, "TXPC array parity error", -1, 1 },
|
|
|
- { TNPP, "TXNP array parity error", -1, 1 },
|
|
|
- { TFTP, "TXFT array parity error", -1, 1 },
|
|
|
- { TCAP, "TXCA array parity error", -1, 1 },
|
|
|
- { TCIP, "TXCIF array parity error", -1, 1 },
|
|
|
- { RCAP, "RXCA array parity error", -1, 1 },
|
|
|
- { OTDD, "outbound request TLP discarded", -1, 1 },
|
|
|
- { RDPE, "Rx data parity error", -1, 1 },
|
|
|
- { TDUE, "Tx uncorrectable data error", -1, 1 },
|
|
|
+ { TPCP_F, "TXPC array parity error", -1, 1 },
|
|
|
+ { TNPP_F, "TXNP array parity error", -1, 1 },
|
|
|
+ { TFTP_F, "TXFT array parity error", -1, 1 },
|
|
|
+ { TCAP_F, "TXCA array parity error", -1, 1 },
|
|
|
+ { TCIP_F, "TXCIF array parity error", -1, 1 },
|
|
|
+ { RCAP_F, "RXCA array parity error", -1, 1 },
|
|
|
+ { OTDD_F, "outbound request TLP discarded", -1, 1 },
|
|
|
+ { RDPE_F, "Rx data parity error", -1, 1 },
|
|
|
+ { TDUE_F, "Tx uncorrectable data error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
static const struct intr_info pcie_intr_info[] = {
|
|
|
- { MSIADDRLPERR, "MSI AddrL parity error", -1, 1 },
|
|
|
- { MSIADDRHPERR, "MSI AddrH parity error", -1, 1 },
|
|
|
- { MSIDATAPERR, "MSI data parity error", -1, 1 },
|
|
|
- { MSIXADDRLPERR, "MSI-X AddrL parity error", -1, 1 },
|
|
|
- { MSIXADDRHPERR, "MSI-X AddrH parity error", -1, 1 },
|
|
|
- { MSIXDATAPERR, "MSI-X data parity error", -1, 1 },
|
|
|
- { MSIXDIPERR, "MSI-X DI parity error", -1, 1 },
|
|
|
- { PIOCPLPERR, "PCI PIO completion FIFO parity error", -1, 1 },
|
|
|
- { PIOREQPERR, "PCI PIO request FIFO parity error", -1, 1 },
|
|
|
- { TARTAGPERR, "PCI PCI target tag FIFO parity error", -1, 1 },
|
|
|
- { CCNTPERR, "PCI CMD channel count parity error", -1, 1 },
|
|
|
- { CREQPERR, "PCI CMD channel request parity error", -1, 1 },
|
|
|
- { CRSPPERR, "PCI CMD channel response parity error", -1, 1 },
|
|
|
- { DCNTPERR, "PCI DMA channel count parity error", -1, 1 },
|
|
|
- { DREQPERR, "PCI DMA channel request parity error", -1, 1 },
|
|
|
- { DRSPPERR, "PCI DMA channel response parity error", -1, 1 },
|
|
|
- { HCNTPERR, "PCI HMA channel count parity error", -1, 1 },
|
|
|
- { HREQPERR, "PCI HMA channel request parity error", -1, 1 },
|
|
|
- { HRSPPERR, "PCI HMA channel response parity error", -1, 1 },
|
|
|
- { CFGSNPPERR, "PCI config snoop FIFO parity error", -1, 1 },
|
|
|
- { FIDPERR, "PCI FID parity error", -1, 1 },
|
|
|
- { INTXCLRPERR, "PCI INTx clear parity error", -1, 1 },
|
|
|
- { MATAGPERR, "PCI MA tag parity error", -1, 1 },
|
|
|
- { PIOTAGPERR, "PCI PIO tag parity error", -1, 1 },
|
|
|
- { RXCPLPERR, "PCI Rx completion parity error", -1, 1 },
|
|
|
- { RXWRPERR, "PCI Rx write parity error", -1, 1 },
|
|
|
- { RPLPERR, "PCI replay buffer parity error", -1, 1 },
|
|
|
- { PCIESINT, "PCI core secondary fault", -1, 1 },
|
|
|
- { PCIEPINT, "PCI core primary fault", -1, 1 },
|
|
|
- { UNXSPLCPLERR, "PCI unexpected split completion error", -1, 0 },
|
|
|
+ { MSIADDRLPERR_F, "MSI AddrL parity error", -1, 1 },
|
|
|
+ { MSIADDRHPERR_F, "MSI AddrH parity error", -1, 1 },
|
|
|
+ { MSIDATAPERR_F, "MSI data parity error", -1, 1 },
|
|
|
+ { MSIXADDRLPERR_F, "MSI-X AddrL parity error", -1, 1 },
|
|
|
+ { MSIXADDRHPERR_F, "MSI-X AddrH parity error", -1, 1 },
|
|
|
+ { MSIXDATAPERR_F, "MSI-X data parity error", -1, 1 },
|
|
|
+ { MSIXDIPERR_F, "MSI-X DI parity error", -1, 1 },
|
|
|
+ { PIOCPLPERR_F, "PCI PIO completion FIFO parity error", -1, 1 },
|
|
|
+ { PIOREQPERR_F, "PCI PIO request FIFO parity error", -1, 1 },
|
|
|
+ { TARTAGPERR_F, "PCI PCI target tag FIFO parity error", -1, 1 },
|
|
|
+ { CCNTPERR_F, "PCI CMD channel count parity error", -1, 1 },
|
|
|
+ { CREQPERR_F, "PCI CMD channel request parity error", -1, 1 },
|
|
|
+ { CRSPPERR_F, "PCI CMD channel response parity error", -1, 1 },
|
|
|
+ { DCNTPERR_F, "PCI DMA channel count parity error", -1, 1 },
|
|
|
+ { DREQPERR_F, "PCI DMA channel request parity error", -1, 1 },
|
|
|
+ { DRSPPERR_F, "PCI DMA channel response parity error", -1, 1 },
|
|
|
+ { HCNTPERR_F, "PCI HMA channel count parity error", -1, 1 },
|
|
|
+ { HREQPERR_F, "PCI HMA channel request parity error", -1, 1 },
|
|
|
+ { HRSPPERR_F, "PCI HMA channel response parity error", -1, 1 },
|
|
|
+ { CFGSNPPERR_F, "PCI config snoop FIFO parity error", -1, 1 },
|
|
|
+ { FIDPERR_F, "PCI FID parity error", -1, 1 },
|
|
|
+ { INTXCLRPERR_F, "PCI INTx clear parity error", -1, 1 },
|
|
|
+ { MATAGPERR_F, "PCI MA tag parity error", -1, 1 },
|
|
|
+ { PIOTAGPERR_F, "PCI PIO tag parity error", -1, 1 },
|
|
|
+ { RXCPLPERR_F, "PCI Rx completion parity error", -1, 1 },
|
|
|
+ { RXWRPERR_F, "PCI Rx write parity error", -1, 1 },
|
|
|
+ { RPLPERR_F, "PCI replay buffer parity error", -1, 1 },
|
|
|
+ { PCIESINT_F, "PCI core secondary fault", -1, 1 },
|
|
|
+ { PCIEPINT_F, "PCI core primary fault", -1, 1 },
|
|
|
+ { UNXSPLCPLERR_F, "PCI unexpected split completion error",
|
|
|
+ -1, 0 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
static struct intr_info t5_pcie_intr_info[] = {
|
|
|
- { MSTGRPPERR, "Master Response Read Queue parity error",
|
|
|
+ { MSTGRPPERR_F, "Master Response Read Queue parity error",
|
|
|
+ -1, 1 },
|
|
|
+ { MSTTIMEOUTPERR_F, "Master Timeout FIFO parity error", -1, 1 },
|
|
|
+ { MSIXSTIPERR_F, "MSI-X STI SRAM parity error", -1, 1 },
|
|
|
+ { MSIXADDRLPERR_F, "MSI-X AddrL parity error", -1, 1 },
|
|
|
+ { MSIXADDRHPERR_F, "MSI-X AddrH parity error", -1, 1 },
|
|
|
+ { MSIXDATAPERR_F, "MSI-X data parity error", -1, 1 },
|
|
|
+ { MSIXDIPERR_F, "MSI-X DI parity error", -1, 1 },
|
|
|
+ { PIOCPLGRPPERR_F, "PCI PIO completion Group FIFO parity error",
|
|
|
-1, 1 },
|
|
|
- { MSTTIMEOUTPERR, "Master Timeout FIFO parity error", -1, 1 },
|
|
|
- { MSIXSTIPERR, "MSI-X STI SRAM parity error", -1, 1 },
|
|
|
- { MSIXADDRLPERR, "MSI-X AddrL parity error", -1, 1 },
|
|
|
- { MSIXADDRHPERR, "MSI-X AddrH parity error", -1, 1 },
|
|
|
- { MSIXDATAPERR, "MSI-X data parity error", -1, 1 },
|
|
|
- { MSIXDIPERR, "MSI-X DI parity error", -1, 1 },
|
|
|
- { PIOCPLGRPPERR, "PCI PIO completion Group FIFO parity error",
|
|
|
+ { PIOREQGRPPERR_F, "PCI PIO request Group FIFO parity error",
|
|
|
-1, 1 },
|
|
|
- { PIOREQGRPPERR, "PCI PIO request Group FIFO parity error",
|
|
|
+ { TARTAGPERR_F, "PCI PCI target tag FIFO parity error", -1, 1 },
|
|
|
+ { MSTTAGQPERR_F, "PCI master tag queue parity error", -1, 1 },
|
|
|
+ { CREQPERR_F, "PCI CMD channel request parity error", -1, 1 },
|
|
|
+ { CRSPPERR_F, "PCI CMD channel response parity error", -1, 1 },
|
|
|
+ { DREQWRPERR_F, "PCI DMA channel write request parity error",
|
|
|
-1, 1 },
|
|
|
- { TARTAGPERR, "PCI PCI target tag FIFO parity error", -1, 1 },
|
|
|
- { MSTTAGQPERR, "PCI master tag queue parity error", -1, 1 },
|
|
|
- { CREQPERR, "PCI CMD channel request parity error", -1, 1 },
|
|
|
- { CRSPPERR, "PCI CMD channel response parity error", -1, 1 },
|
|
|
- { DREQWRPERR, "PCI DMA channel write request parity error",
|
|
|
+ { DREQPERR_F, "PCI DMA channel request parity error", -1, 1 },
|
|
|
+ { DRSPPERR_F, "PCI DMA channel response parity error", -1, 1 },
|
|
|
+ { HREQWRPERR_F, "PCI HMA channel count parity error", -1, 1 },
|
|
|
+ { HREQPERR_F, "PCI HMA channel request parity error", -1, 1 },
|
|
|
+ { HRSPPERR_F, "PCI HMA channel response parity error", -1, 1 },
|
|
|
+ { CFGSNPPERR_F, "PCI config snoop FIFO parity error", -1, 1 },
|
|
|
+ { FIDPERR_F, "PCI FID parity error", -1, 1 },
|
|
|
+ { VFIDPERR_F, "PCI INTx clear parity error", -1, 1 },
|
|
|
+ { MAGRPPERR_F, "PCI MA group FIFO parity error", -1, 1 },
|
|
|
+ { PIOTAGPERR_F, "PCI PIO tag parity error", -1, 1 },
|
|
|
+ { IPRXHDRGRPPERR_F, "PCI IP Rx header group parity error",
|
|
|
-1, 1 },
|
|
|
- { DREQPERR, "PCI DMA channel request parity error", -1, 1 },
|
|
|
- { DRSPPERR, "PCI DMA channel response parity error", -1, 1 },
|
|
|
- { HREQWRPERR, "PCI HMA channel count parity error", -1, 1 },
|
|
|
- { HREQPERR, "PCI HMA channel request parity error", -1, 1 },
|
|
|
- { HRSPPERR, "PCI HMA channel response parity error", -1, 1 },
|
|
|
- { CFGSNPPERR, "PCI config snoop FIFO parity error", -1, 1 },
|
|
|
- { FIDPERR, "PCI FID parity error", -1, 1 },
|
|
|
- { VFIDPERR, "PCI INTx clear parity error", -1, 1 },
|
|
|
- { MAGRPPERR, "PCI MA group FIFO parity error", -1, 1 },
|
|
|
- { PIOTAGPERR, "PCI PIO tag parity error", -1, 1 },
|
|
|
- { IPRXHDRGRPPERR, "PCI IP Rx header group parity error",
|
|
|
+ { IPRXDATAGRPPERR_F, "PCI IP Rx data group parity error",
|
|
|
-1, 1 },
|
|
|
- { IPRXDATAGRPPERR, "PCI IP Rx data group parity error", -1, 1 },
|
|
|
- { RPLPERR, "PCI IP replay buffer parity error", -1, 1 },
|
|
|
- { IPSOTPERR, "PCI IP SOT buffer parity error", -1, 1 },
|
|
|
- { TRGT1GRPPERR, "PCI TRGT1 group FIFOs parity error", -1, 1 },
|
|
|
- { READRSPERR, "Outbound read error", -1, 0 },
|
|
|
+ { RPLPERR_F, "PCI IP replay buffer parity error", -1, 1 },
|
|
|
+ { IPSOTPERR_F, "PCI IP SOT buffer parity error", -1, 1 },
|
|
|
+ { TRGT1GRPPERR_F, "PCI TRGT1 group FIFOs parity error", -1, 1 },
|
|
|
+ { READRSPERR_F, "Outbound read error", -1, 0 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
@@ -1461,15 +1461,15 @@ static void pcie_intr_handler(struct adapter *adapter)
|
|
|
|
|
|
if (is_t4(adapter->params.chip))
|
|
|
fat = t4_handle_intr_status(adapter,
|
|
|
- PCIE_CORE_UTL_SYSTEM_BUS_AGENT_STATUS,
|
|
|
- sysbus_intr_info) +
|
|
|
+ PCIE_CORE_UTL_SYSTEM_BUS_AGENT_STATUS_A,
|
|
|
+ sysbus_intr_info) +
|
|
|
t4_handle_intr_status(adapter,
|
|
|
- PCIE_CORE_UTL_PCI_EXPRESS_PORT_STATUS,
|
|
|
- pcie_port_intr_info) +
|
|
|
- t4_handle_intr_status(adapter, PCIE_INT_CAUSE,
|
|
|
+ PCIE_CORE_UTL_PCI_EXPRESS_PORT_STATUS_A,
|
|
|
+ pcie_port_intr_info) +
|
|
|
+ t4_handle_intr_status(adapter, PCIE_INT_CAUSE_A,
|
|
|
pcie_intr_info);
|
|
|
else
|
|
|
- fat = t4_handle_intr_status(adapter, PCIE_INT_CAUSE,
|
|
|
+ fat = t4_handle_intr_status(adapter, PCIE_INT_CAUSE_A,
|
|
|
t5_pcie_intr_info);
|
|
|
|
|
|
if (fat)
|
|
@@ -1483,11 +1483,11 @@ static void tp_intr_handler(struct adapter *adapter)
|
|
|
{
|
|
|
static const struct intr_info tp_intr_info[] = {
|
|
|
{ 0x3fffffff, "TP parity error", -1, 1 },
|
|
|
- { FLMTXFLSTEMPTY, "TP out of Tx pages", -1, 1 },
|
|
|
+ { FLMTXFLSTEMPTY_F, "TP out of Tx pages", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adapter, TP_INT_CAUSE, tp_intr_info))
|
|
|
+ if (t4_handle_intr_status(adapter, TP_INT_CAUSE_A, tp_intr_info))
|
|
|
t4_fatal_err(adapter);
|
|
|
}
|
|
|
|
|
@@ -1499,102 +1499,107 @@ static void sge_intr_handler(struct adapter *adapter)
|
|
|
u64 v;
|
|
|
|
|
|
static const struct intr_info sge_intr_info[] = {
|
|
|
- { ERR_CPL_EXCEED_IQE_SIZE,
|
|
|
+ { ERR_CPL_EXCEED_IQE_SIZE_F,
|
|
|
"SGE received CPL exceeding IQE size", -1, 1 },
|
|
|
- { ERR_INVALID_CIDX_INC,
|
|
|
+ { ERR_INVALID_CIDX_INC_F,
|
|
|
"SGE GTS CIDX increment too large", -1, 0 },
|
|
|
- { ERR_CPL_OPCODE_0, "SGE received 0-length CPL", -1, 0 },
|
|
|
- { DBFIFO_LP_INT, NULL, -1, 0, t4_db_full },
|
|
|
- { DBFIFO_HP_INT, NULL, -1, 0, t4_db_full },
|
|
|
- { ERR_DROPPED_DB, NULL, -1, 0, t4_db_dropped },
|
|
|
- { ERR_DATA_CPL_ON_HIGH_QID1 | ERR_DATA_CPL_ON_HIGH_QID0,
|
|
|
+ { ERR_CPL_OPCODE_0_F, "SGE received 0-length CPL", -1, 0 },
|
|
|
+ { DBFIFO_LP_INT_F, NULL, -1, 0, t4_db_full },
|
|
|
+ { DBFIFO_HP_INT_F, NULL, -1, 0, t4_db_full },
|
|
|
+ { ERR_DROPPED_DB_F, NULL, -1, 0, t4_db_dropped },
|
|
|
+ { ERR_DATA_CPL_ON_HIGH_QID1_F | ERR_DATA_CPL_ON_HIGH_QID0_F,
|
|
|
"SGE IQID > 1023 received CPL for FL", -1, 0 },
|
|
|
- { ERR_BAD_DB_PIDX3, "SGE DBP 3 pidx increment too large", -1,
|
|
|
+ { ERR_BAD_DB_PIDX3_F, "SGE DBP 3 pidx increment too large", -1,
|
|
|
0 },
|
|
|
- { ERR_BAD_DB_PIDX2, "SGE DBP 2 pidx increment too large", -1,
|
|
|
+ { ERR_BAD_DB_PIDX2_F, "SGE DBP 2 pidx increment too large", -1,
|
|
|
0 },
|
|
|
- { ERR_BAD_DB_PIDX1, "SGE DBP 1 pidx increment too large", -1,
|
|
|
+ { ERR_BAD_DB_PIDX1_F, "SGE DBP 1 pidx increment too large", -1,
|
|
|
0 },
|
|
|
- { ERR_BAD_DB_PIDX0, "SGE DBP 0 pidx increment too large", -1,
|
|
|
+ { ERR_BAD_DB_PIDX0_F, "SGE DBP 0 pidx increment too large", -1,
|
|
|
0 },
|
|
|
- { ERR_ING_CTXT_PRIO,
|
|
|
+ { ERR_ING_CTXT_PRIO_F,
|
|
|
"SGE too many priority ingress contexts", -1, 0 },
|
|
|
- { ERR_EGR_CTXT_PRIO,
|
|
|
+ { ERR_EGR_CTXT_PRIO_F,
|
|
|
"SGE too many priority egress contexts", -1, 0 },
|
|
|
- { INGRESS_SIZE_ERR, "SGE illegal ingress QID", -1, 0 },
|
|
|
- { EGRESS_SIZE_ERR, "SGE illegal egress QID", -1, 0 },
|
|
|
+ { INGRESS_SIZE_ERR_F, "SGE illegal ingress QID", -1, 0 },
|
|
|
+ { EGRESS_SIZE_ERR_F, "SGE illegal egress QID", -1, 0 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- v = (u64)t4_read_reg(adapter, SGE_INT_CAUSE1) |
|
|
|
- ((u64)t4_read_reg(adapter, SGE_INT_CAUSE2) << 32);
|
|
|
+ v = (u64)t4_read_reg(adapter, SGE_INT_CAUSE1_A) |
|
|
|
+ ((u64)t4_read_reg(adapter, SGE_INT_CAUSE2_A) << 32);
|
|
|
if (v) {
|
|
|
dev_alert(adapter->pdev_dev, "SGE parity error (%#llx)\n",
|
|
|
(unsigned long long)v);
|
|
|
- t4_write_reg(adapter, SGE_INT_CAUSE1, v);
|
|
|
- t4_write_reg(adapter, SGE_INT_CAUSE2, v >> 32);
|
|
|
+ t4_write_reg(adapter, SGE_INT_CAUSE1_A, v);
|
|
|
+ t4_write_reg(adapter, SGE_INT_CAUSE2_A, v >> 32);
|
|
|
}
|
|
|
|
|
|
- if (t4_handle_intr_status(adapter, SGE_INT_CAUSE3, sge_intr_info) ||
|
|
|
+ if (t4_handle_intr_status(adapter, SGE_INT_CAUSE3_A, sge_intr_info) ||
|
|
|
v != 0)
|
|
|
t4_fatal_err(adapter);
|
|
|
}
|
|
|
|
|
|
+#define CIM_OBQ_INTR (OBQULP0PARERR_F | OBQULP1PARERR_F | OBQULP2PARERR_F |\
|
|
|
+ OBQULP3PARERR_F | OBQSGEPARERR_F | OBQNCSIPARERR_F)
|
|
|
+#define CIM_IBQ_INTR (IBQTP0PARERR_F | IBQTP1PARERR_F | IBQULPPARERR_F |\
|
|
|
+ IBQSGEHIPARERR_F | IBQSGELOPARERR_F | IBQNCSIPARERR_F)
|
|
|
+
|
|
|
/*
|
|
|
* CIM interrupt handler.
|
|
|
*/
|
|
|
static void cim_intr_handler(struct adapter *adapter)
|
|
|
{
|
|
|
static const struct intr_info cim_intr_info[] = {
|
|
|
- { PREFDROPINT, "CIM control register prefetch drop", -1, 1 },
|
|
|
- { OBQPARERR, "CIM OBQ parity error", -1, 1 },
|
|
|
- { IBQPARERR, "CIM IBQ parity error", -1, 1 },
|
|
|
- { MBUPPARERR, "CIM mailbox uP parity error", -1, 1 },
|
|
|
- { MBHOSTPARERR, "CIM mailbox host parity error", -1, 1 },
|
|
|
- { TIEQINPARERRINT, "CIM TIEQ outgoing parity error", -1, 1 },
|
|
|
- { TIEQOUTPARERRINT, "CIM TIEQ incoming parity error", -1, 1 },
|
|
|
+ { PREFDROPINT_F, "CIM control register prefetch drop", -1, 1 },
|
|
|
+ { CIM_OBQ_INTR, "CIM OBQ parity error", -1, 1 },
|
|
|
+ { CIM_IBQ_INTR, "CIM IBQ parity error", -1, 1 },
|
|
|
+ { MBUPPARERR_F, "CIM mailbox uP parity error", -1, 1 },
|
|
|
+ { MBHOSTPARERR_F, "CIM mailbox host parity error", -1, 1 },
|
|
|
+ { TIEQINPARERRINT_F, "CIM TIEQ outgoing parity error", -1, 1 },
|
|
|
+ { TIEQOUTPARERRINT_F, "CIM TIEQ incoming parity error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
static const struct intr_info cim_upintr_info[] = {
|
|
|
- { RSVDSPACEINT, "CIM reserved space access", -1, 1 },
|
|
|
- { ILLTRANSINT, "CIM illegal transaction", -1, 1 },
|
|
|
- { ILLWRINT, "CIM illegal write", -1, 1 },
|
|
|
- { ILLRDINT, "CIM illegal read", -1, 1 },
|
|
|
- { ILLRDBEINT, "CIM illegal read BE", -1, 1 },
|
|
|
- { ILLWRBEINT, "CIM illegal write BE", -1, 1 },
|
|
|
- { SGLRDBOOTINT, "CIM single read from boot space", -1, 1 },
|
|
|
- { SGLWRBOOTINT, "CIM single write to boot space", -1, 1 },
|
|
|
- { BLKWRBOOTINT, "CIM block write to boot space", -1, 1 },
|
|
|
- { SGLRDFLASHINT, "CIM single read from flash space", -1, 1 },
|
|
|
- { SGLWRFLASHINT, "CIM single write to flash space", -1, 1 },
|
|
|
- { BLKWRFLASHINT, "CIM block write to flash space", -1, 1 },
|
|
|
- { SGLRDEEPROMINT, "CIM single EEPROM read", -1, 1 },
|
|
|
- { SGLWREEPROMINT, "CIM single EEPROM write", -1, 1 },
|
|
|
- { BLKRDEEPROMINT, "CIM block EEPROM read", -1, 1 },
|
|
|
- { BLKWREEPROMINT, "CIM block EEPROM write", -1, 1 },
|
|
|
- { SGLRDCTLINT , "CIM single read from CTL space", -1, 1 },
|
|
|
- { SGLWRCTLINT , "CIM single write to CTL space", -1, 1 },
|
|
|
- { BLKRDCTLINT , "CIM block read from CTL space", -1, 1 },
|
|
|
- { BLKWRCTLINT , "CIM block write to CTL space", -1, 1 },
|
|
|
- { SGLRDPLINT , "CIM single read from PL space", -1, 1 },
|
|
|
- { SGLWRPLINT , "CIM single write to PL space", -1, 1 },
|
|
|
- { BLKRDPLINT , "CIM block read from PL space", -1, 1 },
|
|
|
- { BLKWRPLINT , "CIM block write to PL space", -1, 1 },
|
|
|
- { REQOVRLOOKUPINT , "CIM request FIFO overwrite", -1, 1 },
|
|
|
- { RSPOVRLOOKUPINT , "CIM response FIFO overwrite", -1, 1 },
|
|
|
- { TIMEOUTINT , "CIM PIF timeout", -1, 1 },
|
|
|
- { TIMEOUTMAINT , "CIM PIF MA timeout", -1, 1 },
|
|
|
+ { RSVDSPACEINT_F, "CIM reserved space access", -1, 1 },
|
|
|
+ { ILLTRANSINT_F, "CIM illegal transaction", -1, 1 },
|
|
|
+ { ILLWRINT_F, "CIM illegal write", -1, 1 },
|
|
|
+ { ILLRDINT_F, "CIM illegal read", -1, 1 },
|
|
|
+ { ILLRDBEINT_F, "CIM illegal read BE", -1, 1 },
|
|
|
+ { ILLWRBEINT_F, "CIM illegal write BE", -1, 1 },
|
|
|
+ { SGLRDBOOTINT_F, "CIM single read from boot space", -1, 1 },
|
|
|
+ { SGLWRBOOTINT_F, "CIM single write to boot space", -1, 1 },
|
|
|
+ { BLKWRBOOTINT_F, "CIM block write to boot space", -1, 1 },
|
|
|
+ { SGLRDFLASHINT_F, "CIM single read from flash space", -1, 1 },
|
|
|
+ { SGLWRFLASHINT_F, "CIM single write to flash space", -1, 1 },
|
|
|
+ { BLKWRFLASHINT_F, "CIM block write to flash space", -1, 1 },
|
|
|
+ { SGLRDEEPROMINT_F, "CIM single EEPROM read", -1, 1 },
|
|
|
+ { SGLWREEPROMINT_F, "CIM single EEPROM write", -1, 1 },
|
|
|
+ { BLKRDEEPROMINT_F, "CIM block EEPROM read", -1, 1 },
|
|
|
+ { BLKWREEPROMINT_F, "CIM block EEPROM write", -1, 1 },
|
|
|
+ { SGLRDCTLINT_F, "CIM single read from CTL space", -1, 1 },
|
|
|
+ { SGLWRCTLINT_F, "CIM single write to CTL space", -1, 1 },
|
|
|
+ { BLKRDCTLINT_F, "CIM block read from CTL space", -1, 1 },
|
|
|
+ { BLKWRCTLINT_F, "CIM block write to CTL space", -1, 1 },
|
|
|
+ { SGLRDPLINT_F, "CIM single read from PL space", -1, 1 },
|
|
|
+ { SGLWRPLINT_F, "CIM single write to PL space", -1, 1 },
|
|
|
+ { BLKRDPLINT_F, "CIM block read from PL space", -1, 1 },
|
|
|
+ { BLKWRPLINT_F, "CIM block write to PL space", -1, 1 },
|
|
|
+ { REQOVRLOOKUPINT_F, "CIM request FIFO overwrite", -1, 1 },
|
|
|
+ { RSPOVRLOOKUPINT_F, "CIM response FIFO overwrite", -1, 1 },
|
|
|
+ { TIMEOUTINT_F, "CIM PIF timeout", -1, 1 },
|
|
|
+ { TIMEOUTMAINT_F, "CIM PIF MA timeout", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
int fat;
|
|
|
|
|
|
- if (t4_read_reg(adapter, MA_PCIE_FW) & PCIE_FW_ERR)
|
|
|
+ if (t4_read_reg(adapter, PCIE_FW_A) & PCIE_FW_ERR_F)
|
|
|
t4_report_fw_error(adapter);
|
|
|
|
|
|
- fat = t4_handle_intr_status(adapter, CIM_HOST_INT_CAUSE,
|
|
|
+ fat = t4_handle_intr_status(adapter, CIM_HOST_INT_CAUSE_A,
|
|
|
cim_intr_info) +
|
|
|
- t4_handle_intr_status(adapter, CIM_HOST_UPACC_INT_CAUSE,
|
|
|
+ t4_handle_intr_status(adapter, CIM_HOST_UPACC_INT_CAUSE_A,
|
|
|
cim_upintr_info);
|
|
|
if (fat)
|
|
|
t4_fatal_err(adapter);
|
|
@@ -1611,7 +1616,7 @@ static void ulprx_intr_handler(struct adapter *adapter)
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adapter, ULP_RX_INT_CAUSE, ulprx_intr_info))
|
|
|
+ if (t4_handle_intr_status(adapter, ULP_RX_INT_CAUSE_A, ulprx_intr_info))
|
|
|
t4_fatal_err(adapter);
|
|
|
}
|
|
|
|
|
@@ -1621,19 +1626,19 @@ static void ulprx_intr_handler(struct adapter *adapter)
|
|
|
static void ulptx_intr_handler(struct adapter *adapter)
|
|
|
{
|
|
|
static const struct intr_info ulptx_intr_info[] = {
|
|
|
- { PBL_BOUND_ERR_CH3, "ULPTX channel 3 PBL out of bounds", -1,
|
|
|
+ { PBL_BOUND_ERR_CH3_F, "ULPTX channel 3 PBL out of bounds", -1,
|
|
|
0 },
|
|
|
- { PBL_BOUND_ERR_CH2, "ULPTX channel 2 PBL out of bounds", -1,
|
|
|
+ { PBL_BOUND_ERR_CH2_F, "ULPTX channel 2 PBL out of bounds", -1,
|
|
|
0 },
|
|
|
- { PBL_BOUND_ERR_CH1, "ULPTX channel 1 PBL out of bounds", -1,
|
|
|
+ { PBL_BOUND_ERR_CH1_F, "ULPTX channel 1 PBL out of bounds", -1,
|
|
|
0 },
|
|
|
- { PBL_BOUND_ERR_CH0, "ULPTX channel 0 PBL out of bounds", -1,
|
|
|
+ { PBL_BOUND_ERR_CH0_F, "ULPTX channel 0 PBL out of bounds", -1,
|
|
|
0 },
|
|
|
{ 0xfffffff, "ULPTX parity error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adapter, ULP_TX_INT_CAUSE, ulptx_intr_info))
|
|
|
+ if (t4_handle_intr_status(adapter, ULP_TX_INT_CAUSE_A, ulptx_intr_info))
|
|
|
t4_fatal_err(adapter);
|
|
|
}
|
|
|
|
|
@@ -1643,19 +1648,20 @@ static void ulptx_intr_handler(struct adapter *adapter)
|
|
|
static void pmtx_intr_handler(struct adapter *adapter)
|
|
|
{
|
|
|
static const struct intr_info pmtx_intr_info[] = {
|
|
|
- { PCMD_LEN_OVFL0, "PMTX channel 0 pcmd too large", -1, 1 },
|
|
|
- { PCMD_LEN_OVFL1, "PMTX channel 1 pcmd too large", -1, 1 },
|
|
|
- { PCMD_LEN_OVFL2, "PMTX channel 2 pcmd too large", -1, 1 },
|
|
|
- { ZERO_C_CMD_ERROR, "PMTX 0-length pcmd", -1, 1 },
|
|
|
- { PMTX_FRAMING_ERROR, "PMTX framing error", -1, 1 },
|
|
|
- { OESPI_PAR_ERROR, "PMTX oespi parity error", -1, 1 },
|
|
|
- { DB_OPTIONS_PAR_ERROR, "PMTX db_options parity error", -1, 1 },
|
|
|
- { ICSPI_PAR_ERROR, "PMTX icspi parity error", -1, 1 },
|
|
|
- { C_PCMD_PAR_ERROR, "PMTX c_pcmd parity error", -1, 1},
|
|
|
+ { PCMD_LEN_OVFL0_F, "PMTX channel 0 pcmd too large", -1, 1 },
|
|
|
+ { PCMD_LEN_OVFL1_F, "PMTX channel 1 pcmd too large", -1, 1 },
|
|
|
+ { PCMD_LEN_OVFL2_F, "PMTX channel 2 pcmd too large", -1, 1 },
|
|
|
+ { ZERO_C_CMD_ERROR_F, "PMTX 0-length pcmd", -1, 1 },
|
|
|
+ { PMTX_FRAMING_ERROR_F, "PMTX framing error", -1, 1 },
|
|
|
+ { OESPI_PAR_ERROR_F, "PMTX oespi parity error", -1, 1 },
|
|
|
+ { DB_OPTIONS_PAR_ERROR_F, "PMTX db_options parity error",
|
|
|
+ -1, 1 },
|
|
|
+ { ICSPI_PAR_ERROR_F, "PMTX icspi parity error", -1, 1 },
|
|
|
+ { PMTX_C_PCMD_PAR_ERROR_F, "PMTX c_pcmd parity error", -1, 1},
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adapter, PM_TX_INT_CAUSE, pmtx_intr_info))
|
|
|
+ if (t4_handle_intr_status(adapter, PM_TX_INT_CAUSE_A, pmtx_intr_info))
|
|
|
t4_fatal_err(adapter);
|
|
|
}
|
|
|
|
|
@@ -1665,16 +1671,17 @@ static void pmtx_intr_handler(struct adapter *adapter)
|
|
|
static void pmrx_intr_handler(struct adapter *adapter)
|
|
|
{
|
|
|
static const struct intr_info pmrx_intr_info[] = {
|
|
|
- { ZERO_E_CMD_ERROR, "PMRX 0-length pcmd", -1, 1 },
|
|
|
- { PMRX_FRAMING_ERROR, "PMRX framing error", -1, 1 },
|
|
|
- { OCSPI_PAR_ERROR, "PMRX ocspi parity error", -1, 1 },
|
|
|
- { DB_OPTIONS_PAR_ERROR, "PMRX db_options parity error", -1, 1 },
|
|
|
- { IESPI_PAR_ERROR, "PMRX iespi parity error", -1, 1 },
|
|
|
- { E_PCMD_PAR_ERROR, "PMRX e_pcmd parity error", -1, 1},
|
|
|
+ { ZERO_E_CMD_ERROR_F, "PMRX 0-length pcmd", -1, 1 },
|
|
|
+ { PMRX_FRAMING_ERROR_F, "PMRX framing error", -1, 1 },
|
|
|
+ { OCSPI_PAR_ERROR_F, "PMRX ocspi parity error", -1, 1 },
|
|
|
+ { DB_OPTIONS_PAR_ERROR_F, "PMRX db_options parity error",
|
|
|
+ -1, 1 },
|
|
|
+ { IESPI_PAR_ERROR_F, "PMRX iespi parity error", -1, 1 },
|
|
|
+ { PMRX_E_PCMD_PAR_ERROR_F, "PMRX e_pcmd parity error", -1, 1},
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adapter, PM_RX_INT_CAUSE, pmrx_intr_info))
|
|
|
+ if (t4_handle_intr_status(adapter, PM_RX_INT_CAUSE_A, pmrx_intr_info))
|
|
|
t4_fatal_err(adapter);
|
|
|
}
|
|
|
|
|
@@ -1684,16 +1691,16 @@ static void pmrx_intr_handler(struct adapter *adapter)
|
|
|
static void cplsw_intr_handler(struct adapter *adapter)
|
|
|
{
|
|
|
static const struct intr_info cplsw_intr_info[] = {
|
|
|
- { CIM_OP_MAP_PERR, "CPLSW CIM op_map parity error", -1, 1 },
|
|
|
- { CIM_OVFL_ERROR, "CPLSW CIM overflow", -1, 1 },
|
|
|
- { TP_FRAMING_ERROR, "CPLSW TP framing error", -1, 1 },
|
|
|
- { SGE_FRAMING_ERROR, "CPLSW SGE framing error", -1, 1 },
|
|
|
- { CIM_FRAMING_ERROR, "CPLSW CIM framing error", -1, 1 },
|
|
|
- { ZERO_SWITCH_ERROR, "CPLSW no-switch error", -1, 1 },
|
|
|
+ { CIM_OP_MAP_PERR_F, "CPLSW CIM op_map parity error", -1, 1 },
|
|
|
+ { CIM_OVFL_ERROR_F, "CPLSW CIM overflow", -1, 1 },
|
|
|
+ { TP_FRAMING_ERROR_F, "CPLSW TP framing error", -1, 1 },
|
|
|
+ { SGE_FRAMING_ERROR_F, "CPLSW SGE framing error", -1, 1 },
|
|
|
+ { CIM_FRAMING_ERROR_F, "CPLSW CIM framing error", -1, 1 },
|
|
|
+ { ZERO_SWITCH_ERROR_F, "CPLSW no-switch error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adapter, CPL_INTR_CAUSE, cplsw_intr_info))
|
|
|
+ if (t4_handle_intr_status(adapter, CPL_INTR_CAUSE_A, cplsw_intr_info))
|
|
|
t4_fatal_err(adapter);
|
|
|
}
|
|
|
|
|
@@ -1703,15 +1710,15 @@ static void cplsw_intr_handler(struct adapter *adapter)
|
|
|
static void le_intr_handler(struct adapter *adap)
|
|
|
{
|
|
|
static const struct intr_info le_intr_info[] = {
|
|
|
- { LIPMISS, "LE LIP miss", -1, 0 },
|
|
|
- { LIP0, "LE 0 LIP error", -1, 0 },
|
|
|
- { PARITYERR, "LE parity error", -1, 1 },
|
|
|
- { UNKNOWNCMD, "LE unknown command", -1, 1 },
|
|
|
- { REQQPARERR, "LE request queue parity error", -1, 1 },
|
|
|
+ { LIPMISS_F, "LE LIP miss", -1, 0 },
|
|
|
+ { LIP0_F, "LE 0 LIP error", -1, 0 },
|
|
|
+ { PARITYERR_F, "LE parity error", -1, 1 },
|
|
|
+ { UNKNOWNCMD_F, "LE unknown command", -1, 1 },
|
|
|
+ { REQQPARERR_F, "LE request queue parity error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adap, LE_DB_INT_CAUSE, le_intr_info))
|
|
|
+ if (t4_handle_intr_status(adap, LE_DB_INT_CAUSE_A, le_intr_info))
|
|
|
t4_fatal_err(adap);
|
|
|
}
|
|
|
|
|
@@ -1725,19 +1732,22 @@ static void mps_intr_handler(struct adapter *adapter)
|
|
|
{ 0 }
|
|
|
};
|
|
|
static const struct intr_info mps_tx_intr_info[] = {
|
|
|
- { TPFIFO, "MPS Tx TP FIFO parity error", -1, 1 },
|
|
|
- { NCSIFIFO, "MPS Tx NC-SI FIFO parity error", -1, 1 },
|
|
|
- { TXDATAFIFO, "MPS Tx data FIFO parity error", -1, 1 },
|
|
|
- { TXDESCFIFO, "MPS Tx desc FIFO parity error", -1, 1 },
|
|
|
- { BUBBLE, "MPS Tx underflow", -1, 1 },
|
|
|
- { SECNTERR, "MPS Tx SOP/EOP error", -1, 1 },
|
|
|
- { FRMERR, "MPS Tx framing error", -1, 1 },
|
|
|
+ { TPFIFO_V(TPFIFO_M), "MPS Tx TP FIFO parity error", -1, 1 },
|
|
|
+ { NCSIFIFO_F, "MPS Tx NC-SI FIFO parity error", -1, 1 },
|
|
|
+ { TXDATAFIFO_V(TXDATAFIFO_M), "MPS Tx data FIFO parity error",
|
|
|
+ -1, 1 },
|
|
|
+ { TXDESCFIFO_V(TXDESCFIFO_M), "MPS Tx desc FIFO parity error",
|
|
|
+ -1, 1 },
|
|
|
+ { BUBBLE_F, "MPS Tx underflow", -1, 1 },
|
|
|
+ { SECNTERR_F, "MPS Tx SOP/EOP error", -1, 1 },
|
|
|
+ { FRMERR_F, "MPS Tx framing error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
static const struct intr_info mps_trc_intr_info[] = {
|
|
|
- { FILTMEM, "MPS TRC filter parity error", -1, 1 },
|
|
|
- { PKTFIFO, "MPS TRC packet FIFO parity error", -1, 1 },
|
|
|
- { MISCPERR, "MPS TRC misc parity error", -1, 1 },
|
|
|
+ { FILTMEM_V(FILTMEM_M), "MPS TRC filter parity error", -1, 1 },
|
|
|
+ { PKTFIFO_V(PKTFIFO_M), "MPS TRC packet FIFO parity error",
|
|
|
+ -1, 1 },
|
|
|
+ { MISCPERR_F, "MPS TRC misc parity error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
static const struct intr_info mps_stat_sram_intr_info[] = {
|
|
@@ -1753,37 +1763,37 @@ static void mps_intr_handler(struct adapter *adapter)
|
|
|
{ 0 }
|
|
|
};
|
|
|
static const struct intr_info mps_cls_intr_info[] = {
|
|
|
- { MATCHSRAM, "MPS match SRAM parity error", -1, 1 },
|
|
|
- { MATCHTCAM, "MPS match TCAM parity error", -1, 1 },
|
|
|
- { HASHSRAM, "MPS hash SRAM parity error", -1, 1 },
|
|
|
+ { MATCHSRAM_F, "MPS match SRAM parity error", -1, 1 },
|
|
|
+ { MATCHTCAM_F, "MPS match TCAM parity error", -1, 1 },
|
|
|
+ { HASHSRAM_F, "MPS hash SRAM parity error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
int fat;
|
|
|
|
|
|
- fat = t4_handle_intr_status(adapter, MPS_RX_PERR_INT_CAUSE,
|
|
|
+ fat = t4_handle_intr_status(adapter, MPS_RX_PERR_INT_CAUSE_A,
|
|
|
mps_rx_intr_info) +
|
|
|
- t4_handle_intr_status(adapter, MPS_TX_INT_CAUSE,
|
|
|
+ t4_handle_intr_status(adapter, MPS_TX_INT_CAUSE_A,
|
|
|
mps_tx_intr_info) +
|
|
|
- t4_handle_intr_status(adapter, MPS_TRC_INT_CAUSE,
|
|
|
+ t4_handle_intr_status(adapter, MPS_TRC_INT_CAUSE_A,
|
|
|
mps_trc_intr_info) +
|
|
|
- t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_SRAM,
|
|
|
+ t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_SRAM_A,
|
|
|
mps_stat_sram_intr_info) +
|
|
|
- t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_TX_FIFO,
|
|
|
+ t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_TX_FIFO_A,
|
|
|
mps_stat_tx_intr_info) +
|
|
|
- t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_RX_FIFO,
|
|
|
+ t4_handle_intr_status(adapter, MPS_STAT_PERR_INT_CAUSE_RX_FIFO_A,
|
|
|
mps_stat_rx_intr_info) +
|
|
|
- t4_handle_intr_status(adapter, MPS_CLS_INT_CAUSE,
|
|
|
+ t4_handle_intr_status(adapter, MPS_CLS_INT_CAUSE_A,
|
|
|
mps_cls_intr_info);
|
|
|
|
|
|
- t4_write_reg(adapter, MPS_INT_CAUSE, CLSINT | TRCINT |
|
|
|
- RXINT | TXINT | STATINT);
|
|
|
- t4_read_reg(adapter, MPS_INT_CAUSE); /* flush */
|
|
|
+ t4_write_reg(adapter, MPS_INT_CAUSE_A, 0);
|
|
|
+ t4_read_reg(adapter, MPS_INT_CAUSE_A); /* flush */
|
|
|
if (fat)
|
|
|
t4_fatal_err(adapter);
|
|
|
}
|
|
|
|
|
|
-#define MEM_INT_MASK (PERR_INT_CAUSE | ECC_CE_INT_CAUSE | ECC_UE_INT_CAUSE)
|
|
|
+#define MEM_INT_MASK (PERR_INT_CAUSE_F | ECC_CE_INT_CAUSE_F | \
|
|
|
+ ECC_UE_INT_CAUSE_F)
|
|
|
|
|
|
/*
|
|
|
* EDC/MC interrupt handler.
|
|
@@ -1795,40 +1805,40 @@ static void mem_intr_handler(struct adapter *adapter, int idx)
|
|
|
unsigned int addr, cnt_addr, v;
|
|
|
|
|
|
if (idx <= MEM_EDC1) {
|
|
|
- addr = EDC_REG(EDC_INT_CAUSE, idx);
|
|
|
- cnt_addr = EDC_REG(EDC_ECC_STATUS, idx);
|
|
|
+ addr = EDC_REG(EDC_INT_CAUSE_A, idx);
|
|
|
+ cnt_addr = EDC_REG(EDC_ECC_STATUS_A, idx);
|
|
|
} else if (idx == MEM_MC) {
|
|
|
if (is_t4(adapter->params.chip)) {
|
|
|
- addr = MC_INT_CAUSE;
|
|
|
- cnt_addr = MC_ECC_STATUS;
|
|
|
+ addr = MC_INT_CAUSE_A;
|
|
|
+ cnt_addr = MC_ECC_STATUS_A;
|
|
|
} else {
|
|
|
- addr = MC_P_INT_CAUSE;
|
|
|
- cnt_addr = MC_P_ECC_STATUS;
|
|
|
+ addr = MC_P_INT_CAUSE_A;
|
|
|
+ cnt_addr = MC_P_ECC_STATUS_A;
|
|
|
}
|
|
|
} else {
|
|
|
- addr = MC_REG(MC_P_INT_CAUSE, 1);
|
|
|
- cnt_addr = MC_REG(MC_P_ECC_STATUS, 1);
|
|
|
+ addr = MC_REG(MC_P_INT_CAUSE_A, 1);
|
|
|
+ cnt_addr = MC_REG(MC_P_ECC_STATUS_A, 1);
|
|
|
}
|
|
|
|
|
|
v = t4_read_reg(adapter, addr) & MEM_INT_MASK;
|
|
|
- if (v & PERR_INT_CAUSE)
|
|
|
+ if (v & PERR_INT_CAUSE_F)
|
|
|
dev_alert(adapter->pdev_dev, "%s FIFO parity error\n",
|
|
|
name[idx]);
|
|
|
- if (v & ECC_CE_INT_CAUSE) {
|
|
|
- u32 cnt = ECC_CECNT_GET(t4_read_reg(adapter, cnt_addr));
|
|
|
+ if (v & ECC_CE_INT_CAUSE_F) {
|
|
|
+ u32 cnt = ECC_CECNT_G(t4_read_reg(adapter, cnt_addr));
|
|
|
|
|
|
- t4_write_reg(adapter, cnt_addr, ECC_CECNT_MASK);
|
|
|
+ t4_write_reg(adapter, cnt_addr, ECC_CECNT_V(ECC_CECNT_M));
|
|
|
if (printk_ratelimit())
|
|
|
dev_warn(adapter->pdev_dev,
|
|
|
"%u %s correctable ECC data error%s\n",
|
|
|
cnt, name[idx], cnt > 1 ? "s" : "");
|
|
|
}
|
|
|
- if (v & ECC_UE_INT_CAUSE)
|
|
|
+ if (v & ECC_UE_INT_CAUSE_F)
|
|
|
dev_alert(adapter->pdev_dev,
|
|
|
"%s uncorrectable ECC data error\n", name[idx]);
|
|
|
|
|
|
t4_write_reg(adapter, addr, v);
|
|
|
- if (v & (PERR_INT_CAUSE | ECC_UE_INT_CAUSE))
|
|
|
+ if (v & (PERR_INT_CAUSE_F | ECC_UE_INT_CAUSE_F))
|
|
|
t4_fatal_err(adapter);
|
|
|
}
|
|
|
|
|
@@ -1837,26 +1847,26 @@ static void mem_intr_handler(struct adapter *adapter, int idx)
|
|
|
*/
|
|
|
static void ma_intr_handler(struct adapter *adap)
|
|
|
{
|
|
|
- u32 v, status = t4_read_reg(adap, MA_INT_CAUSE);
|
|
|
+ u32 v, status = t4_read_reg(adap, MA_INT_CAUSE_A);
|
|
|
|
|
|
- if (status & MEM_PERR_INT_CAUSE) {
|
|
|
+ if (status & MEM_PERR_INT_CAUSE_F) {
|
|
|
dev_alert(adap->pdev_dev,
|
|
|
"MA parity error, parity status %#x\n",
|
|
|
- t4_read_reg(adap, MA_PARITY_ERROR_STATUS));
|
|
|
+ t4_read_reg(adap, MA_PARITY_ERROR_STATUS1_A));
|
|
|
if (is_t5(adap->params.chip))
|
|
|
dev_alert(adap->pdev_dev,
|
|
|
"MA parity error, parity status %#x\n",
|
|
|
t4_read_reg(adap,
|
|
|
- MA_PARITY_ERROR_STATUS2));
|
|
|
+ MA_PARITY_ERROR_STATUS2_A));
|
|
|
}
|
|
|
- if (status & MEM_WRAP_INT_CAUSE) {
|
|
|
- v = t4_read_reg(adap, MA_INT_WRAP_STATUS);
|
|
|
+ if (status & MEM_WRAP_INT_CAUSE_F) {
|
|
|
+ v = t4_read_reg(adap, MA_INT_WRAP_STATUS_A);
|
|
|
dev_alert(adap->pdev_dev, "MA address wrap-around error by "
|
|
|
"client %u to address %#x\n",
|
|
|
- MEM_WRAP_CLIENT_NUM_GET(v),
|
|
|
- MEM_WRAP_ADDRESS_GET(v) << 4);
|
|
|
+ MEM_WRAP_CLIENT_NUM_G(v),
|
|
|
+ MEM_WRAP_ADDRESS_G(v) << 4);
|
|
|
}
|
|
|
- t4_write_reg(adap, MA_INT_CAUSE, status);
|
|
|
+ t4_write_reg(adap, MA_INT_CAUSE_A, status);
|
|
|
t4_fatal_err(adap);
|
|
|
}
|
|
|
|
|
@@ -1866,13 +1876,13 @@ static void ma_intr_handler(struct adapter *adap)
|
|
|
static void smb_intr_handler(struct adapter *adap)
|
|
|
{
|
|
|
static const struct intr_info smb_intr_info[] = {
|
|
|
- { MSTTXFIFOPARINT, "SMB master Tx FIFO parity error", -1, 1 },
|
|
|
- { MSTRXFIFOPARINT, "SMB master Rx FIFO parity error", -1, 1 },
|
|
|
- { SLVFIFOPARINT, "SMB slave FIFO parity error", -1, 1 },
|
|
|
+ { MSTTXFIFOPARINT_F, "SMB master Tx FIFO parity error", -1, 1 },
|
|
|
+ { MSTRXFIFOPARINT_F, "SMB master Rx FIFO parity error", -1, 1 },
|
|
|
+ { SLVFIFOPARINT_F, "SMB slave FIFO parity error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adap, SMB_INT_CAUSE, smb_intr_info))
|
|
|
+ if (t4_handle_intr_status(adap, SMB_INT_CAUSE_A, smb_intr_info))
|
|
|
t4_fatal_err(adap);
|
|
|
}
|
|
|
|
|
@@ -1882,14 +1892,14 @@ static void smb_intr_handler(struct adapter *adap)
|
|
|
static void ncsi_intr_handler(struct adapter *adap)
|
|
|
{
|
|
|
static const struct intr_info ncsi_intr_info[] = {
|
|
|
- { CIM_DM_PRTY_ERR, "NC-SI CIM parity error", -1, 1 },
|
|
|
- { MPS_DM_PRTY_ERR, "NC-SI MPS parity error", -1, 1 },
|
|
|
- { TXFIFO_PRTY_ERR, "NC-SI Tx FIFO parity error", -1, 1 },
|
|
|
- { RXFIFO_PRTY_ERR, "NC-SI Rx FIFO parity error", -1, 1 },
|
|
|
+ { CIM_DM_PRTY_ERR_F, "NC-SI CIM parity error", -1, 1 },
|
|
|
+ { MPS_DM_PRTY_ERR_F, "NC-SI MPS parity error", -1, 1 },
|
|
|
+ { TXFIFO_PRTY_ERR_F, "NC-SI Tx FIFO parity error", -1, 1 },
|
|
|
+ { RXFIFO_PRTY_ERR_F, "NC-SI Rx FIFO parity error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adap, NCSI_INT_CAUSE, ncsi_intr_info))
|
|
|
+ if (t4_handle_intr_status(adap, NCSI_INT_CAUSE_A, ncsi_intr_info))
|
|
|
t4_fatal_err(adap);
|
|
|
}
|
|
|
|
|
@@ -1901,23 +1911,23 @@ static void xgmac_intr_handler(struct adapter *adap, int port)
|
|
|
u32 v, int_cause_reg;
|
|
|
|
|
|
if (is_t4(adap->params.chip))
|
|
|
- int_cause_reg = PORT_REG(port, XGMAC_PORT_INT_CAUSE);
|
|
|
+ int_cause_reg = PORT_REG(port, XGMAC_PORT_INT_CAUSE_A);
|
|
|
else
|
|
|
- int_cause_reg = T5_PORT_REG(port, MAC_PORT_INT_CAUSE);
|
|
|
+ int_cause_reg = T5_PORT_REG(port, MAC_PORT_INT_CAUSE_A);
|
|
|
|
|
|
v = t4_read_reg(adap, int_cause_reg);
|
|
|
|
|
|
- v &= TXFIFO_PRTY_ERR | RXFIFO_PRTY_ERR;
|
|
|
+ v &= TXFIFO_PRTY_ERR_F | RXFIFO_PRTY_ERR_F;
|
|
|
if (!v)
|
|
|
return;
|
|
|
|
|
|
- if (v & TXFIFO_PRTY_ERR)
|
|
|
+ if (v & TXFIFO_PRTY_ERR_F)
|
|
|
dev_alert(adap->pdev_dev, "XGMAC %d Tx FIFO parity error\n",
|
|
|
port);
|
|
|
- if (v & RXFIFO_PRTY_ERR)
|
|
|
+ if (v & RXFIFO_PRTY_ERR_F)
|
|
|
dev_alert(adap->pdev_dev, "XGMAC %d Rx FIFO parity error\n",
|
|
|
port);
|
|
|
- t4_write_reg(adap, PORT_REG(port, XGMAC_PORT_INT_CAUSE), v);
|
|
|
+ t4_write_reg(adap, PORT_REG(port, XGMAC_PORT_INT_CAUSE_A), v);
|
|
|
t4_fatal_err(adap);
|
|
|
}
|
|
|
|
|
@@ -1927,19 +1937,19 @@ static void xgmac_intr_handler(struct adapter *adap, int port)
|
|
|
static void pl_intr_handler(struct adapter *adap)
|
|
|
{
|
|
|
static const struct intr_info pl_intr_info[] = {
|
|
|
- { FATALPERR, "T4 fatal parity error", -1, 1 },
|
|
|
- { PERRVFID, "PL VFID_MAP parity error", -1, 1 },
|
|
|
+ { FATALPERR_F, "T4 fatal parity error", -1, 1 },
|
|
|
+ { PERRVFID_F, "PL VFID_MAP parity error", -1, 1 },
|
|
|
{ 0 }
|
|
|
};
|
|
|
|
|
|
- if (t4_handle_intr_status(adap, PL_PL_INT_CAUSE, pl_intr_info))
|
|
|
+ if (t4_handle_intr_status(adap, PL_PL_INT_CAUSE_A, pl_intr_info))
|
|
|
t4_fatal_err(adap);
|
|
|
}
|
|
|
|
|
|
-#define PF_INTR_MASK (PFSW)
|
|
|
-#define GLBL_INTR_MASK (CIM | MPS | PL | PCIE | MC | EDC0 | \
|
|
|
- EDC1 | LE | TP | MA | PM_TX | PM_RX | ULP_RX | \
|
|
|
- CPL_SWITCH | SGE | ULP_TX)
|
|
|
+#define PF_INTR_MASK (PFSW_F)
|
|
|
+#define GLBL_INTR_MASK (CIM_F | MPS_F | PL_F | PCIE_F | MC_F | EDC0_F | \
|
|
|
+ EDC1_F | LE_F | TP_F | MA_F | PM_TX_F | PM_RX_F | ULP_RX_F | \
|
|
|
+ CPL_SWITCH_F | SGE_F | ULP_TX_F)
|
|
|
|
|
|
/**
|
|
|
* t4_slow_intr_handler - control path interrupt handler
|
|
@@ -1951,60 +1961,60 @@ static void pl_intr_handler(struct adapter *adap)
|
|
|
*/
|
|
|
int t4_slow_intr_handler(struct adapter *adapter)
|
|
|
{
|
|
|
- u32 cause = t4_read_reg(adapter, PL_INT_CAUSE);
|
|
|
+ u32 cause = t4_read_reg(adapter, PL_INT_CAUSE_A);
|
|
|
|
|
|
if (!(cause & GLBL_INTR_MASK))
|
|
|
return 0;
|
|
|
- if (cause & CIM)
|
|
|
+ if (cause & CIM_F)
|
|
|
cim_intr_handler(adapter);
|
|
|
- if (cause & MPS)
|
|
|
+ if (cause & MPS_F)
|
|
|
mps_intr_handler(adapter);
|
|
|
- if (cause & NCSI)
|
|
|
+ if (cause & NCSI_F)
|
|
|
ncsi_intr_handler(adapter);
|
|
|
- if (cause & PL)
|
|
|
+ if (cause & PL_F)
|
|
|
pl_intr_handler(adapter);
|
|
|
- if (cause & SMB)
|
|
|
+ if (cause & SMB_F)
|
|
|
smb_intr_handler(adapter);
|
|
|
- if (cause & XGMAC0)
|
|
|
+ if (cause & XGMAC0_F)
|
|
|
xgmac_intr_handler(adapter, 0);
|
|
|
- if (cause & XGMAC1)
|
|
|
+ if (cause & XGMAC1_F)
|
|
|
xgmac_intr_handler(adapter, 1);
|
|
|
- if (cause & XGMAC_KR0)
|
|
|
+ if (cause & XGMAC_KR0_F)
|
|
|
xgmac_intr_handler(adapter, 2);
|
|
|
- if (cause & XGMAC_KR1)
|
|
|
+ if (cause & XGMAC_KR1_F)
|
|
|
xgmac_intr_handler(adapter, 3);
|
|
|
- if (cause & PCIE)
|
|
|
+ if (cause & PCIE_F)
|
|
|
pcie_intr_handler(adapter);
|
|
|
- if (cause & MC)
|
|
|
+ if (cause & MC_F)
|
|
|
mem_intr_handler(adapter, MEM_MC);
|
|
|
- if (!is_t4(adapter->params.chip) && (cause & MC1))
|
|
|
+ if (!is_t4(adapter->params.chip) && (cause & MC1_S))
|
|
|
mem_intr_handler(adapter, MEM_MC1);
|
|
|
- if (cause & EDC0)
|
|
|
+ if (cause & EDC0_F)
|
|
|
mem_intr_handler(adapter, MEM_EDC0);
|
|
|
- if (cause & EDC1)
|
|
|
+ if (cause & EDC1_F)
|
|
|
mem_intr_handler(adapter, MEM_EDC1);
|
|
|
- if (cause & LE)
|
|
|
+ if (cause & LE_F)
|
|
|
le_intr_handler(adapter);
|
|
|
- if (cause & TP)
|
|
|
+ if (cause & TP_F)
|
|
|
tp_intr_handler(adapter);
|
|
|
- if (cause & MA)
|
|
|
+ if (cause & MA_F)
|
|
|
ma_intr_handler(adapter);
|
|
|
- if (cause & PM_TX)
|
|
|
+ if (cause & PM_TX_F)
|
|
|
pmtx_intr_handler(adapter);
|
|
|
- if (cause & PM_RX)
|
|
|
+ if (cause & PM_RX_F)
|
|
|
pmrx_intr_handler(adapter);
|
|
|
- if (cause & ULP_RX)
|
|
|
+ if (cause & ULP_RX_F)
|
|
|
ulprx_intr_handler(adapter);
|
|
|
- if (cause & CPL_SWITCH)
|
|
|
+ if (cause & CPL_SWITCH_F)
|
|
|
cplsw_intr_handler(adapter);
|
|
|
- if (cause & SGE)
|
|
|
+ if (cause & SGE_F)
|
|
|
sge_intr_handler(adapter);
|
|
|
- if (cause & ULP_TX)
|
|
|
+ if (cause & ULP_TX_F)
|
|
|
ulptx_intr_handler(adapter);
|
|
|
|
|
|
/* Clear the interrupts just processed for which we are the master. */
|
|
|
- t4_write_reg(adapter, PL_INT_CAUSE, cause & GLBL_INTR_MASK);
|
|
|
- (void) t4_read_reg(adapter, PL_INT_CAUSE); /* flush */
|
|
|
+ t4_write_reg(adapter, PL_INT_CAUSE_A, cause & GLBL_INTR_MASK);
|
|
|
+ (void)t4_read_reg(adapter, PL_INT_CAUSE_A); /* flush */
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
@@ -2023,19 +2033,19 @@ int t4_slow_intr_handler(struct adapter *adapter)
|
|
|
*/
|
|
|
void t4_intr_enable(struct adapter *adapter)
|
|
|
{
|
|
|
- u32 pf = SOURCEPF_GET(t4_read_reg(adapter, PL_WHOAMI));
|
|
|
-
|
|
|
- t4_write_reg(adapter, SGE_INT_ENABLE3, ERR_CPL_EXCEED_IQE_SIZE |
|
|
|
- ERR_INVALID_CIDX_INC | ERR_CPL_OPCODE_0 |
|
|
|
- ERR_DROPPED_DB | ERR_DATA_CPL_ON_HIGH_QID1 |
|
|
|
- ERR_DATA_CPL_ON_HIGH_QID0 | ERR_BAD_DB_PIDX3 |
|
|
|
- ERR_BAD_DB_PIDX2 | ERR_BAD_DB_PIDX1 |
|
|
|
- ERR_BAD_DB_PIDX0 | ERR_ING_CTXT_PRIO |
|
|
|
- ERR_EGR_CTXT_PRIO | INGRESS_SIZE_ERR |
|
|
|
- DBFIFO_HP_INT | DBFIFO_LP_INT |
|
|
|
- EGRESS_SIZE_ERR);
|
|
|
- t4_write_reg(adapter, MYPF_REG(PL_PF_INT_ENABLE), PF_INTR_MASK);
|
|
|
- t4_set_reg_field(adapter, PL_INT_MAP0, 0, 1 << pf);
|
|
|
+ u32 pf = SOURCEPF_G(t4_read_reg(adapter, PL_WHOAMI_A));
|
|
|
+
|
|
|
+ t4_write_reg(adapter, SGE_INT_ENABLE3_A, ERR_CPL_EXCEED_IQE_SIZE_F |
|
|
|
+ ERR_INVALID_CIDX_INC_F | ERR_CPL_OPCODE_0_F |
|
|
|
+ ERR_DROPPED_DB_F | ERR_DATA_CPL_ON_HIGH_QID1_F |
|
|
|
+ ERR_DATA_CPL_ON_HIGH_QID0_F | ERR_BAD_DB_PIDX3_F |
|
|
|
+ ERR_BAD_DB_PIDX2_F | ERR_BAD_DB_PIDX1_F |
|
|
|
+ ERR_BAD_DB_PIDX0_F | ERR_ING_CTXT_PRIO_F |
|
|
|
+ ERR_EGR_CTXT_PRIO_F | INGRESS_SIZE_ERR_F |
|
|
|
+ DBFIFO_HP_INT_F | DBFIFO_LP_INT_F |
|
|
|
+ EGRESS_SIZE_ERR_F);
|
|
|
+ t4_write_reg(adapter, MYPF_REG(PL_PF_INT_ENABLE_A), PF_INTR_MASK);
|
|
|
+ t4_set_reg_field(adapter, PL_INT_MAP0_A, 0, 1 << pf);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2048,10 +2058,10 @@ void t4_intr_enable(struct adapter *adapter)
|
|
|
*/
|
|
|
void t4_intr_disable(struct adapter *adapter)
|
|
|
{
|
|
|
- u32 pf = SOURCEPF_GET(t4_read_reg(adapter, PL_WHOAMI));
|
|
|
+ u32 pf = SOURCEPF_G(t4_read_reg(adapter, PL_WHOAMI_A));
|
|
|
|
|
|
- t4_write_reg(adapter, MYPF_REG(PL_PF_INT_ENABLE), 0);
|
|
|
- t4_set_reg_field(adapter, PL_INT_MAP0, 1 << pf, 0);
|
|
|
+ t4_write_reg(adapter, MYPF_REG(PL_PF_INT_ENABLE_A), 0);
|
|
|
+ t4_set_reg_field(adapter, PL_INT_MAP0_A, 1 << pf, 0);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2178,23 +2188,23 @@ int t4_config_glbl_rss(struct adapter *adapter, int mbox, unsigned int mode,
|
|
|
void t4_tp_get_tcp_stats(struct adapter *adap, struct tp_tcp_stats *v4,
|
|
|
struct tp_tcp_stats *v6)
|
|
|
{
|
|
|
- u32 val[TP_MIB_TCP_RXT_SEG_LO - TP_MIB_TCP_OUT_RST + 1];
|
|
|
+ u32 val[TP_MIB_TCP_RXT_SEG_LO_A - TP_MIB_TCP_OUT_RST_A + 1];
|
|
|
|
|
|
-#define STAT_IDX(x) ((TP_MIB_TCP_##x) - TP_MIB_TCP_OUT_RST)
|
|
|
+#define STAT_IDX(x) ((TP_MIB_TCP_##x##_A) - TP_MIB_TCP_OUT_RST_A)
|
|
|
#define STAT(x) val[STAT_IDX(x)]
|
|
|
#define STAT64(x) (((u64)STAT(x##_HI) << 32) | STAT(x##_LO))
|
|
|
|
|
|
if (v4) {
|
|
|
- t4_read_indirect(adap, TP_MIB_INDEX, TP_MIB_DATA, val,
|
|
|
- ARRAY_SIZE(val), TP_MIB_TCP_OUT_RST);
|
|
|
+ t4_read_indirect(adap, TP_MIB_INDEX_A, TP_MIB_DATA_A, val,
|
|
|
+ ARRAY_SIZE(val), TP_MIB_TCP_OUT_RST_A);
|
|
|
v4->tcpOutRsts = STAT(OUT_RST);
|
|
|
v4->tcpInSegs = STAT64(IN_SEG);
|
|
|
v4->tcpOutSegs = STAT64(OUT_SEG);
|
|
|
v4->tcpRetransSegs = STAT64(RXT_SEG);
|
|
|
}
|
|
|
if (v6) {
|
|
|
- t4_read_indirect(adap, TP_MIB_INDEX, TP_MIB_DATA, val,
|
|
|
- ARRAY_SIZE(val), TP_MIB_TCP_V6OUT_RST);
|
|
|
+ t4_read_indirect(adap, TP_MIB_INDEX_A, TP_MIB_DATA_A, val,
|
|
|
+ ARRAY_SIZE(val), TP_MIB_TCP_V6OUT_RST_A);
|
|
|
v6->tcpOutRsts = STAT(OUT_RST);
|
|
|
v6->tcpInSegs = STAT64(IN_SEG);
|
|
|
v6->tcpOutSegs = STAT64(OUT_SEG);
|
|
@@ -2219,12 +2229,12 @@ void t4_read_mtu_tbl(struct adapter *adap, u16 *mtus, u8 *mtu_log)
|
|
|
int i;
|
|
|
|
|
|
for (i = 0; i < NMTUS; ++i) {
|
|
|
- t4_write_reg(adap, TP_MTU_TABLE,
|
|
|
- MTUINDEX(0xff) | MTUVALUE(i));
|
|
|
- v = t4_read_reg(adap, TP_MTU_TABLE);
|
|
|
- mtus[i] = MTUVALUE_GET(v);
|
|
|
+ t4_write_reg(adap, TP_MTU_TABLE_A,
|
|
|
+ MTUINDEX_V(0xff) | MTUVALUE_V(i));
|
|
|
+ v = t4_read_reg(adap, TP_MTU_TABLE_A);
|
|
|
+ mtus[i] = MTUVALUE_G(v);
|
|
|
if (mtu_log)
|
|
|
- mtu_log[i] = MTUWIDTH_GET(v);
|
|
|
+ mtu_log[i] = MTUWIDTH_G(v);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2240,9 +2250,9 @@ void t4_read_mtu_tbl(struct adapter *adap, u16 *mtus, u8 *mtu_log)
|
|
|
void t4_tp_wr_bits_indirect(struct adapter *adap, unsigned int addr,
|
|
|
unsigned int mask, unsigned int val)
|
|
|
{
|
|
|
- t4_write_reg(adap, TP_PIO_ADDR, addr);
|
|
|
- val |= t4_read_reg(adap, TP_PIO_DATA) & ~mask;
|
|
|
- t4_write_reg(adap, TP_PIO_DATA, val);
|
|
|
+ t4_write_reg(adap, TP_PIO_ADDR_A, addr);
|
|
|
+ val |= t4_read_reg(adap, TP_PIO_DATA_A) & ~mask;
|
|
|
+ t4_write_reg(adap, TP_PIO_DATA_A, val);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2321,8 +2331,8 @@ void t4_load_mtus(struct adapter *adap, const unsigned short *mtus,
|
|
|
|
|
|
if (!(mtu & ((1 << log2) >> 2))) /* round */
|
|
|
log2--;
|
|
|
- t4_write_reg(adap, TP_MTU_TABLE, MTUINDEX(i) |
|
|
|
- MTUWIDTH(log2) | MTUVALUE(mtu));
|
|
|
+ t4_write_reg(adap, TP_MTU_TABLE_A, MTUINDEX_V(i) |
|
|
|
+ MTUWIDTH_V(log2) | MTUVALUE_V(mtu));
|
|
|
|
|
|
for (w = 0; w < NCCTRL_WIN; ++w) {
|
|
|
unsigned int inc;
|
|
@@ -2330,7 +2340,7 @@ void t4_load_mtus(struct adapter *adap, const unsigned short *mtus,
|
|
|
inc = max(((mtu - 40) * alpha[w]) / avg_pkts[w],
|
|
|
CC_MIN_INCR);
|
|
|
|
|
|
- t4_write_reg(adap, TP_CCTRL_TABLE, (i << 21) |
|
|
|
+ t4_write_reg(adap, TP_CCTRL_TABLE_A, (i << 21) |
|
|
|
(w << 16) | (beta[w] << 13) | inc);
|
|
|
}
|
|
|
}
|
|
@@ -2347,7 +2357,7 @@ void t4_load_mtus(struct adapter *adap, const unsigned short *mtus,
|
|
|
*/
|
|
|
static unsigned int get_mps_bg_map(struct adapter *adap, int idx)
|
|
|
{
|
|
|
- u32 n = NUMPORTS_GET(t4_read_reg(adap, MPS_CMN_CTL));
|
|
|
+ u32 n = NUMPORTS_G(t4_read_reg(adap, MPS_CMN_CTL_A));
|
|
|
|
|
|
if (n == 0)
|
|
|
return idx == 0 ? 0xf : 0;
|
|
@@ -2485,11 +2495,11 @@ void t4_wol_magic_enable(struct adapter *adap, unsigned int port,
|
|
|
if (is_t4(adap->params.chip)) {
|
|
|
mag_id_reg_l = PORT_REG(port, XGMAC_PORT_MAGIC_MACID_LO);
|
|
|
mag_id_reg_h = PORT_REG(port, XGMAC_PORT_MAGIC_MACID_HI);
|
|
|
- port_cfg_reg = PORT_REG(port, XGMAC_PORT_CFG2);
|
|
|
+ port_cfg_reg = PORT_REG(port, XGMAC_PORT_CFG2_A);
|
|
|
} else {
|
|
|
mag_id_reg_l = T5_PORT_REG(port, MAC_PORT_MAGIC_MACID_LO);
|
|
|
mag_id_reg_h = T5_PORT_REG(port, MAC_PORT_MAGIC_MACID_HI);
|
|
|
- port_cfg_reg = T5_PORT_REG(port, MAC_PORT_CFG2);
|
|
|
+ port_cfg_reg = T5_PORT_REG(port, MAC_PORT_CFG2_A);
|
|
|
}
|
|
|
|
|
|
if (addr) {
|
|
@@ -2499,8 +2509,8 @@ void t4_wol_magic_enable(struct adapter *adap, unsigned int port,
|
|
|
t4_write_reg(adap, mag_id_reg_h,
|
|
|
(addr[0] << 8) | addr[1]);
|
|
|
}
|
|
|
- t4_set_reg_field(adap, port_cfg_reg, MAGICEN,
|
|
|
- addr ? MAGICEN : 0);
|
|
|
+ t4_set_reg_field(adap, port_cfg_reg, MAGICEN_F,
|
|
|
+ addr ? MAGICEN_F : 0);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2525,20 +2535,21 @@ int t4_wol_pat_enable(struct adapter *adap, unsigned int port, unsigned int map,
|
|
|
u32 port_cfg_reg;
|
|
|
|
|
|
if (is_t4(adap->params.chip))
|
|
|
- port_cfg_reg = PORT_REG(port, XGMAC_PORT_CFG2);
|
|
|
+ port_cfg_reg = PORT_REG(port, XGMAC_PORT_CFG2_A);
|
|
|
else
|
|
|
- port_cfg_reg = T5_PORT_REG(port, MAC_PORT_CFG2);
|
|
|
+ port_cfg_reg = T5_PORT_REG(port, MAC_PORT_CFG2_A);
|
|
|
|
|
|
if (!enable) {
|
|
|
- t4_set_reg_field(adap, port_cfg_reg, PATEN, 0);
|
|
|
+ t4_set_reg_field(adap, port_cfg_reg, PATEN_F, 0);
|
|
|
return 0;
|
|
|
}
|
|
|
if (map > 0xff)
|
|
|
return -EINVAL;
|
|
|
|
|
|
#define EPIO_REG(name) \
|
|
|
- (is_t4(adap->params.chip) ? PORT_REG(port, XGMAC_PORT_EPIO_##name) : \
|
|
|
- T5_PORT_REG(port, MAC_PORT_EPIO_##name))
|
|
|
+ (is_t4(adap->params.chip) ? \
|
|
|
+ PORT_REG(port, XGMAC_PORT_EPIO_##name##_A) : \
|
|
|
+ T5_PORT_REG(port, MAC_PORT_EPIO_##name##_A))
|
|
|
|
|
|
t4_write_reg(adap, EPIO_REG(DATA1), mask0 >> 32);
|
|
|
t4_write_reg(adap, EPIO_REG(DATA2), mask1);
|
|
@@ -2550,21 +2561,21 @@ int t4_wol_pat_enable(struct adapter *adap, unsigned int port, unsigned int map,
|
|
|
|
|
|
/* write byte masks */
|
|
|
t4_write_reg(adap, EPIO_REG(DATA0), mask0);
|
|
|
- t4_write_reg(adap, EPIO_REG(OP), ADDRESS(i) | EPIOWR);
|
|
|
+ t4_write_reg(adap, EPIO_REG(OP), ADDRESS_V(i) | EPIOWR_F);
|
|
|
t4_read_reg(adap, EPIO_REG(OP)); /* flush */
|
|
|
- if (t4_read_reg(adap, EPIO_REG(OP)) & SF_BUSY)
|
|
|
+ if (t4_read_reg(adap, EPIO_REG(OP)) & SF_BUSY_F)
|
|
|
return -ETIMEDOUT;
|
|
|
|
|
|
/* write CRC */
|
|
|
t4_write_reg(adap, EPIO_REG(DATA0), crc);
|
|
|
- t4_write_reg(adap, EPIO_REG(OP), ADDRESS(i + 32) | EPIOWR);
|
|
|
+ t4_write_reg(adap, EPIO_REG(OP), ADDRESS_V(i + 32) | EPIOWR_F);
|
|
|
t4_read_reg(adap, EPIO_REG(OP)); /* flush */
|
|
|
- if (t4_read_reg(adap, EPIO_REG(OP)) & SF_BUSY)
|
|
|
+ if (t4_read_reg(adap, EPIO_REG(OP)) & SF_BUSY_F)
|
|
|
return -ETIMEDOUT;
|
|
|
}
|
|
|
#undef EPIO_REG
|
|
|
|
|
|
- t4_set_reg_field(adap, PORT_REG(port, XGMAC_PORT_CFG2), 0, PATEN);
|
|
|
+ t4_set_reg_field(adap, PORT_REG(port, XGMAC_PORT_CFG2_A), 0, PATEN_F);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -2749,9 +2760,9 @@ void t4_sge_decode_idma_state(struct adapter *adapter, int state)
|
|
|
"IDMA_FL_SEND_COMPLETION_TO_IMSG",
|
|
|
};
|
|
|
static const u32 sge_regs[] = {
|
|
|
- SGE_DEBUG_DATA_LOW_INDEX_2,
|
|
|
- SGE_DEBUG_DATA_LOW_INDEX_3,
|
|
|
- SGE_DEBUG_DATA_HIGH_INDEX_10,
|
|
|
+ SGE_DEBUG_DATA_LOW_INDEX_2_A,
|
|
|
+ SGE_DEBUG_DATA_LOW_INDEX_3_A,
|
|
|
+ SGE_DEBUG_DATA_HIGH_INDEX_10_A,
|
|
|
};
|
|
|
const char **sge_idma_decode;
|
|
|
int sge_idma_decode_nstates;
|
|
@@ -2818,7 +2829,7 @@ retry:
|
|
|
if (ret < 0) {
|
|
|
if ((ret == -EBUSY || ret == -ETIMEDOUT) && retries-- > 0)
|
|
|
goto retry;
|
|
|
- if (t4_read_reg(adap, MA_PCIE_FW) & PCIE_FW_ERR)
|
|
|
+ if (t4_read_reg(adap, PCIE_FW_A) & PCIE_FW_ERR_F)
|
|
|
t4_report_fw_error(adap);
|
|
|
return ret;
|
|
|
}
|
|
@@ -2868,8 +2879,8 @@ retry:
|
|
|
* timeout ... and then retry if we haven't exhausted
|
|
|
* our retries ...
|
|
|
*/
|
|
|
- pcie_fw = t4_read_reg(adap, MA_PCIE_FW);
|
|
|
- if (!(pcie_fw & (PCIE_FW_ERR|PCIE_FW_INIT))) {
|
|
|
+ pcie_fw = t4_read_reg(adap, PCIE_FW_A);
|
|
|
+ if (!(pcie_fw & (PCIE_FW_ERR_F|PCIE_FW_INIT_F))) {
|
|
|
if (waiting <= 0) {
|
|
|
if (retries-- > 0)
|
|
|
goto retry;
|
|
@@ -2884,9 +2895,9 @@ retry:
|
|
|
* report errors preferentially.
|
|
|
*/
|
|
|
if (state) {
|
|
|
- if (pcie_fw & PCIE_FW_ERR)
|
|
|
+ if (pcie_fw & PCIE_FW_ERR_F)
|
|
|
*state = DEV_STATE_ERR;
|
|
|
- else if (pcie_fw & PCIE_FW_INIT)
|
|
|
+ else if (pcie_fw & PCIE_FW_INIT_F)
|
|
|
*state = DEV_STATE_INIT;
|
|
|
}
|
|
|
|
|
@@ -2896,7 +2907,7 @@ retry:
|
|
|
* for our caller.
|
|
|
*/
|
|
|
if (master_mbox == PCIE_FW_MASTER_M &&
|
|
|
- (pcie_fw & PCIE_FW_MASTER_VLD))
|
|
|
+ (pcie_fw & PCIE_FW_MASTER_VLD_F))
|
|
|
master_mbox = PCIE_FW_MASTER_G(pcie_fw);
|
|
|
break;
|
|
|
}
|
|
@@ -2985,7 +2996,7 @@ static int t4_fw_halt(struct adapter *adap, unsigned int mbox, int force)
|
|
|
|
|
|
memset(&c, 0, sizeof(c));
|
|
|
INIT_CMD(c, RESET, WRITE);
|
|
|
- c.val = htonl(PIORST | PIORSTMODE);
|
|
|
+ c.val = htonl(PIORST_F | PIORSTMODE_F);
|
|
|
c.halt_pkd = htonl(FW_RESET_CMD_HALT_F);
|
|
|
ret = t4_wr_mbox(adap, mbox, &c, sizeof(c), NULL);
|
|
|
}
|
|
@@ -3004,8 +3015,8 @@ static int t4_fw_halt(struct adapter *adap, unsigned int mbox, int force)
|
|
|
* rather than a RESET ... if it's new enough to understand that ...
|
|
|
*/
|
|
|
if (ret == 0 || force) {
|
|
|
- t4_set_reg_field(adap, CIM_BOOT_CFG, UPCRST, UPCRST);
|
|
|
- t4_set_reg_field(adap, PCIE_FW, PCIE_FW_HALT_F,
|
|
|
+ t4_set_reg_field(adap, CIM_BOOT_CFG_A, UPCRST_F, UPCRST_F);
|
|
|
+ t4_set_reg_field(adap, PCIE_FW_A, PCIE_FW_HALT_F,
|
|
|
PCIE_FW_HALT_F);
|
|
|
}
|
|
|
|
|
@@ -3045,7 +3056,7 @@ static int t4_fw_restart(struct adapter *adap, unsigned int mbox, int reset)
|
|
|
* doing it automatically, we need to clear the PCIE_FW.HALT
|
|
|
* bit.
|
|
|
*/
|
|
|
- t4_set_reg_field(adap, PCIE_FW, PCIE_FW_HALT_F, 0);
|
|
|
+ t4_set_reg_field(adap, PCIE_FW_A, PCIE_FW_HALT_F, 0);
|
|
|
|
|
|
/*
|
|
|
* If we've been given a valid mailbox, first try to get the
|
|
@@ -3055,21 +3066,21 @@ static int t4_fw_restart(struct adapter *adap, unsigned int mbox, int reset)
|
|
|
* hitting the chip with a hammer.
|
|
|
*/
|
|
|
if (mbox <= PCIE_FW_MASTER_M) {
|
|
|
- t4_set_reg_field(adap, CIM_BOOT_CFG, UPCRST, 0);
|
|
|
+ t4_set_reg_field(adap, CIM_BOOT_CFG_A, UPCRST_F, 0);
|
|
|
msleep(100);
|
|
|
if (t4_fw_reset(adap, mbox,
|
|
|
- PIORST | PIORSTMODE) == 0)
|
|
|
+ PIORST_F | PIORSTMODE_F) == 0)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- t4_write_reg(adap, PL_RST, PIORST | PIORSTMODE);
|
|
|
+ t4_write_reg(adap, PL_RST_A, PIORST_F | PIORSTMODE_F);
|
|
|
msleep(2000);
|
|
|
} else {
|
|
|
int ms;
|
|
|
|
|
|
- t4_set_reg_field(adap, CIM_BOOT_CFG, UPCRST, 0);
|
|
|
+ t4_set_reg_field(adap, CIM_BOOT_CFG_A, UPCRST_F, 0);
|
|
|
for (ms = 0; ms < FW_CMD_MAX_TIMEOUT; ) {
|
|
|
- if (!(t4_read_reg(adap, PCIE_FW) & PCIE_FW_HALT_F))
|
|
|
+ if (!(t4_read_reg(adap, PCIE_FW_A) & PCIE_FW_HALT_F))
|
|
|
return 0;
|
|
|
msleep(100);
|
|
|
ms += 100;
|
|
@@ -3148,22 +3159,23 @@ int t4_fixup_host_params(struct adapter *adap, unsigned int page_size,
|
|
|
unsigned int fl_align = cache_line_size < 32 ? 32 : cache_line_size;
|
|
|
unsigned int fl_align_log = fls(fl_align) - 1;
|
|
|
|
|
|
- t4_write_reg(adap, SGE_HOST_PAGE_SIZE,
|
|
|
- HOSTPAGESIZEPF0(sge_hps) |
|
|
|
- HOSTPAGESIZEPF1(sge_hps) |
|
|
|
- HOSTPAGESIZEPF2(sge_hps) |
|
|
|
- HOSTPAGESIZEPF3(sge_hps) |
|
|
|
- HOSTPAGESIZEPF4(sge_hps) |
|
|
|
- HOSTPAGESIZEPF5(sge_hps) |
|
|
|
- HOSTPAGESIZEPF6(sge_hps) |
|
|
|
- HOSTPAGESIZEPF7(sge_hps));
|
|
|
+ t4_write_reg(adap, SGE_HOST_PAGE_SIZE_A,
|
|
|
+ HOSTPAGESIZEPF0_V(sge_hps) |
|
|
|
+ HOSTPAGESIZEPF1_V(sge_hps) |
|
|
|
+ HOSTPAGESIZEPF2_V(sge_hps) |
|
|
|
+ HOSTPAGESIZEPF3_V(sge_hps) |
|
|
|
+ HOSTPAGESIZEPF4_V(sge_hps) |
|
|
|
+ HOSTPAGESIZEPF5_V(sge_hps) |
|
|
|
+ HOSTPAGESIZEPF6_V(sge_hps) |
|
|
|
+ HOSTPAGESIZEPF7_V(sge_hps));
|
|
|
|
|
|
if (is_t4(adap->params.chip)) {
|
|
|
- t4_set_reg_field(adap, SGE_CONTROL,
|
|
|
- INGPADBOUNDARY_MASK |
|
|
|
- EGRSTATUSPAGESIZE_MASK,
|
|
|
- INGPADBOUNDARY(fl_align_log - 5) |
|
|
|
- EGRSTATUSPAGESIZE(stat_len != 64));
|
|
|
+ t4_set_reg_field(adap, SGE_CONTROL_A,
|
|
|
+ INGPADBOUNDARY_V(INGPADBOUNDARY_M) |
|
|
|
+ EGRSTATUSPAGESIZE_F,
|
|
|
+ INGPADBOUNDARY_V(fl_align_log -
|
|
|
+ INGPADBOUNDARY_SHIFT_X) |
|
|
|
+ EGRSTATUSPAGESIZE_V(stat_len != 64));
|
|
|
} else {
|
|
|
/* T5 introduced the separation of the Free List Padding and
|
|
|
* Packing Boundaries. Thus, we can select a smaller Padding
|
|
@@ -3193,15 +3205,15 @@ int t4_fixup_host_params(struct adapter *adap, unsigned int page_size,
|
|
|
fl_align = 64;
|
|
|
fl_align_log = 6;
|
|
|
}
|
|
|
- t4_set_reg_field(adap, SGE_CONTROL,
|
|
|
- INGPADBOUNDARY_MASK |
|
|
|
- EGRSTATUSPAGESIZE_MASK,
|
|
|
- INGPADBOUNDARY(INGPCIEBOUNDARY_32B_X) |
|
|
|
- EGRSTATUSPAGESIZE(stat_len != 64));
|
|
|
+ t4_set_reg_field(adap, SGE_CONTROL_A,
|
|
|
+ INGPADBOUNDARY_V(INGPADBOUNDARY_M) |
|
|
|
+ EGRSTATUSPAGESIZE_F,
|
|
|
+ INGPADBOUNDARY_V(INGPCIEBOUNDARY_32B_X) |
|
|
|
+ EGRSTATUSPAGESIZE_V(stat_len != 64));
|
|
|
t4_set_reg_field(adap, SGE_CONTROL2_A,
|
|
|
INGPACKBOUNDARY_V(INGPACKBOUNDARY_M),
|
|
|
INGPACKBOUNDARY_V(fl_align_log -
|
|
|
- INGPACKBOUNDARY_SHIFT_X));
|
|
|
+ INGPACKBOUNDARY_SHIFT_X));
|
|
|
}
|
|
|
/*
|
|
|
* Adjust various SGE Free List Host Buffer Sizes.
|
|
@@ -3224,15 +3236,15 @@ int t4_fixup_host_params(struct adapter *adap, unsigned int page_size,
|
|
|
* Default Firmware Configuration File but we need to adjust it for
|
|
|
* this host's cache line size.
|
|
|
*/
|
|
|
- t4_write_reg(adap, SGE_FL_BUFFER_SIZE0, page_size);
|
|
|
- t4_write_reg(adap, SGE_FL_BUFFER_SIZE2,
|
|
|
- (t4_read_reg(adap, SGE_FL_BUFFER_SIZE2) + fl_align-1)
|
|
|
+ t4_write_reg(adap, SGE_FL_BUFFER_SIZE0_A, page_size);
|
|
|
+ t4_write_reg(adap, SGE_FL_BUFFER_SIZE2_A,
|
|
|
+ (t4_read_reg(adap, SGE_FL_BUFFER_SIZE2_A) + fl_align-1)
|
|
|
& ~(fl_align-1));
|
|
|
- t4_write_reg(adap, SGE_FL_BUFFER_SIZE3,
|
|
|
- (t4_read_reg(adap, SGE_FL_BUFFER_SIZE3) + fl_align-1)
|
|
|
+ t4_write_reg(adap, SGE_FL_BUFFER_SIZE3_A,
|
|
|
+ (t4_read_reg(adap, SGE_FL_BUFFER_SIZE3_A) + fl_align-1)
|
|
|
& ~(fl_align-1));
|
|
|
|
|
|
- t4_write_reg(adap, ULP_RX_TDDP_PSZ, HPZ0(page_shift - 12));
|
|
|
+ t4_write_reg(adap, ULP_RX_TDDP_PSZ_A, HPZ0_V(page_shift - 12));
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -3917,12 +3929,12 @@ int t4_wait_dev_ready(void __iomem *regs)
|
|
|
{
|
|
|
u32 whoami;
|
|
|
|
|
|
- whoami = readl(regs + PL_WHOAMI);
|
|
|
+ whoami = readl(regs + PL_WHOAMI_A);
|
|
|
if (whoami != 0xffffffff && whoami != CIM_PF_NOACCESS)
|
|
|
return 0;
|
|
|
|
|
|
msleep(500);
|
|
|
- whoami = readl(regs + PL_WHOAMI);
|
|
|
+ whoami = readl(regs + PL_WHOAMI_A);
|
|
|
return (whoami != 0xffffffff && whoami != CIM_PF_NOACCESS ? 0 : -EIO);
|
|
|
}
|
|
|
|
|
@@ -3946,7 +3958,7 @@ static int get_flash_params(struct adapter *adap)
|
|
|
ret = sf1_write(adap, 1, 1, 0, SF_RD_ID);
|
|
|
if (!ret)
|
|
|
ret = sf1_read(adap, 3, 0, 1, &info);
|
|
|
- t4_write_reg(adap, SF_OP, 0); /* unlock SF */
|
|
|
+ t4_write_reg(adap, SF_OP_A, 0); /* unlock SF */
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
@@ -3969,7 +3981,7 @@ static int get_flash_params(struct adapter *adap)
|
|
|
return -EINVAL;
|
|
|
adap->params.sf_size = 1 << info;
|
|
|
adap->params.sf_fw_start =
|
|
|
- t4_read_reg(adap, CIM_BOOT_CFG) & BOOTADDR_MASK;
|
|
|
+ t4_read_reg(adap, CIM_BOOT_CFG_A) & BOOTADDR_M;
|
|
|
|
|
|
if (adap->params.sf_size < FLASH_MIN_SIZE)
|
|
|
dev_warn(adap->pdev_dev, "WARNING!!! FLASH size %#x < %#x!!!\n",
|
|
@@ -3993,7 +4005,7 @@ int t4_prep_adapter(struct adapter *adapter)
|
|
|
u32 pl_rev;
|
|
|
|
|
|
get_pci_mode(adapter, &adapter->params.pci);
|
|
|
- pl_rev = G_REV(t4_read_reg(adapter, PL_REV));
|
|
|
+ pl_rev = REV_G(t4_read_reg(adapter, PL_REV_A));
|
|
|
|
|
|
ret = get_flash_params(adapter);
|
|
|
if (ret < 0) {
|
|
@@ -4133,7 +4145,7 @@ int t4_init_sge_params(struct adapter *adapter)
|
|
|
|
|
|
/* Extract the SGE Page Size for our PF.
|
|
|
*/
|
|
|
- hps = t4_read_reg(adapter, SGE_HOST_PAGE_SIZE);
|
|
|
+ hps = t4_read_reg(adapter, SGE_HOST_PAGE_SIZE_A);
|
|
|
s_hps = (HOSTPAGESIZEPF0_S +
|
|
|
(HOSTPAGESIZEPF1_S - HOSTPAGESIZEPF0_S) * adapter->fn);
|
|
|
sge_params->hps = ((hps >> s_hps) & HOSTPAGESIZEPF0_M);
|
|
@@ -4142,10 +4154,10 @@ int t4_init_sge_params(struct adapter *adapter)
|
|
|
*/
|
|
|
s_qpp = (QUEUESPERPAGEPF0_S +
|
|
|
(QUEUESPERPAGEPF1_S - QUEUESPERPAGEPF0_S) * adapter->fn);
|
|
|
- qpp = t4_read_reg(adapter, SGE_EGRESS_QUEUES_PER_PAGE_PF);
|
|
|
- sge_params->eq_qpp = ((qpp >> s_qpp) & QUEUESPERPAGEPF0_MASK);
|
|
|
- qpp = t4_read_reg(adapter, SGE_INGRESS_QUEUES_PER_PAGE_PF);
|
|
|
- sge_params->iq_qpp = ((qpp >> s_qpp) & QUEUESPERPAGEPF0_MASK);
|
|
|
+ qpp = t4_read_reg(adapter, SGE_EGRESS_QUEUES_PER_PAGE_PF_A);
|
|
|
+ sge_params->eq_qpp = ((qpp >> s_qpp) & QUEUESPERPAGEPF0_M);
|
|
|
+ qpp = t4_read_reg(adapter, SGE_INGRESS_QUEUES_PER_PAGE_PF_A);
|
|
|
+ sge_params->iq_qpp = ((qpp >> s_qpp) & QUEUESPERPAGEPF0_M);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -4161,9 +4173,9 @@ int t4_init_tp_params(struct adapter *adap)
|
|
|
int chan;
|
|
|
u32 v;
|
|
|
|
|
|
- v = t4_read_reg(adap, TP_TIMER_RESOLUTION);
|
|
|
- adap->params.tp.tre = TIMERRESOLUTION_GET(v);
|
|
|
- adap->params.tp.dack_re = DELAYEDACKRESOLUTION_GET(v);
|
|
|
+ v = t4_read_reg(adap, TP_TIMER_RESOLUTION_A);
|
|
|
+ adap->params.tp.tre = TIMERRESOLUTION_G(v);
|
|
|
+ adap->params.tp.dack_re = DELAYEDACKRESOLUTION_G(v);
|
|
|
|
|
|
/* MODQ_REQ_MAP defaults to setting queues 0-3 to chan 0-3 */
|
|
|
for (chan = 0; chan < NCHAN; chan++)
|
|
@@ -4172,27 +4184,27 @@ int t4_init_tp_params(struct adapter *adap)
|
|
|
/* Cache the adapter's Compressed Filter Mode and global Incress
|
|
|
* Configuration.
|
|
|
*/
|
|
|
- t4_read_indirect(adap, TP_PIO_ADDR, TP_PIO_DATA,
|
|
|
+ t4_read_indirect(adap, TP_PIO_ADDR_A, TP_PIO_DATA_A,
|
|
|
&adap->params.tp.vlan_pri_map, 1,
|
|
|
- TP_VLAN_PRI_MAP);
|
|
|
- t4_read_indirect(adap, TP_PIO_ADDR, TP_PIO_DATA,
|
|
|
+ TP_VLAN_PRI_MAP_A);
|
|
|
+ t4_read_indirect(adap, TP_PIO_ADDR_A, TP_PIO_DATA_A,
|
|
|
&adap->params.tp.ingress_config, 1,
|
|
|
- TP_INGRESS_CONFIG);
|
|
|
+ TP_INGRESS_CONFIG_A);
|
|
|
|
|
|
/* Now that we have TP_VLAN_PRI_MAP cached, we can calculate the field
|
|
|
* shift positions of several elements of the Compressed Filter Tuple
|
|
|
* for this adapter which we need frequently ...
|
|
|
*/
|
|
|
- adap->params.tp.vlan_shift = t4_filter_field_shift(adap, F_VLAN);
|
|
|
- adap->params.tp.vnic_shift = t4_filter_field_shift(adap, F_VNIC_ID);
|
|
|
- adap->params.tp.port_shift = t4_filter_field_shift(adap, F_PORT);
|
|
|
+ adap->params.tp.vlan_shift = t4_filter_field_shift(adap, VLAN_F);
|
|
|
+ adap->params.tp.vnic_shift = t4_filter_field_shift(adap, VNIC_ID_F);
|
|
|
+ adap->params.tp.port_shift = t4_filter_field_shift(adap, PORT_F);
|
|
|
adap->params.tp.protocol_shift = t4_filter_field_shift(adap,
|
|
|
- F_PROTOCOL);
|
|
|
+ PROTOCOL_F);
|
|
|
|
|
|
/* If TP_INGRESS_CONFIG.VNID == 0, then TP_VLAN_PRI_MAP.VNIC_ID
|
|
|
* represents the presense of an Outer VLAN instead of a VNIC ID.
|
|
|
*/
|
|
|
- if ((adap->params.tp.ingress_config & F_VNIC) == 0)
|
|
|
+ if ((adap->params.tp.ingress_config & VNIC_F) == 0)
|
|
|
adap->params.tp.vnic_shift = -1;
|
|
|
|
|
|
return 0;
|
|
@@ -4218,35 +4230,35 @@ int t4_filter_field_shift(const struct adapter *adap, int filter_sel)
|
|
|
|
|
|
for (sel = 1, field_shift = 0; sel < filter_sel; sel <<= 1) {
|
|
|
switch (filter_mode & sel) {
|
|
|
- case F_FCOE:
|
|
|
- field_shift += W_FT_FCOE;
|
|
|
+ case FCOE_F:
|
|
|
+ field_shift += FT_FCOE_W;
|
|
|
break;
|
|
|
- case F_PORT:
|
|
|
- field_shift += W_FT_PORT;
|
|
|
+ case PORT_F:
|
|
|
+ field_shift += FT_PORT_W;
|
|
|
break;
|
|
|
- case F_VNIC_ID:
|
|
|
- field_shift += W_FT_VNIC_ID;
|
|
|
+ case VNIC_ID_F:
|
|
|
+ field_shift += FT_VNIC_ID_W;
|
|
|
break;
|
|
|
- case F_VLAN:
|
|
|
- field_shift += W_FT_VLAN;
|
|
|
+ case VLAN_F:
|
|
|
+ field_shift += FT_VLAN_W;
|
|
|
break;
|
|
|
- case F_TOS:
|
|
|
- field_shift += W_FT_TOS;
|
|
|
+ case TOS_F:
|
|
|
+ field_shift += FT_TOS_W;
|
|
|
break;
|
|
|
- case F_PROTOCOL:
|
|
|
- field_shift += W_FT_PROTOCOL;
|
|
|
+ case PROTOCOL_F:
|
|
|
+ field_shift += FT_PROTOCOL_W;
|
|
|
break;
|
|
|
- case F_ETHERTYPE:
|
|
|
- field_shift += W_FT_ETHERTYPE;
|
|
|
+ case ETHERTYPE_F:
|
|
|
+ field_shift += FT_ETHERTYPE_W;
|
|
|
break;
|
|
|
- case F_MACMATCH:
|
|
|
- field_shift += W_FT_MACMATCH;
|
|
|
+ case MACMATCH_F:
|
|
|
+ field_shift += FT_MACMATCH_W;
|
|
|
break;
|
|
|
- case F_MPSHITTYPE:
|
|
|
- field_shift += W_FT_MPSHITTYPE;
|
|
|
+ case MPSHITTYPE_F:
|
|
|
+ field_shift += FT_MPSHITTYPE_W;
|
|
|
break;
|
|
|
- case F_FRAGMENTATION:
|
|
|
- field_shift += W_FT_FRAGMENTATION;
|
|
|
+ case FRAGMENTATION_F:
|
|
|
+ field_shift += FT_FRAGMENTATION_W;
|
|
|
break;
|
|
|
}
|
|
|
}
|