aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Chan <mchan@broadcom.com>2013-09-02 14:42:29 -0400
committerDavid S. Miller <davem@davemloft.net>2013-09-04 00:27:26 -0400
commit5e65789f694f2977fb7169c500b4997772f5278b (patch)
treebdcd2a980fed215eae15c6b45473c64edd9e1d19
parent104a43edb264321a4d41850e98153b4fa8a9ef42 (diff)
cnic: Redefine BNX2X_HW_CID using existing bnx2x macros
to avoid duplication of the same logic. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/cnic.c25
-rw-r--r--drivers/net/ethernet/broadcom/cnic.h5
2 files changed, 18 insertions, 12 deletions
diff --git a/drivers/net/ethernet/broadcom/cnic.c b/drivers/net/ethernet/broadcom/cnic.c
index 3dadc81a3b3c..750b9a621397 100644
--- a/drivers/net/ethernet/broadcom/cnic.c
+++ b/drivers/net/ethernet/broadcom/cnic.c
@@ -1384,6 +1384,7 @@ static int cnic_submit_kwqe_16(struct cnic_dev *dev, u32 cmd, u32 cid,
1384 u32 type, union l5cm_specific_data *l5_data) 1384 u32 type, union l5cm_specific_data *l5_data)
1385{ 1385{
1386 struct cnic_local *cp = dev->cnic_priv; 1386 struct cnic_local *cp = dev->cnic_priv;
1387 struct bnx2x *bp = netdev_priv(dev->netdev);
1387 struct l5cm_spe kwqe; 1388 struct l5cm_spe kwqe;
1388 struct kwqe_16 *kwq[1]; 1389 struct kwqe_16 *kwq[1];
1389 u16 type_16; 1390 u16 type_16;
@@ -1391,7 +1392,7 @@ static int cnic_submit_kwqe_16(struct cnic_dev *dev, u32 cmd, u32 cid,
1391 1392
1392 kwqe.hdr.conn_and_cmd_data = 1393 kwqe.hdr.conn_and_cmd_data =
1393 cpu_to_le32(((cmd << SPE_HDR_CMD_ID_SHIFT) | 1394 cpu_to_le32(((cmd << SPE_HDR_CMD_ID_SHIFT) |
1394 BNX2X_HW_CID(cp, cid))); 1395 BNX2X_HW_CID(bp, cid)));
1395 1396
1396 type_16 = (type << SPE_HDR_CONN_TYPE_SHIFT) & SPE_HDR_CONN_TYPE; 1397 type_16 = (type << SPE_HDR_CONN_TYPE_SHIFT) & SPE_HDR_CONN_TYPE;
1397 type_16 |= (cp->pfid << SPE_HDR_FUNCTION_ID_SHIFT) & 1398 type_16 |= (cp->pfid << SPE_HDR_FUNCTION_ID_SHIFT) &
@@ -1690,7 +1691,7 @@ static int cnic_setup_bnx2x_ctx(struct cnic_dev *dev, struct kwqe *wqes[],
1690 struct cnic_context *ctx = &cp->ctx_tbl[req1->iscsi_conn_id]; 1691 struct cnic_context *ctx = &cp->ctx_tbl[req1->iscsi_conn_id];
1691 struct cnic_iscsi *iscsi = ctx->proto.iscsi; 1692 struct cnic_iscsi *iscsi = ctx->proto.iscsi;
1692 u32 cid = ctx->cid; 1693 u32 cid = ctx->cid;
1693 u32 hw_cid = BNX2X_HW_CID(cp, cid); 1694 u32 hw_cid = BNX2X_HW_CID(bp, cid);
1694 struct iscsi_context *ictx; 1695 struct iscsi_context *ictx;
1695 struct regpair context_addr; 1696 struct regpair context_addr;
1696 int i, j, n = 2, n_max; 1697 int i, j, n = 2, n_max;
@@ -1870,6 +1871,7 @@ static int cnic_bnx2x_iscsi_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
1870 struct iscsi_kwqe_conn_offload1 *req1; 1871 struct iscsi_kwqe_conn_offload1 *req1;
1871 struct iscsi_kwqe_conn_offload2 *req2; 1872 struct iscsi_kwqe_conn_offload2 *req2;
1872 struct cnic_local *cp = dev->cnic_priv; 1873 struct cnic_local *cp = dev->cnic_priv;
1874 struct bnx2x *bp = netdev_priv(dev->netdev);
1873 struct cnic_context *ctx; 1875 struct cnic_context *ctx;
1874 struct iscsi_kcqe kcqe; 1876 struct iscsi_kcqe kcqe;
1875 struct kcqe *cqes[1]; 1877 struct kcqe *cqes[1];
@@ -1923,7 +1925,7 @@ static int cnic_bnx2x_iscsi_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
1923 } 1925 }
1924 1926
1925 kcqe.completion_status = ISCSI_KCQE_COMPLETION_STATUS_SUCCESS; 1927 kcqe.completion_status = ISCSI_KCQE_COMPLETION_STATUS_SUCCESS;
1926 kcqe.iscsi_conn_context_id = BNX2X_HW_CID(cp, cp->ctx_tbl[l5_cid].cid); 1928 kcqe.iscsi_conn_context_id = BNX2X_HW_CID(bp, cp->ctx_tbl[l5_cid].cid);
1927 1929
1928done: 1930done:
1929 cqes[0] = (struct kcqe *) &kcqe; 1931 cqes[0] = (struct kcqe *) &kcqe;
@@ -1959,6 +1961,7 @@ static int cnic_bnx2x_iscsi_update(struct cnic_dev *dev, struct kwqe *kwqe)
1959static int cnic_bnx2x_destroy_ramrod(struct cnic_dev *dev, u32 l5_cid) 1961static int cnic_bnx2x_destroy_ramrod(struct cnic_dev *dev, u32 l5_cid)
1960{ 1962{
1961 struct cnic_local *cp = dev->cnic_priv; 1963 struct cnic_local *cp = dev->cnic_priv;
1964 struct bnx2x *bp = netdev_priv(dev->netdev);
1962 struct cnic_context *ctx = &cp->ctx_tbl[l5_cid]; 1965 struct cnic_context *ctx = &cp->ctx_tbl[l5_cid];
1963 union l5cm_specific_data l5_data; 1966 union l5cm_specific_data l5_data;
1964 int ret; 1967 int ret;
@@ -1967,7 +1970,7 @@ static int cnic_bnx2x_destroy_ramrod(struct cnic_dev *dev, u32 l5_cid)
1967 init_waitqueue_head(&ctx->waitq); 1970 init_waitqueue_head(&ctx->waitq);
1968 ctx->wait_cond = 0; 1971 ctx->wait_cond = 0;
1969 memset(&l5_data, 0, sizeof(l5_data)); 1972 memset(&l5_data, 0, sizeof(l5_data));
1970 hw_cid = BNX2X_HW_CID(cp, ctx->cid); 1973 hw_cid = BNX2X_HW_CID(bp, ctx->cid);
1971 1974
1972 ret = cnic_submit_kwqe_16(dev, RAMROD_CMD_ID_COMMON_CFC_DEL, 1975 ret = cnic_submit_kwqe_16(dev, RAMROD_CMD_ID_COMMON_CFC_DEL,
1973 hw_cid, NONE_CONNECTION_TYPE, &l5_data); 1976 hw_cid, NONE_CONNECTION_TYPE, &l5_data);
@@ -2252,11 +2255,12 @@ static int cnic_bnx2x_fcoe_stat(struct cnic_dev *dev, struct kwqe *kwqe)
2252 struct fcoe_stat_ramrod_params *fcoe_stat; 2255 struct fcoe_stat_ramrod_params *fcoe_stat;
2253 union l5cm_specific_data l5_data; 2256 union l5cm_specific_data l5_data;
2254 struct cnic_local *cp = dev->cnic_priv; 2257 struct cnic_local *cp = dev->cnic_priv;
2258 struct bnx2x *bp = netdev_priv(dev->netdev);
2255 int ret; 2259 int ret;
2256 u32 cid; 2260 u32 cid;
2257 2261
2258 req = (struct fcoe_kwqe_stat *) kwqe; 2262 req = (struct fcoe_kwqe_stat *) kwqe;
2259 cid = BNX2X_HW_CID(cp, cp->fcoe_init_cid); 2263 cid = BNX2X_HW_CID(bp, cp->fcoe_init_cid);
2260 2264
2261 fcoe_stat = cnic_get_kwqe_16_data(cp, BNX2X_FCOE_L5_CID_BASE, &l5_data); 2265 fcoe_stat = cnic_get_kwqe_16_data(cp, BNX2X_FCOE_L5_CID_BASE, &l5_data);
2262 if (!fcoe_stat) 2266 if (!fcoe_stat)
@@ -2275,6 +2279,7 @@ static int cnic_bnx2x_fcoe_init1(struct cnic_dev *dev, struct kwqe *wqes[],
2275{ 2279{
2276 int ret; 2280 int ret;
2277 struct cnic_local *cp = dev->cnic_priv; 2281 struct cnic_local *cp = dev->cnic_priv;
2282 struct bnx2x *bp = netdev_priv(dev->netdev);
2278 u32 cid; 2283 u32 cid;
2279 struct fcoe_init_ramrod_params *fcoe_init; 2284 struct fcoe_init_ramrod_params *fcoe_init;
2280 struct fcoe_kwqe_init1 *req1; 2285 struct fcoe_kwqe_init1 *req1;
@@ -2319,7 +2324,7 @@ static int cnic_bnx2x_fcoe_init1(struct cnic_dev *dev, struct kwqe *wqes[],
2319 fcoe_init->sb_id = HC_INDEX_FCOE_EQ_CONS; 2324 fcoe_init->sb_id = HC_INDEX_FCOE_EQ_CONS;
2320 cp->kcq2.sw_prod_idx = 0; 2325 cp->kcq2.sw_prod_idx = 0;
2321 2326
2322 cid = BNX2X_HW_CID(cp, cp->fcoe_init_cid); 2327 cid = BNX2X_HW_CID(bp, cp->fcoe_init_cid);
2323 ret = cnic_submit_kwqe_16(dev, FCOE_RAMROD_CMD_ID_INIT_FUNC, cid, 2328 ret = cnic_submit_kwqe_16(dev, FCOE_RAMROD_CMD_ID_INIT_FUNC, cid,
2324 FCOE_CONNECTION_TYPE, &l5_data); 2329 FCOE_CONNECTION_TYPE, &l5_data);
2325 *work = 3; 2330 *work = 3;
@@ -2332,6 +2337,7 @@ static int cnic_bnx2x_fcoe_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
2332 int ret = 0; 2337 int ret = 0;
2333 u32 cid = -1, l5_cid; 2338 u32 cid = -1, l5_cid;
2334 struct cnic_local *cp = dev->cnic_priv; 2339 struct cnic_local *cp = dev->cnic_priv;
2340 struct bnx2x *bp = netdev_priv(dev->netdev);
2335 struct fcoe_kwqe_conn_offload1 *req1; 2341 struct fcoe_kwqe_conn_offload1 *req1;
2336 struct fcoe_kwqe_conn_offload2 *req2; 2342 struct fcoe_kwqe_conn_offload2 *req2;
2337 struct fcoe_kwqe_conn_offload3 *req3; 2343 struct fcoe_kwqe_conn_offload3 *req3;
@@ -2374,7 +2380,7 @@ static int cnic_bnx2x_fcoe_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
2374 2380
2375 fctx = cnic_get_bnx2x_ctx(dev, cid, 1, &ctx_addr); 2381 fctx = cnic_get_bnx2x_ctx(dev, cid, 1, &ctx_addr);
2376 if (fctx) { 2382 if (fctx) {
2377 u32 hw_cid = BNX2X_HW_CID(cp, cid); 2383 u32 hw_cid = BNX2X_HW_CID(bp, cid);
2378 u32 val; 2384 u32 val;
2379 2385
2380 val = CDU_RSRVD_VALUE_TYPE_A(hw_cid, CDU_REGION_NUMBER_XCM_AG, 2386 val = CDU_RSRVD_VALUE_TYPE_A(hw_cid, CDU_REGION_NUMBER_XCM_AG,
@@ -2398,7 +2404,7 @@ static int cnic_bnx2x_fcoe_ofld1(struct cnic_dev *dev, struct kwqe *wqes[],
2398 memcpy(&fcoe_offload->offload_kwqe3, req3, sizeof(*req3)); 2404 memcpy(&fcoe_offload->offload_kwqe3, req3, sizeof(*req3));
2399 memcpy(&fcoe_offload->offload_kwqe4, req4, sizeof(*req4)); 2405 memcpy(&fcoe_offload->offload_kwqe4, req4, sizeof(*req4));
2400 2406
2401 cid = BNX2X_HW_CID(cp, cid); 2407 cid = BNX2X_HW_CID(bp, cid);
2402 ret = cnic_submit_kwqe_16(dev, FCOE_RAMROD_CMD_ID_OFFLOAD_CONN, cid, 2408 ret = cnic_submit_kwqe_16(dev, FCOE_RAMROD_CMD_ID_OFFLOAD_CONN, cid,
2403 FCOE_CONNECTION_TYPE, &l5_data); 2409 FCOE_CONNECTION_TYPE, &l5_data);
2404 if (!ret) 2410 if (!ret)
@@ -2556,13 +2562,14 @@ static int cnic_bnx2x_fcoe_fw_destroy(struct cnic_dev *dev, struct kwqe *kwqe)
2556 struct fcoe_kwqe_destroy *req; 2562 struct fcoe_kwqe_destroy *req;
2557 union l5cm_specific_data l5_data; 2563 union l5cm_specific_data l5_data;
2558 struct cnic_local *cp = dev->cnic_priv; 2564 struct cnic_local *cp = dev->cnic_priv;
2565 struct bnx2x *bp = netdev_priv(dev->netdev);
2559 int ret; 2566 int ret;
2560 u32 cid; 2567 u32 cid;
2561 2568
2562 cnic_bnx2x_delete_wait(dev, MAX_ISCSI_TBL_SZ); 2569 cnic_bnx2x_delete_wait(dev, MAX_ISCSI_TBL_SZ);
2563 2570
2564 req = (struct fcoe_kwqe_destroy *) kwqe; 2571 req = (struct fcoe_kwqe_destroy *) kwqe;
2565 cid = BNX2X_HW_CID(cp, cp->fcoe_init_cid); 2572 cid = BNX2X_HW_CID(bp, cp->fcoe_init_cid);
2566 2573
2567 memset(&l5_data, 0, sizeof(l5_data)); 2574 memset(&l5_data, 0, sizeof(l5_data));
2568 ret = cnic_submit_kwqe_16(dev, FCOE_RAMROD_CMD_ID_DESTROY_FUNC, cid, 2575 ret = cnic_submit_kwqe_16(dev, FCOE_RAMROD_CMD_ID_DESTROY_FUNC, cid,
diff --git a/drivers/net/ethernet/broadcom/cnic.h b/drivers/net/ethernet/broadcom/cnic.h
index 519f587a25d1..0408ae286b89 100644
--- a/drivers/net/ethernet/broadcom/cnic.h
+++ b/drivers/net/ethernet/broadcom/cnic.h
@@ -401,10 +401,9 @@ struct bnx2x_bd_chain_next {
401 401
402#define CNIC_PORT(cp) ((cp)->pfid & 1) 402#define CNIC_PORT(cp) ((cp)->pfid & 1)
403#define CNIC_FUNC(cp) ((cp)->func) 403#define CNIC_FUNC(cp) ((cp)->func)
404#define CNIC_E1HVN(cp) ((cp)->pfid >> 1)
405 404
406#define BNX2X_HW_CID(cp, x) ((CNIC_PORT(cp) << 23) | \ 405#define BNX2X_HW_CID(bp, x) ((BP_PORT(bp) << 23) | \
407 (CNIC_E1HVN(cp) << 17) | (x)) 406 (BP_VN(bp) << 17) | (x))
408 407
409#define BNX2X_SW_CID(x) (x & 0x1ffff) 408#define BNX2X_SW_CID(x) (x & 0x1ffff)
410 409