[dpdk-dev] net/ixgbe: align register setting when RSC is disabled
Checks
Commit Message
When RSC is not used, the RSC_DIS of register RFCTL should
be set according to ixgbe datasheet.
Signed-off-by: Wei Dai <wei.dai@intel.com>
---
drivers/net/ixgbe/ixgbe_rxtx.c | 29 +++++++++++++----------------
1 file changed, 13 insertions(+), 16 deletions(-)
Comments
Hi,
> -----Original Message-----
> From: Dai, Wei
> Sent: Thursday, April 20, 2017 11:06 AM
> To: Zhang, Helin; Ananyev, Konstantin; Lu, Wenzhuo; Dai, Wei
> Cc: dev@dpdk.org
> Subject: [PATCH] net/ixgbe: align register setting when RSC is disabled
>
> When RSC is not used, the RSC_DIS of 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>
On 4/21/2017 3:21 AM, Lu, Wenzhuo wrote:
> Hi,
>
>
>> -----Original Message-----
>> From: Dai, Wei
>> Sent: Thursday, April 20, 2017 11:06 AM
>> To: Zhang, Helin; Ananyev, Konstantin; Lu, Wenzhuo; Dai, Wei
>> Cc: dev@dpdk.org
>> Subject: [PATCH] net/ixgbe: align register setting when RSC is disabled
>>
>> When RSC is not used, the RSC_DIS of 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>
Applied to dpdk-next-net/master, thanks.
@@ -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)