[2/4] common/sfc_efx/base: detect and report FCS include support

Message ID 20230601114220.17796-3-denis.pryazhennikov@arknetworks.am (mailing list archive)
State Superseded, archived
Delegated to: Ferruh Yigit
Headers
Series net/sfc: support KEEP_CRC offload |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Denis Pryazhennikov June 1, 2023, 11:42 a.m. UTC
  A new variable was added to efx_nic_cfg_s to detect and
report if FCS is supported by FW.

Signed-off-by: Roman Zhukov <roman.zhukov@arknetworks.am>
Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
Reviewed-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am>
---
 drivers/common/sfc_efx/base/ef10_nic.c  | 6 ++++++
 drivers/common/sfc_efx/base/efx.h       | 1 +
 drivers/common/sfc_efx/base/siena_nic.c | 1 +
 3 files changed, 8 insertions(+)
  

Comments

Andrew Rybchenko June 7, 2023, 8:27 a.m. UTC | #1
On 6/1/23 14:42, Denis Pryazhennikov wrote:
> A new variable was added to efx_nic_cfg_s to detect and
> report if FCS is supported by FW.
> 
> Signed-off-by: Roman Zhukov <roman.zhukov@arknetworks.am>
> Signed-off-by: Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am>
> Reviewed-by: Viacheslav Galaktionov <viacheslav.galaktionov@arknetworks.am
Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

Please, ensure that initial author of the patch is used in From.
  

Patch

diff --git a/drivers/common/sfc_efx/base/ef10_nic.c b/drivers/common/sfc_efx/base/ef10_nic.c
index db4834a65175..d5b19af8e811 100644
--- a/drivers/common/sfc_efx/base/ef10_nic.c
+++ b/drivers/common/sfc_efx/base/ef10_nic.c
@@ -1250,6 +1250,12 @@  ef10_get_datapath_caps(
 	/* No limit on maximum number of Rx scatter elements per packet. */
 	encp->enc_rx_scatter_max = -1;
 
+	/* Check if the firmware supports include FCS on RX */
+	if (CAP_FLAGS1(req, RX_INCLUDE_FCS))
+		encp->enc_rx_include_fcs_supported = B_TRUE;
+	else
+		encp->enc_rx_include_fcs_supported = B_FALSE;
+
 	/* Check if the firmware supports packed stream mode */
 	if (CAP_FLAGS1(req, RX_PACKED_STREAM))
 		encp->enc_rx_packed_stream_supported = B_TRUE;
diff --git a/drivers/common/sfc_efx/base/efx.h b/drivers/common/sfc_efx/base/efx.h
index 93bb4916bfd6..ff281167767d 100644
--- a/drivers/common/sfc_efx/base/efx.h
+++ b/drivers/common/sfc_efx/base/efx.h
@@ -1629,6 +1629,7 @@  typedef struct efx_nic_cfg_s {
 	/* Datapath firmware vport reconfigure support */
 	boolean_t		enc_vport_reconfigure_supported;
 	boolean_t		enc_rx_disable_scatter_supported;
+	boolean_t		enc_rx_include_fcs_supported;
 	/* Maximum number of Rx scatter segments supported by HW */
 	uint32_t		enc_rx_scatter_max;
 	boolean_t		enc_allow_set_mac_with_installed_filters;
diff --git a/drivers/common/sfc_efx/base/siena_nic.c b/drivers/common/sfc_efx/base/siena_nic.c
index 9f14faf27168..c0316676eba2 100644
--- a/drivers/common/sfc_efx/base/siena_nic.c
+++ b/drivers/common/sfc_efx/base/siena_nic.c
@@ -187,6 +187,7 @@  siena_board_cfg(
 	encp->enc_allow_set_mac_with_installed_filters = B_TRUE;
 	encp->enc_rx_packed_stream_supported = B_FALSE;
 	encp->enc_rx_var_packed_stream_supported = B_FALSE;
+	encp->enc_rx_include_fcs_supported = B_FALSE;
 	encp->enc_rx_es_super_buffer_supported = B_FALSE;
 	encp->enc_fw_subvariant_no_tx_csum_supported = B_FALSE;