aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-03-18 23:29:41 -0400
committerDavid S. Miller <davem@davemloft.net>2012-03-18 23:29:41 -0400
commit4da0bd736552e6377b407b3c3d3ae518ebbdd269 (patch)
treef0da9f843b8033565c3ca4103fccb17a60688326 /drivers/net/ethernet
parent81a430ac1b88b0702c57d2513e247317e810e04d (diff)
parentc16fa4f2ad19908a47c63d8fa436a1178438c7e7 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c2
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h12
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c8
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c51
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c2
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c12
6 files changed, 41 insertions, 46 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index c11e50d328c4..b814f4eaed19 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -1992,7 +1992,7 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
1992 } 1992 }
1993 1993
1994 if (bp->port.pmf) 1994 if (bp->port.pmf)
1995 bnx2x_update_drv_flags(bp, DRV_FLAGS_DCB_CONFIGURED, 0); 1995 bnx2x_update_drv_flags(bp, 1 << DRV_FLAGS_DCB_CONFIGURED, 0);
1996 else 1996 else
1997 bnx2x__link_status_update(bp); 1997 bnx2x__link_status_update(bp);
1998 1998
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
index cc02ae51a30d..5904b1b1dad4 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
@@ -1181,10 +1181,16 @@ static inline int bnx2x_alloc_rx_bds(struct bnx2x_fastpath *fp,
1181 */ 1181 */
1182static inline u8 bnx2x_stats_id(struct bnx2x_fastpath *fp) 1182static inline u8 bnx2x_stats_id(struct bnx2x_fastpath *fp)
1183{ 1183{
1184 if (!CHIP_IS_E1x(fp->bp)) 1184 struct bnx2x *bp = fp->bp;
1185 if (!CHIP_IS_E1x(bp)) {
1186#ifdef BCM_CNIC
1187 /* there are special statistics counters for FCoE 136..140 */
1188 if (IS_FCOE_FP(fp))
1189 return bp->cnic_base_cl_id + (bp->pf_num >> 1);
1190#endif
1185 return fp->cl_id; 1191 return fp->cl_id;
1186 else 1192 }
1187 return fp->cl_id + BP_PORT(fp->bp) * FP_SB_MAX_E1x; 1193 return fp->cl_id + BP_PORT(bp) * FP_SB_MAX_E1x;
1188} 1194}
1189 1195
1190static inline void bnx2x_init_vlan_mac_fp_objs(struct bnx2x_fastpath *fp, 1196static inline void bnx2x_init_vlan_mac_fp_objs(struct bnx2x_fastpath *fp,
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c
index 9a4ed05bb30a..4446a42e8bdc 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c
@@ -735,7 +735,9 @@ void bnx2x_dcbx_set_params(struct bnx2x *bp, u32 state)
735 bp->dcbx_error); 735 bp->dcbx_error);
736 736
737 /* mark DCBX result for PMF migration */ 737 /* mark DCBX result for PMF migration */
738 bnx2x_update_drv_flags(bp, DRV_FLAGS_DCB_CONFIGURED, 1); 738 bnx2x_update_drv_flags(bp,
739 1 << DRV_FLAGS_DCB_CONFIGURED,
740 1);
739#ifdef BCM_DCBNL 741#ifdef BCM_DCBNL
740 /* 742 /*
741 * Add new app tlvs to dcbnl 743 * Add new app tlvs to dcbnl
@@ -1020,7 +1022,7 @@ void bnx2x_dcbx_init(struct bnx2x *bp)
1020 DP(NETIF_MSG_LINK, "dcbx_lldp_params_offset 0x%x\n", 1022 DP(NETIF_MSG_LINK, "dcbx_lldp_params_offset 0x%x\n",
1021 dcbx_lldp_params_offset); 1023 dcbx_lldp_params_offset);
1022 1024
1023 bnx2x_update_drv_flags(bp, DRV_FLAGS_DCB_CONFIGURED, 0); 1025 bnx2x_update_drv_flags(bp, 1 << DRV_FLAGS_DCB_CONFIGURED, 0);
1024 1026
1025 if (SHMEM_LLDP_DCBX_PARAMS_NONE != dcbx_lldp_params_offset) { 1027 if (SHMEM_LLDP_DCBX_PARAMS_NONE != dcbx_lldp_params_offset) {
1026 bnx2x_dcbx_admin_mib_updated_params(bp, 1028 bnx2x_dcbx_admin_mib_updated_params(bp,
@@ -1857,7 +1859,7 @@ void bnx2x_dcbx_pmf_update(struct bnx2x *bp)
1857 * read it from shmem and update bp and netdev accordingly 1859 * read it from shmem and update bp and netdev accordingly
1858 */ 1860 */
1859 if (SHMEM2_HAS(bp, drv_flags) && 1861 if (SHMEM2_HAS(bp, drv_flags) &&
1860 GET_FLAGS(SHMEM2_RD(bp, drv_flags), DRV_FLAGS_DCB_CONFIGURED)) { 1862 GET_FLAGS(SHMEM2_RD(bp, drv_flags), 1 << DRV_FLAGS_DCB_CONFIGURED)) {
1861 /* Read neg results if dcbx is in the FW */ 1863 /* Read neg results if dcbx is in the FW */
1862 if (bnx2x_dcbx_read_shmem_neg_results(bp)) 1864 if (bnx2x_dcbx_read_shmem_neg_results(bp))
1863 return; 1865 return;
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index bf14a08f0796..a743a5fcb22c 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -10907,38 +10907,36 @@ do { \
10907 10907
10908int bnx2x_init_firmware(struct bnx2x *bp) 10908int bnx2x_init_firmware(struct bnx2x *bp)
10909{ 10909{
10910 const char *fw_file_name;
10910 struct bnx2x_fw_file_hdr *fw_hdr; 10911 struct bnx2x_fw_file_hdr *fw_hdr;
10911 int rc; 10912 int rc;
10912 10913
10914 if (bp->firmware)
10915 return 0;
10913 10916
10914 if (!bp->firmware) { 10917 if (CHIP_IS_E1(bp))
10915 const char *fw_file_name; 10918 fw_file_name = FW_FILE_NAME_E1;
10916 10919 else if (CHIP_IS_E1H(bp))
10917 if (CHIP_IS_E1(bp)) 10920 fw_file_name = FW_FILE_NAME_E1H;
10918 fw_file_name = FW_FILE_NAME_E1; 10921 else if (!CHIP_IS_E1x(bp))
10919 else if (CHIP_IS_E1H(bp)) 10922 fw_file_name = FW_FILE_NAME_E2;
10920 fw_file_name = FW_FILE_NAME_E1H; 10923 else {
10921 else if (!CHIP_IS_E1x(bp)) 10924 BNX2X_ERR("Unsupported chip revision\n");
10922 fw_file_name = FW_FILE_NAME_E2; 10925 return -EINVAL;
10923 else { 10926 }
10924 BNX2X_ERR("Unsupported chip revision\n"); 10927 BNX2X_DEV_INFO("Loading %s\n", fw_file_name);
10925 return -EINVAL;
10926 }
10927 BNX2X_DEV_INFO("Loading %s\n", fw_file_name);
10928 10928
10929 rc = request_firmware(&bp->firmware, fw_file_name, 10929 rc = request_firmware(&bp->firmware, fw_file_name, &bp->pdev->dev);
10930 &bp->pdev->dev); 10930 if (rc) {
10931 if (rc) { 10931 BNX2X_ERR("Can't load firmware file %s\n",
10932 BNX2X_ERR("Can't load firmware file %s\n", 10932 fw_file_name);
10933 fw_file_name); 10933 goto request_firmware_exit;
10934 goto request_firmware_exit; 10934 }
10935 }
10936 10935
10937 rc = bnx2x_check_firmware(bp); 10936 rc = bnx2x_check_firmware(bp);
10938 if (rc) { 10937 if (rc) {
10939 BNX2X_ERR("Corrupt firmware file %s\n", fw_file_name); 10938 BNX2X_ERR("Corrupt firmware file %s\n", fw_file_name);
10940 goto request_firmware_exit; 10939 goto request_firmware_exit;
10941 }
10942 } 10940 }
10943 10941
10944 fw_hdr = (struct bnx2x_fw_file_hdr *)bp->firmware->data; 10942 fw_hdr = (struct bnx2x_fw_file_hdr *)bp->firmware->data;
@@ -10984,6 +10982,7 @@ init_ops_alloc_err:
10984 kfree(bp->init_data); 10982 kfree(bp->init_data);
10985request_firmware_exit: 10983request_firmware_exit:
10986 release_firmware(bp->firmware); 10984 release_firmware(bp->firmware);
10985 bp->firmware = NULL;
10987 10986
10988 return rc; 10987 return rc;
10989} 10988}
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
index 1999fa58704d..484498f6bf1e 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
@@ -5591,7 +5591,7 @@ static inline int bnx2x_func_send_start(struct bnx2x *bp,
5591 5591
5592 /* Fill the ramrod data with provided parameters */ 5592 /* Fill the ramrod data with provided parameters */
5593 rdata->function_mode = cpu_to_le16(start_params->mf_mode); 5593 rdata->function_mode = cpu_to_le16(start_params->mf_mode);
5594 rdata->sd_vlan_tag = start_params->sd_vlan_tag; 5594 rdata->sd_vlan_tag = cpu_to_le16(start_params->sd_vlan_tag);
5595 rdata->path_id = BP_PATH(bp); 5595 rdata->path_id = BP_PATH(bp);
5596 rdata->network_cos_mode = start_params->network_cos_mode; 5596 rdata->network_cos_mode = start_params->network_cos_mode;
5597 5597
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c
index 14c961beaadb..4cd4f127fe79 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c
@@ -554,23 +554,11 @@ static void bnx2x_bmac_stats_update(struct bnx2x *bp)
554 UPDATE_STAT64(tx_stat_gtufl, tx_stat_mac_ufl); 554 UPDATE_STAT64(tx_stat_gtufl, tx_stat_mac_ufl);
555 555
556 /* collect PFC stats */ 556 /* collect PFC stats */
557 DIFF_64(diff.hi, new->tx_stat_gtpp_hi,
558 pstats->pfc_frames_tx_hi,
559 diff.lo, new->tx_stat_gtpp_lo,
560 pstats->pfc_frames_tx_lo);
561 pstats->pfc_frames_tx_hi = new->tx_stat_gtpp_hi; 557 pstats->pfc_frames_tx_hi = new->tx_stat_gtpp_hi;
562 pstats->pfc_frames_tx_lo = new->tx_stat_gtpp_lo; 558 pstats->pfc_frames_tx_lo = new->tx_stat_gtpp_lo;
563 ADD_64(pstats->pfc_frames_tx_hi, diff.hi,
564 pstats->pfc_frames_tx_lo, diff.lo);
565 559
566 DIFF_64(diff.hi, new->rx_stat_grpp_hi,
567 pstats->pfc_frames_rx_hi,
568 diff.lo, new->rx_stat_grpp_lo,
569 pstats->pfc_frames_rx_lo);
570 pstats->pfc_frames_rx_hi = new->rx_stat_grpp_hi; 560 pstats->pfc_frames_rx_hi = new->rx_stat_grpp_hi;
571 pstats->pfc_frames_rx_lo = new->rx_stat_grpp_lo; 561 pstats->pfc_frames_rx_lo = new->rx_stat_grpp_lo;
572 ADD_64(pstats->pfc_frames_rx_hi, diff.hi,
573 pstats->pfc_frames_rx_lo, diff.lo);
574 } 562 }
575 563
576 estats->pause_frames_received_hi = 564 estats->pause_frames_received_hi =