|
@@ -3571,7 +3571,7 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
|
|
|
{
|
|
|
struct ixgbe_hw *hw = &adapter->hw;
|
|
|
int i;
|
|
|
- u32 rxctrl;
|
|
|
+ u32 rxctrl, rfctl;
|
|
|
|
|
|
/* disable receives while setting up the descriptors */
|
|
|
rxctrl = IXGBE_READ_REG(hw, IXGBE_RXCTRL);
|
|
@@ -3580,6 +3580,13 @@ static void ixgbe_configure_rx(struct ixgbe_adapter *adapter)
|
|
|
ixgbe_setup_psrtype(adapter);
|
|
|
ixgbe_setup_rdrxctl(adapter);
|
|
|
|
|
|
+ /* RSC Setup */
|
|
|
+ rfctl = IXGBE_READ_REG(hw, IXGBE_RFCTL);
|
|
|
+ rfctl &= ~IXGBE_RFCTL_RSC_DIS;
|
|
|
+ if (!(adapter->flags2 & IXGBE_FLAG2_RSC_ENABLED))
|
|
|
+ rfctl |= IXGBE_RFCTL_RSC_DIS;
|
|
|
+ IXGBE_WRITE_REG(hw, IXGBE_RFCTL, rfctl);
|
|
|
+
|
|
|
/* Program registers for the distribution of queues */
|
|
|
ixgbe_setup_mrqc(adapter);
|
|
|
|