aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEilon Greenstein <eilong@broadcom.com>2009-02-12 03:37:19 -0500
committerDavid S. Miller <davem@davemloft.net>2009-02-16 02:31:42 -0500
commit8d5726c404fd41fedb7a49e1fbef62c60754021a (patch)
tree2e0228391607ab5f9b8fd0c6a8772c5d54009e7a
parent052a38e096dece43e38a19a896ae7ad019415bc1 (diff)
bnx2x: Manual setting for MRRS
Allows better debug capabilities if the user wants to force an MRRS value Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/bnx2x.h1
-rw-r--r--drivers/net/bnx2x_init.h7
-rw-r--r--drivers/net/bnx2x_main.c6
3 files changed, 13 insertions, 1 deletions
diff --git a/drivers/net/bnx2x.h b/drivers/net/bnx2x.h
index 9834a86d8139..891a58ed7591 100644
--- a/drivers/net/bnx2x.h
+++ b/drivers/net/bnx2x.h
@@ -864,6 +864,7 @@ struct bnx2x {
864 864
865 int pm_cap; 865 int pm_cap;
866 int pcie_cap; 866 int pcie_cap;
867 int mrrs;
867 868
868 struct delayed_work sp_task; 869 struct delayed_work sp_task;
869 struct work_struct reset_task; 870 struct work_struct reset_task;
diff --git a/drivers/net/bnx2x_init.h b/drivers/net/bnx2x_init.h
index a6c0b3abba29..961db4916f25 100644
--- a/drivers/net/bnx2x_init.h
+++ b/drivers/net/bnx2x_init.h
@@ -572,7 +572,12 @@ static void bnx2x_init_pxp(struct bnx2x *bp)
572 bp->pcie_cap + PCI_EXP_DEVCTL, &devctl); 572 bp->pcie_cap + PCI_EXP_DEVCTL, &devctl);
573 DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl); 573 DP(NETIF_MSG_HW, "read 0x%x from devctl\n", devctl);
574 w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5); 574 w_order = ((devctl & PCI_EXP_DEVCTL_PAYLOAD) >> 5);
575 r_order = ((devctl & PCI_EXP_DEVCTL_READRQ) >> 12); 575 if (bp->mrrs == -1)
576 r_order = ((devctl & PCI_EXP_DEVCTL_READRQ) >> 12);
577 else {
578 DP(NETIF_MSG_HW, "force read order to %d\n", bp->mrrs);
579 r_order = bp->mrrs;
580 }
576 581
577 if (r_order > MAX_RD_ORD) { 582 if (r_order > MAX_RD_ORD) {
578 DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n", 583 DP(NETIF_MSG_HW, "read order of %d order adjusted to %d\n",
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 60a4e94e6840..2e4d64df66f5 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -88,6 +88,11 @@ module_param(int_mode, int, 0);
88MODULE_PARM_DESC(int_mode, " Force interrupt mode (1 INT#x; 2 MSI)"); 88MODULE_PARM_DESC(int_mode, " Force interrupt mode (1 INT#x; 2 MSI)");
89 89
90module_param(poll, int, 0); 90module_param(poll, int, 0);
91
92static int mrrs = -1;
93module_param(mrrs, int, 0);
94MODULE_PARM_DESC(mrrs, " Force Max Read Req Size (0..3) (for debug)");
95
91module_param(debug, int, 0); 96module_param(debug, int, 0);
92MODULE_PARM_DESC(disable_tpa, "disable the TPA (LRO) feature"); 97MODULE_PARM_DESC(disable_tpa, "disable the TPA (LRO) feature");
93MODULE_PARM_DESC(poll, "use polling (for debug)"); 98MODULE_PARM_DESC(poll, "use polling (for debug)");
@@ -8160,6 +8165,7 @@ static int __devinit bnx2x_init_bp(struct bnx2x *bp)
8160 bp->dev->features |= NETIF_F_LRO; 8165 bp->dev->features |= NETIF_F_LRO;
8161 } 8166 }
8162 8167
8168 bp->mrrs = mrrs;
8163 8169
8164 bp->tx_ring_size = MAX_TX_AVAIL; 8170 bp->tx_ring_size = MAX_TX_AVAIL;
8165 bp->rx_ring_size = MAX_RX_AVAIL; 8171 bp->rx_ring_size = MAX_RX_AVAIL;