igb: remove unneeded bit refrence when enabling jumbo frames
Subsystems (2)
PATCH 1/2 igb: remove unneeded bit refrence when enabling jumbo frames
From: Alexander Duyck <[email protected]>
There is a reference to a Buffer Size extention bit that is unneded by 82575/82576 hardware. Since it is not needed it should be removed from the code.
---
drivers/net/igb/e1000_defines.h | 6 ------ drivers/net/igb/igb_main.c | 20 ++++++-------------- 2 files changed, 6 insertions(+), 20 deletions(-)
drivers/net/igb/e1000_defines.h +0 -6
@@ -168,18 +168,12 @@#define E1000_RCTL_RDMTS_HALF 0x00000000/* rx desc min threshold size */ #define E1000_RCTL_MO_SHIFT 12/* multicast offset shift */ #define E1000_RCTL_BAM 0x00008000/* broadcast enable */ -/* these buffer sizes are valid if E1000_RCTL_BSEX is 0 */ #define E1000_RCTL_SZ_2048 0x00000000/* rx buffer size 2048 */ #define E1000_RCTL_SZ_1024 0x00010000/* rx buffer size 1024 */ #define E1000_RCTL_SZ_512 0x00020000/* rx buffer size 512 */ #define E1000_RCTL_SZ_256 0x00030000/* rx buffer size 256 */ -/* these buffer sizes are valid if E1000_RCTL_BSEX is 1 */ -#define E1000_RCTL_SZ_16384 0x00010000/* rx buffer size 16384 */ -#define E1000_RCTL_SZ_8192 0x00020000/* rx buffer size 8192 */ -#define E1000_RCTL_SZ_4096 0x00030000/* rx buffer size 4096 */ #define E1000_RCTL_VFE 0x00040000/* vlan filter enable */ #define E1000_RCTL_CFIEN 0x00080000/* canonical form enable */ -#define E1000_RCTL_BSEX 0x02000000/* Buffer size extension */ #define E1000_RCTL_SECRC 0x04000000/* Strip Ethernet CRC */ /*
drivers/net/igb/igb_main.c +6 -14
@@ -1791,37 +1791,29 @@ static void igb_setup_rctl(struct igb_adapter *adapter)*/ rctl |=E1000_RCTL_SECRC ; - rctl &= ~E1000_RCTL_SBP ; +/* +* disable store bad packets, long packet enable, and clear size bits. +*/ + rctl &= ~(E1000_RCTL_SBP |E1000_RCTL_LPE |E1000_RCTL_SZ_256 ); -if (adapter->netdev->mtu <=ETH_DATA_LEN ) - rctl &= ~E1000_RCTL_LPE ; -else - rctl |=E1000_RCTL_LPE ; -if (adapter->rx_buffer_len <=IGB_RXBUFFER_2048 ) { +if (adapter->netdev->mtu <=ETH_DATA_LEN ) {/* Setup buffer sizes */ - rctl &= ~E1000_RCTL_SZ_4096 ; - rctl |=E1000_RCTL_BSEX ;switch (adapter->rx_buffer_len) {case IGB_RXBUFFER_256 : rctl |=E1000_RCTL_SZ_256 ; - rctl &= ~E1000_RCTL_BSEX ;break ;case IGB_RXBUFFER_512 : rctl |=E1000_RCTL_SZ_512 ; - rctl &= ~E1000_RCTL_BSEX ;break ;case IGB_RXBUFFER_1024 : rctl |=E1000_RCTL_SZ_1024 ; - rctl &= ~E1000_RCTL_BSEX ;break ; -case IGB_RXBUFFER_2048 :default : rctl |=E1000_RCTL_SZ_2048 ; - rctl &= ~E1000_RCTL_BSEX ;break ; } }else { - rctl &= ~E1000_RCTL_BSEX ; + rctl |=E1000_RCTL_LPE ; srrctl = adapter->rx_buffer_len >>E1000_SRRCTL_BSIZEPKT_SHIFT ; }
PATCH 2/2 igb: loopback bits not correctly cleared from RCTL register
From: Alexander Duyck <[email protected]>
This change forces the bits to 0 by using an &= operation with an inverted mask of all options instead of using an |= with a value of 0.
---
drivers/net/igb/igb_ethtool.c | 3 ++- drivers/net/igb/igb_main.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-)
drivers/net/igb/igb_ethtool.c +2 -1
@@ -1339,8 +1339,9 @@ static int igb_setup_desc_rings(struct igb_adapter *adapter)wr32 (E1000_RDLEN (0 ), rx_ring->size);wr32 (E1000_RDH (0 ),0 );wr32 (E1000_RDT (0 ),0 ); + rctl &= ~(E1000_RCTL_LBM_TCVR |E1000_RCTL_LBM_MAC ); rctl =E1000_RCTL_EN |E1000_RCTL_BAM |E1000_RCTL_SZ_2048 | -E1000_RCTL_LBM_NO |E1000_RCTL_RDMTS_HALF | +E1000_RCTL_RDMTS_HALF | (adapter->hw.mac.mc_filter_type <<E1000_RCTL_MO_SHIFT );wr32 (E1000_RCTL , rctl);wr32 (E1000_SRRCTL (0 ),0 );
drivers/net/igb/igb_main.c +2 -2
@@ -1779,9 +1779,9 @@ static void igb_setup_rctl(struct igb_adapter *adapter) rctl =rd32 (E1000_RCTL ); rctl &= ~(3 <<E1000_RCTL_MO_SHIFT ); + rctl &= ~(E1000_RCTL_LBM_TCVR |E1000_RCTL_LBM_MAC ); - rctl |=E1000_RCTL_EN |E1000_RCTL_BAM | -E1000_RCTL_LBM_NO |E1000_RCTL_RDMTS_HALF | + rctl |=E1000_RCTL_EN |E1000_RCTL_BAM |E1000_RCTL_RDMTS_HALF | (adapter->hw.mac.mc_filter_type <<E1000_RCTL_MO_SHIFT );/*
From: Jeff Kirsher <[email protected]>
Date: Mon, 24 Nov 2008 15:48:45 -0800
Quoted 6 lines
There is a reference to a Buffer Size extention bit that is unneded by 82575/82576 hardware. Since it is not needed it should be removed from the code.
Signed-off-by Alexander Duyck <[email protected]>Signed-off-by Jeff Kirsher <[email protected]>
Applied.
Re: [NET-NEXT PATCH 2/2] igb: loopback bits not correctly cleared from RCTL register
In reply to Jeff KirsherFrom: Jeff Kirsher <[email protected]>
Date: Mon, 24 Nov 2008 15:49:03 -0800
Quoted 7 lines
From: Alexander Duyck <[email protected]>
This change forces the bits to 0 by using an &= operation with an inverted mask of all options instead of using an |= with a value of 0.
Signed-off-by Alexander Duyck <[email protected]>Signed-off-by Jeff Kirsher <[email protected]>
Applied.