svn commit: r296050 - stable/9/sys/dev/bxe

2016-02-25 Thread David C Somayajulu
Author: davidcs
Date: Thu Feb 25 18:28:56 2016
New Revision: 296050
URL: https://svnweb.freebsd.org/changeset/base/296050

Log:
  MFC r295830
  Remove dead code. Code Cleanup. Improve clarity in debug messages

Modified:
  stable/9/sys/dev/bxe/bxe.c
  stable/9/sys/dev/bxe/bxe.h
  stable/9/sys/dev/bxe/bxe_stats.c
  stable/9/sys/dev/bxe/ecore_init.h
Directory Properties:
  stable/9/   (props changed)
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)

Modified: stable/9/sys/dev/bxe/bxe.c
==
--- stable/9/sys/dev/bxe/bxe.c  Thu Feb 25 18:27:22 2016(r296049)
+++ stable/9/sys/dev/bxe/bxe.c  Thu Feb 25 18:28:56 2016(r296050)
@@ -124,14 +124,6 @@ static struct bxe_device_type bxe_devs[]
 PCI_ANY_ID, PCI_ANY_ID,
 "QLogic NetXtreme II BCM57712 MF 10GbE"
 },
-#if 0
-{
-BRCM_VENDORID,
-CHIP_NUM_57712_VF,
-PCI_ANY_ID, PCI_ANY_ID,
-"QLogic NetXtreme II BCM57712 VF 10GbE"
-},
-#endif
 {
 BRCM_VENDORID,
 CHIP_NUM_57800,
@@ -144,14 +136,6 @@ static struct bxe_device_type bxe_devs[]
 PCI_ANY_ID, PCI_ANY_ID,
 "QLogic NetXtreme II BCM57800 MF 10GbE"
 },
-#if 0
-{
-BRCM_VENDORID,
-CHIP_NUM_57800_VF,
-PCI_ANY_ID, PCI_ANY_ID,
-"QLogic NetXtreme II BCM57800 VF 10GbE"
-},
-#endif
 {
 BRCM_VENDORID,
 CHIP_NUM_57810,
@@ -164,14 +148,6 @@ static struct bxe_device_type bxe_devs[]
 PCI_ANY_ID, PCI_ANY_ID,
 "QLogic NetXtreme II BCM57810 MF 10GbE"
 },
-#if 0
-{
-BRCM_VENDORID,
-CHIP_NUM_57810_VF,
-PCI_ANY_ID, PCI_ANY_ID,
-"QLogic NetXtreme II BCM57810 VF 10GbE"
-},
-#endif
 {
 BRCM_VENDORID,
 CHIP_NUM_57811,
@@ -184,42 +160,18 @@ static struct bxe_device_type bxe_devs[]
 PCI_ANY_ID, PCI_ANY_ID,
 "QLogic NetXtreme II BCM57811 MF 10GbE"
 },
-#if 0
-{
-BRCM_VENDORID,
-CHIP_NUM_57811_VF,
-PCI_ANY_ID, PCI_ANY_ID,
-"QLogic NetXtreme II BCM57811 VF 10GbE"
-},
-#endif
 {
 BRCM_VENDORID,
 CHIP_NUM_57840_4_10,
 PCI_ANY_ID, PCI_ANY_ID,
 "QLogic NetXtreme II BCM57840 4x10GbE"
 },
-#if 0
-{
-BRCM_VENDORID,
-CHIP_NUM_57840_2_20,
-PCI_ANY_ID, PCI_ANY_ID,
-"QLogic NetXtreme II BCM57840 2x20GbE"
-},
-#endif
 {
 BRCM_VENDORID,
 CHIP_NUM_57840_MF,
 PCI_ANY_ID, PCI_ANY_ID,
 "QLogic NetXtreme II BCM57840 MF 10GbE"
 },
-#if 0
-{
-BRCM_VENDORID,
-CHIP_NUM_57840_VF,
-PCI_ANY_ID, PCI_ANY_ID,
-"QLogic NetXtreme II BCM57840 VF 10GbE"
-},
-#endif
 {
 0, 0, 0, 0, NULL
 }
@@ -245,10 +197,6 @@ static device_method_t bxe_methods[] = {
 DEVMETHOD(device_attach,bxe_attach),
 DEVMETHOD(device_detach,bxe_detach),
 DEVMETHOD(device_shutdown,  bxe_shutdown),
-#if 0
-DEVMETHOD(device_suspend,   bxe_suspend),
-DEVMETHOD(device_resume,bxe_resume),
-#endif
 /* Bus interface (bus_if.h) */
 DEVMETHOD(bus_print_child,  bus_generic_print_child),
 DEVMETHOD(bus_driver_added, bus_generic_driver_added),
@@ -469,12 +417,6 @@ static const struct {
 8, STATS_FLAGS_FUNC, "tpa_aggregated_frames"},
 { STATS_OFFSET32(total_tpa_bytes_hi),
 8, STATS_FLAGS_FUNC, "tpa_bytes"},
-#if 0
-{ STATS_OFFSET32(recoverable_error),
-4, STATS_FLAGS_FUNC, "recoverable_errors" },
-{ STATS_OFFSET32(unrecoverable_error),
-4, STATS_FLAGS_FUNC, "unrecoverable_errors" },
-#endif
 { STATS_OFFSET32(eee_tx_lpi),
 4, STATS_FLAGS_PORT, "eee_tx_lpi"},
 { STATS_OFFSET32(rx_calls),
@@ -527,12 +469,6 @@ static const struct {
 4, STATS_FLAGS_FUNC, "tx_window_violation_std"},
 { STATS_OFFSET32(tx_window_violation_tso),
 4, STATS_FLAGS_FUNC, "tx_window_violation_tso"},
-#if 0
-{ STATS_OFFSET32(tx_unsupported_tso_request_ipv6),
-4, STATS_FLAGS_FUNC, "tx_unsupported_tso_request_ipv6"},
-{ STATS_OFFSET32(tx_unsupported_tso_request_not_tcp),
-4, STATS_FLAGS_FUNC, "tx_unsupported_tso_request_not_tcp"},
-#endif
 { STATS_OFFSET32(tx_chain_lost_mbuf),
 4, STATS_FLAGS_FUNC, "tx_chain_lost_mbuf"},
 { STATS_OFFSET32(tx_frames_deferred),
@@ -644,12 +580,6 @@ static const struct {
 4, "tx_window_violation_std"},
 { Q_STATS_OFFSET32(tx_window_violation_tso),
 4, "tx_window_violation_tso"},
-#if 0
-{ Q_STATS_OFFSET32(tx_unsupported_tso_request_ipv6),
-4, "tx_unsupported_tso_request_ipv6"},
-{ Q_STATS_OFFSET32(tx_unsupported_tso_request_not_tcp),
-4, "tx_unsupported_tso_request_not_tcp"},
-#endif
 { Q_STATS_OFFSET32(tx_chain_lost_mbuf),
  

svn commit: r296048 - stable/9/sys/dev/bxe

2016-02-25 Thread David C Somayajulu
Author: davidcs
Date: Thu Feb 25 18:25:36 2016
New Revision: 296048
URL: https://svnweb.freebsd.org/changeset/base/296048

Log:
  MFC r295823
  Modified the use of bxe_grc_dump() function so that it can be invoked 
directly at any potential error path, where a fwdump is needed. The fwdump 
(a.k.a grcdump) is stored in a driver buffer. The sysctl grcdump_done indicates 
if a fwdump was taken and waiting to be retrieved.
  The sysctl trigger_grcdump can be used to manually trigger a fwdump.

Modified:
  stable/9/sys/dev/bxe/bxe.c
  stable/9/sys/dev/bxe/bxe.h
Directory Properties:
  stable/9/   (props changed)
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)

Modified: stable/9/sys/dev/bxe/bxe.c
==
--- stable/9/sys/dev/bxe/bxe.c  Thu Feb 25 18:23:40 2016(r296047)
+++ stable/9/sys/dev/bxe/bxe.c  Thu Feb 25 18:25:36 2016(r296048)
@@ -749,6 +749,7 @@ static void bxe_handle_fp_tq(void *conte
 
 static int bxe_add_cdev(struct bxe_softc *sc);
 static void bxe_del_cdev(struct bxe_softc *sc);
+static int bxe_grc_dump(struct bxe_softc *sc);
 
 /* calculate crc32 on a buffer (NOTE: crc32_length MUST be aligned to 8) */
 uint32_t
@@ -7949,6 +7950,16 @@ bxe_chk_parity_attn(struct bxe_softc *sc
 attn.sig[2] = REG_RD(sc, MISC_REG_AEU_AFTER_INVERT_3_FUNC_0 + port*4);
 attn.sig[3] = REG_RD(sc, MISC_REG_AEU_AFTER_INVERT_4_FUNC_0 + port*4);
 
+/*
+ * Since MCP attentions can't be disabled inside the block, we need to
+ * read AEU registers to see whether they're currently disabled
+ */
+attn.sig[3] &= ((REG_RD(sc, (!port ? MISC_REG_AEU_ENABLE4_FUNC_0_OUT_0
+  : MISC_REG_AEU_ENABLE4_FUNC_1_OUT_0)) &
+ MISC_AEU_ENABLE_MCP_PRTY_BITS) |
+~MISC_AEU_ENABLE_MCP_PRTY_BITS);
+
+
 if (!CHIP_IS_E1x(sc))
 attn.sig[4] = REG_RD(sc, MISC_REG_AEU_AFTER_INVERT_5_FUNC_0 + port*4);
 
@@ -16189,6 +16200,30 @@ bxe_sysctl_state(SYSCTL_HANDLER_ARGS)
 }
 
 static int
+bxe_sysctl_trigger_grcdump(SYSCTL_HANDLER_ARGS)
+{
+struct bxe_softc *sc;
+int error, result;
+
+result = 0;
+error = sysctl_handle_int(oidp, , 0, req);
+
+if (error || !req->newptr) {
+return (error);
+}
+
+if (result == 1) {
+sc = (struct bxe_softc *)arg1;
+
+BLOGI(sc, "... grcdump start ...\n");
+bxe_grc_dump(sc);
+BLOGI(sc, "... grcdump done ...\n");
+}
+
+return (error);
+}
+
+static int
 bxe_sysctl_eth_stat(SYSCTL_HANDLER_ARGS)
 {
 struct bxe_softc *sc = (struct bxe_softc *)arg1;
@@ -16320,11 +16355,15 @@ bxe_add_sysctls(struct bxe_softc *sc)
 CTLFLAG_RW, >debug,
 "debug logging mode");
 
-sc->trigger_grcdump = 0;
-SYSCTL_ADD_UINT(ctx, children, OID_AUTO, "trigger_grcdump",
-CTLFLAG_RW, >trigger_grcdump, 0,
+SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "trigger_grcdump",
+CTLTYPE_UINT | CTLFLAG_RW, sc, 0,
+bxe_sysctl_trigger_grcdump, "IU",
 "set by driver when a grcdump is needed");
 
+sc->grcdump_done = 0;
+SYSCTL_ADD_UINT(ctx, children, OID_AUTO, "grcdump_done",
+   CTLFLAG_RW, >grcdump_done, 0,
+   "set by driver when grcdump is done");
 
 sc->rx_budget = bxe_rx_budget;
 SYSCTL_ADD_UINT(ctx, children, OID_AUTO, "rx_budget",
@@ -18942,26 +18981,6 @@ bxe_get_preset_regs_len(struct bxe_softc
 }
 
 static int
-bxe_get_max_regs_len(struct bxe_softc *sc)
-{
-uint32_t preset_idx;
-int regdump_len32, len32;
-
-regdump_len32 = bxe_get_preset_regs_len(sc, 1);
-
-/* Calculate the total preset regs length */
-for (preset_idx = 2; preset_idx <= DUMP_MAX_PRESETS; preset_idx++) {
-
-len32 = bxe_get_preset_regs_len(sc, preset_idx);
-
-if (regdump_len32 < len32)
-regdump_len32 = len32;
-}
-
-return regdump_len32;
-}
-
-static int
 bxe_get_total_regs_len32(struct bxe_softc *sc)
 {
 uint32_t preset_idx;
@@ -19188,18 +19207,21 @@ bxe_get_preset_regs(struct bxe_softc *sc
 }
 
 static int
-bxe_grc_dump(struct bxe_softc *sc, bxe_grcdump_t *dump)
+bxe_grc_dump(struct bxe_softc *sc)
 {
 int rval = 0;
 uint32_t preset_idx;
 uint8_t *buf;
 uint32_t size;
 struct  dump_header *d_hdr;
+
+if (sc->grcdump_done)
+   return (rval);
 
 ecore_disable_blocks_parity(sc);
 
-buf = dump->grcdump;
-d_hdr = dump->grcdump;
+buf = sc->grc_dump;
+d_hdr = sc->grc_dump;
 
 d_hdr->header_size = (sizeof(struct  dump_header) >> 2) - 1;
 d_hdr->version = BNX2X_DUMP_VERSION;
@@ -19220,7 +19242,6 @@ bxe_grc_dump(struct bxe_softc *sc, bxe_g
 (BXE_PATH(sc) ? DUMP_PATH_1 : DUMP_PATH_0);
 }
 
-dump->grcdump_dwords = sizeof(struct  dump_header) >> 2;
 buf += sizeof(struct  dump_header);
 
 for