diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2009-10-27 23:46:38 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-10-28 03:25:38 -0700 |
commit | d249be54745259980dcbd898bdfeb7307c9c5e10 (patch) | |
tree | 871d4e7b58e1d19426b0c09bad1674fcb55f6f12 /drivers | |
parent | 317f66bdadc31f0c037b91ae7857f5c3d2a4e3e5 (diff) |
igb: use packet buffer sizes from RXPBS register
This patch changes the configuration for 82576 so that it uses the actual
value of the 82576 rx packet buffer size instead of just assuming the
value.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/igb/e1000_82575.h | 2 | ||||
-rw-r--r-- | drivers/net/igb/e1000_regs.h | 2 | ||||
-rw-r--r-- | drivers/net/igb/igb_main.c | 3 |
3 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/igb/e1000_82575.h b/drivers/net/igb/e1000_82575.h index cbe475747d1..b3808ca49ef 100644 --- a/drivers/net/igb/e1000_82575.h +++ b/drivers/net/igb/e1000_82575.h @@ -228,6 +228,8 @@ struct e1000_adv_tx_context_desc { #define ALL_QUEUES 0xFFFF +/* RX packet buffer size defines */ +#define E1000_RXPBS_SIZE_MASK_82576 0x0000007F void igb_vmdq_set_loopback_pf(struct e1000_hw *, bool); void igb_vmdq_set_replication_pf(struct e1000_hw *, bool); diff --git a/drivers/net/igb/e1000_regs.h b/drivers/net/igb/e1000_regs.h index 24f2c24d030..934e03b053a 100644 --- a/drivers/net/igb/e1000_regs.h +++ b/drivers/net/igb/e1000_regs.h @@ -102,7 +102,9 @@ #define E1000_ETQF(_n) (0x05CB0 + (4 * (_n))) /* EType Queue Fltr */ #define E1000_RQDPC(_n) (0x0C030 + ((_n) * 0x40)) + /* Split and Replication RX Control - RW */ +#define E1000_RXPBS 0x02404 /* Rx Packet Buffer Size - RW */ /* * Convenience macros * diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index 7e628bad17d..2ed2694df5a 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c @@ -1215,7 +1215,8 @@ void igb_reset(struct igb_adapter *adapter) */ switch (mac->type) { case e1000_82576: - pba = E1000_PBA_64K; + pba = rd32(E1000_RXPBS); + pba &= E1000_RXPBS_SIZE_MASK_82576; break; case e1000_82575: default: |