igb: add defaults for i210 TX/RX PBSIZE
authorTodd Fujinaka <todd.fujinaka@intel.com>
Thu, 29 May 2014 05:47:26 +0000 (05:47 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 4 Jun 2014 06:57:53 +0000 (23:57 -0700)
Set the defaults on probe for the packet buffer size registers for the
i210.

Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/igb/e1000_defines.h
drivers/net/ethernet/intel/igb/e1000_regs.h
drivers/net/ethernet/intel/igb/igb_main.c

index f85be6695e44857b7e149184405a1f06a9d2fab3..11ffdbae9f92fc18876ce44b29a46c42e0a38c14 100644 (file)
 /* Timestamp in Rx buffer */
 #define E1000_RXPBS_CFG_TS_EN           0x80000000
 
+#define I210_RXPBSIZE_DEFAULT          0x000000A2 /* RXPBSIZE default */
+#define I210_TXPBSIZE_DEFAULT          0x04000014 /* TXPBSIZE default */
+
 /* SerDes Control */
 #define E1000_SCTL_DISABLE_SERDES_LOOPBACK 0x0400
 
index 833bbb948d970975cd3a42cfa759f7604f8f04a3..1cc4b1a7e597d32823ff2cc221aa54ce370a5a15 100644 (file)
                                    : (0x0E038 + ((_n) * 0x40)))
 #define E1000_TDWBAH(_n)  ((_n) < 4 ? (0x0383C + ((_n) * 0x100)) \
                                    : (0x0E03C + ((_n) * 0x40)))
+
+#define E1000_RXPBS    0x02404  /* Rx Packet Buffer Size - RW */
+#define E1000_TXPBS    0x03404  /* Tx Packet Buffer Size - RW */
+
 #define E1000_TDFH     0x03410  /* TX Data FIFO Head - RW */
 #define E1000_TDFT     0x03418  /* TX Data FIFO Tail - RW */
 #define E1000_TDFHS    0x03420  /* TX Data FIFO Head Saved - RW */
index ea2868b22c2d676eb57dfe8da63fff49bccfbcca..33b3a16dabe1522a3197b44ea97735bc4c528408 100644 (file)
@@ -2433,6 +2433,12 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        /* get firmware version for ethtool -i */
        igb_set_fw_version(adapter);
 
+       /* configure RXPBSIZE and TXPBSIZE */
+       if (hw->mac.type == e1000_i210) {
+               wr32(E1000_RXPBS, I210_RXPBSIZE_DEFAULT);
+               wr32(E1000_TXPBS, I210_TXPBSIZE_DEFAULT);
+       }
+
        setup_timer(&adapter->watchdog_timer, igb_watchdog,
                    (unsigned long) adapter);
        setup_timer(&adapter->phy_info_timer, igb_update_phy_info,