Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 203097
b: refs/heads/master
c: 02b5fb8
h: refs/heads/master
i:
  203095: 2b31f04
v: v3
  • Loading branch information
Dimitris Michailidis authored and David S. Miller committed Jun 19, 2010
1 parent 15f7741 commit 5720169
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 50 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: 900a659687aa6349e52f7b1e3f922b77afe89b90
refs/heads/master: 02b5fb8e14923ff9111de1a00004ccd593adaedb
109 changes: 60 additions & 49 deletions trunk/drivers/net/cxgb4/cxgb4_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -2709,6 +2709,65 @@ static void setup_memwin(struct adapter *adap)
WINDOW(ilog2(MEMWIN2_APERTURE) - 10));
}

static int adap_init1(struct adapter *adap, struct fw_caps_config_cmd *c)
{
u32 v;
int ret;

/* get device capabilities */
memset(c, 0, sizeof(*c));
c->op_to_write = htonl(FW_CMD_OP(FW_CAPS_CONFIG_CMD) |
FW_CMD_REQUEST | FW_CMD_READ);
c->retval_len16 = htonl(FW_LEN16(*c));
ret = t4_wr_mbox(adap, 0, c, sizeof(*c), c);
if (ret < 0)
return ret;

/* select capabilities we'll be using */
if (c->niccaps & htons(FW_CAPS_CONFIG_NIC_VM)) {
if (!vf_acls)
c->niccaps ^= htons(FW_CAPS_CONFIG_NIC_VM);
else
c->niccaps = htons(FW_CAPS_CONFIG_NIC_VM);
} else if (vf_acls) {
dev_err(adap->pdev_dev, "virtualization ACLs not supported");
return ret;
}
c->op_to_write = htonl(FW_CMD_OP(FW_CAPS_CONFIG_CMD) |
FW_CMD_REQUEST | FW_CMD_WRITE);
ret = t4_wr_mbox(adap, 0, c, sizeof(*c), NULL);
if (ret < 0)
return ret;

ret = t4_config_glbl_rss(adap, 0,
FW_RSS_GLB_CONFIG_CMD_MODE_BASICVIRTUAL,
FW_RSS_GLB_CONFIG_CMD_TNLMAPEN |
FW_RSS_GLB_CONFIG_CMD_TNLALLLKP);
if (ret < 0)
return ret;

ret = t4_cfg_pfvf(adap, 0, 0, 0, 64, 64, 64, 0, 0, 4, 0xf, 0xf, 16,
FW_CMD_CAP_PF, FW_CMD_CAP_PF);
if (ret < 0)
return ret;

t4_sge_init(adap);

/* get basic stuff going */
ret = t4_early_init(adap, 0);
if (ret < 0)
return ret;

/* tweak some settings */
t4_write_reg(adap, TP_SHIFT_CNT, 0x64f8849);
t4_write_reg(adap, ULP_RX_TDDP_PSZ, HPZ0(PAGE_SHIFT - 12));
t4_write_reg(adap, TP_PIO_ADDR, TP_INGRESS_CONFIG);
v = t4_read_reg(adap, TP_PIO_DATA);
t4_write_reg(adap, TP_PIO_DATA, v & ~CSUM_HAS_PSEUDO_HDR);
setup_memwin(adap);
return 0;
}

/*
* Max # of ATIDs. The absolute HW max is 16K but we keep it lower.
*/
Expand Down Expand Up @@ -2746,54 +2805,14 @@ static int adap_init0(struct adapter *adap)
if (ret < 0)
goto bye;

/* get device capabilities */
memset(&c, 0, sizeof(c));
c.op_to_write = htonl(FW_CMD_OP(FW_CAPS_CONFIG_CMD) |
FW_CMD_REQUEST | FW_CMD_READ);
c.retval_len16 = htonl(FW_LEN16(c));
ret = t4_wr_mbox(adap, 0, &c, sizeof(c), &c);
if (ret < 0)
goto bye;

/* select capabilities we'll be using */
if (c.niccaps & htons(FW_CAPS_CONFIG_NIC_VM)) {
if (!vf_acls)
c.niccaps ^= htons(FW_CAPS_CONFIG_NIC_VM);
else
c.niccaps = htons(FW_CAPS_CONFIG_NIC_VM);
} else if (vf_acls) {
dev_err(adap->pdev_dev, "virtualization ACLs not supported");
goto bye;
}
c.op_to_write = htonl(FW_CMD_OP(FW_CAPS_CONFIG_CMD) |
FW_CMD_REQUEST | FW_CMD_WRITE);
ret = t4_wr_mbox(adap, 0, &c, sizeof(c), NULL);
if (ret < 0)
goto bye;

ret = t4_config_glbl_rss(adap, 0,
FW_RSS_GLB_CONFIG_CMD_MODE_BASICVIRTUAL,
FW_RSS_GLB_CONFIG_CMD_TNLMAPEN |
FW_RSS_GLB_CONFIG_CMD_TNLALLLKP);
if (ret < 0)
goto bye;

ret = t4_cfg_pfvf(adap, 0, 0, 0, 64, 64, 64, 0, 0, 4, 0xf, 0xf, 16,
FW_CMD_CAP_PF, FW_CMD_CAP_PF);
if (ret < 0)
goto bye;

for (v = 0; v < SGE_NTIMERS - 1; v++)
adap->sge.timer_val[v] = min(intr_holdoff[v], MAX_SGE_TIMERVAL);
adap->sge.timer_val[SGE_NTIMERS - 1] = MAX_SGE_TIMERVAL;
adap->sge.counter_val[0] = 1;
for (v = 1; v < SGE_NCOUNTERS; v++)
adap->sge.counter_val[v] = min(intr_cnt[v - 1],
THRESHOLD_3_MASK);
t4_sge_init(adap);

/* get basic stuff going */
ret = t4_early_init(adap, 0);
ret = adap_init1(adap, &c);
if (ret < 0)
goto bye;

Expand Down Expand Up @@ -2876,14 +2895,6 @@ static int adap_init0(struct adapter *adap)
t4_read_mtu_tbl(adap, adap->params.mtus, NULL);
t4_load_mtus(adap, adap->params.mtus, adap->params.a_wnd,
adap->params.b_wnd);

/* tweak some settings */
t4_write_reg(adap, TP_SHIFT_CNT, 0x64f8849);
t4_write_reg(adap, ULP_RX_TDDP_PSZ, HPZ0(PAGE_SHIFT - 12));
t4_write_reg(adap, TP_PIO_ADDR, TP_INGRESS_CONFIG);
v = t4_read_reg(adap, TP_PIO_DATA);
t4_write_reg(adap, TP_PIO_DATA, v & ~CSUM_HAS_PSEUDO_HDR);
setup_memwin(adap);
return 0;

/*
Expand Down

0 comments on commit 5720169

Please sign in to comment.