diff options
author | David S. Miller <davem@davemloft.net> | 2012-03-18 23:29:41 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-03-18 23:29:41 -0400 |
commit | 4da0bd736552e6377b407b3c3d3ae518ebbdd269 (patch) | |
tree | f0da9f843b8033565c3ca4103fccb17a60688326 /drivers/net/ethernet | |
parent | 81a430ac1b88b0702c57d2513e247317e810e04d (diff) | |
parent | c16fa4f2ad19908a47c63d8fa436a1178438c7e7 (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.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h | 12 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_dcb.c | 8 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 51 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c | 12 |
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 | */ |
1182 | static inline u8 bnx2x_stats_id(struct bnx2x_fastpath *fp) | 1182 | static 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 | ||
1190 | static inline void bnx2x_init_vlan_mac_fp_objs(struct bnx2x_fastpath *fp, | 1196 | static 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 | ||
10908 | int bnx2x_init_firmware(struct bnx2x *bp) | 10908 | int 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); |
10985 | request_firmware_exit: | 10983 | request_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 = |