From: Mark Spender <mspen...@solarflare.com>

The patch adds enc_rx_scale_max_exclusive_contexts member
to nic_cfg_t structure and sets the corresponding values
for Siena, Huntington and Medford

Signed-off-by: Mark Spender <mspen...@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybche...@solarflare.com>
Reviewed-by: Andrew Lee <a...@solarflare.com>
Reviewed-by: Andy Moreton <amore...@solarflare.com>
---
 drivers/net/sfc/base/efx.h         | 1 +
 drivers/net/sfc/base/hunt_nic.c    | 7 +++++++
 drivers/net/sfc/base/medford_nic.c | 7 +++++++
 drivers/net/sfc/base/siena_nic.c   | 3 +++
 4 files changed, 18 insertions(+)

diff --git a/drivers/net/sfc/base/efx.h b/drivers/net/sfc/base/efx.h
index 1e369bf..c4ea4e1 100644
--- a/drivers/net/sfc/base/efx.h
+++ b/drivers/net/sfc/base/efx.h
@@ -1127,6 +1127,7 @@ enum {
        uint32_t                enc_rx_prefix_size;
        uint32_t                enc_rx_buf_align_start;
        uint32_t                enc_rx_buf_align_end;
+       uint32_t                enc_rx_scale_max_exclusive_contexts;
 #if EFSYS_OPT_LOOPBACK
        efx_qword_t             enc_loopback_types[EFX_LINK_NMODES];
 #endif /* EFSYS_OPT_LOOPBACK */
diff --git a/drivers/net/sfc/base/hunt_nic.c b/drivers/net/sfc/base/hunt_nic.c
index addbf1c..19fb7cf 100644
--- a/drivers/net/sfc/base/hunt_nic.c
+++ b/drivers/net/sfc/base/hunt_nic.c
@@ -301,6 +301,13 @@
        /* Alignment for WPTR updates */
        encp->enc_rx_push_align = EF10_RX_WPTR_ALIGN;
 
+       /*
+        * Maximum number of exclusive RSS contexts which can be allocated. The
+        * hardware supports 64, but 6 are reserved for shared contexts. They
+        * are a global resource so not all may be available.
+        */
+       encp->enc_rx_scale_max_exclusive_contexts = 58;
+
        encp->enc_tx_dma_desc_size_max = EFX_MASK32(ESF_DZ_RX_KER_BYTE_CNT);
        /* No boundary crossing limits */
        encp->enc_tx_dma_desc_boundary = 0;
diff --git a/drivers/net/sfc/base/medford_nic.c 
b/drivers/net/sfc/base/medford_nic.c
index 07afac1..d361d65 100644
--- a/drivers/net/sfc/base/medford_nic.c
+++ b/drivers/net/sfc/base/medford_nic.c
@@ -298,6 +298,13 @@
        /* Alignment for WPTR updates */
        encp->enc_rx_push_align = EF10_RX_WPTR_ALIGN;
 
+       /*
+        * Maximum number of exclusive RSS contexts which can be allocated. The
+        * hardware supports 64, but 6 are reserved for shared contexts. They
+        * are a global resource so not all may be available.
+        */
+       encp->enc_rx_scale_max_exclusive_contexts = 58;
+
        encp->enc_tx_dma_desc_size_max = EFX_MASK32(ESF_DZ_RX_KER_BYTE_CNT);
        /* No boundary crossing limits */
        encp->enc_tx_dma_desc_boundary = 0;
diff --git a/drivers/net/sfc/base/siena_nic.c b/drivers/net/sfc/base/siena_nic.c
index 129b854..fcc8f15 100644
--- a/drivers/net/sfc/base/siena_nic.c
+++ b/drivers/net/sfc/base/siena_nic.c
@@ -135,6 +135,9 @@
        /* Alignment for WPTR updates */
        encp->enc_rx_push_align = 1;
 
+       /* There is one RSS context per function */
+       encp->enc_rx_scale_max_exclusive_contexts = 1;
+
        encp->enc_tx_dma_desc_size_max = EFX_MASK32(FSF_AZ_TX_KER_BYTE_COUNT);
        /* Fragments must not span 4k boundaries. */
        encp->enc_tx_dma_desc_boundary = 4096;
-- 
1.8.2.3

Reply via email to