e1000e: Set HTHRESH when PTHRESH is used
authorMatt Turner <matt.turner@intel.com>
Tue, 7 Nov 2017 22:13:30 +0000 (14:13 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 24 Jan 2018 20:27:48 +0000 (12:27 -0800)
According to section 12.0.3.4.13 "Receive Descriptor Control - RXDCTL"
of the IntelĀ® 82579 Gigabit Ethernet PHY Datasheet v2.1:

    "HTHRESH should be given a non zero value when ever PTHRESH is
     used."

In RXDCTL(0), PTHRESH lives at bits 5:0, and HTHREST lives at bits 13:8.
Set only bit 8 of HTHREST as is done in e1000_flush_rx_ring(). Found by
inspection.

Signed-off-by: Matt Turner <matt.turner@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/e1000e/netdev.c

index 9f18d39bdc8f7a7d3c8cb8e9105f9632054f5e7f..5af93ce5acc6187360b9c6693df39e28f86555ba 100644 (file)
@@ -3303,7 +3303,7 @@ static void e1000_configure_rx(struct e1000_adapter *adapter)
                if (adapter->flags & FLAG_IS_ICH) {
                        u32 rxdctl = er32(RXDCTL(0));
 
-                       ew32(RXDCTL(0), rxdctl | 0x3);
+                       ew32(RXDCTL(0), rxdctl | 0x3 | BIT(8));
                }
 
                pm_qos_update_request(&adapter->pm_qos_req, lat);