net/ixgbe: align register setting when RSC is disabled
When Receive Side Coalescing (RSC) is not used, the RSC Disable (RSC_DIS) filed of register Receive Filter Control Register (RFCTL) should be set according to ixgbe datasheet. Signed-off-by: Wei Dai <wei.dai@intel.com> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
This commit is contained in:
parent
bfe977683a
commit
b826efba6d
@ -4522,6 +4522,7 @@ ixgbe_set_rsc(struct rte_eth_dev *dev)
|
||||
bool rsc_capable = false;
|
||||
uint16_t i;
|
||||
uint32_t rdrxctl;
|
||||
uint32_t rfctl;
|
||||
|
||||
/* Sanity check */
|
||||
dev->dev_ops->dev_infos_get(dev, &dev_info);
|
||||
@ -4549,22 +4550,18 @@ ixgbe_set_rsc(struct rte_eth_dev *dev)
|
||||
}
|
||||
|
||||
/* RFCTL configuration */
|
||||
if (rsc_capable) {
|
||||
uint32_t rfctl = IXGBE_READ_REG(hw, IXGBE_RFCTL);
|
||||
|
||||
if (rx_conf->enable_lro)
|
||||
/*
|
||||
* Since NFS packets coalescing is not supported - clear
|
||||
* RFCTL.NFSW_DIS and RFCTL.NFSR_DIS when RSC is
|
||||
* enabled.
|
||||
*/
|
||||
rfctl &= ~(IXGBE_RFCTL_RSC_DIS | IXGBE_RFCTL_NFSW_DIS |
|
||||
IXGBE_RFCTL_NFSR_DIS);
|
||||
else
|
||||
rfctl |= IXGBE_RFCTL_RSC_DIS;
|
||||
|
||||
IXGBE_WRITE_REG(hw, IXGBE_RFCTL, rfctl);
|
||||
}
|
||||
rfctl = IXGBE_READ_REG(hw, IXGBE_RFCTL);
|
||||
if ((rsc_capable) && (rx_conf->enable_lro))
|
||||
/*
|
||||
* Since NFS packets coalescing is not supported - clear
|
||||
* RFCTL.NFSW_DIS and RFCTL.NFSR_DIS when RSC is
|
||||
* enabled.
|
||||
*/
|
||||
rfctl &= ~(IXGBE_RFCTL_RSC_DIS | IXGBE_RFCTL_NFSW_DIS |
|
||||
IXGBE_RFCTL_NFSR_DIS);
|
||||
else
|
||||
rfctl |= IXGBE_RFCTL_RSC_DIS;
|
||||
IXGBE_WRITE_REG(hw, IXGBE_RFCTL, rfctl);
|
||||
|
||||
/* If LRO hasn't been requested - we are done here. */
|
||||
if (!rx_conf->enable_lro)
|
||||
|
Loading…
x
Reference in New Issue
Block a user