While converting to FIELD_PREP() and FIELD_GET(), it was noticed that
some of the RSS defines had *included* the shift in their definitions.
This is completely outside of normal, such that a developer could easily
make a mistake and shift at the usage site (like when using
FIELD_PREP()).

Rename the defines and set them to the "pre-shifted values" so they
match the template the driver normally uses for masks and the member
bits of the mask, which also allows the driver to use FIELD_PREP
correctly with these values. Use GENMASK() for this changed MASK value.

Do the same for the VLAN EMODE defines as well.

Reviewed-by: Marcin Szycik <marcin.szy...@linux.intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeb...@intel.com>
---
 .../net/ethernet/intel/ice/ice_adminq_cmd.h    | 18 +++++++++---------
 drivers/net/ethernet/intel/ice/ice_lib.c       |  7 ++++---
 drivers/net/ethernet/intel/ice/ice_virtchnl.c  | 10 +++++-----
 .../net/ethernet/intel/ice/ice_vsi_vlan_lib.c  | 16 +++++++++++-----
 4 files changed, 29 insertions(+), 22 deletions(-)

diff --git a/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h 
b/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h
index f77a3c70f262..51c241ab6b8e 100644
--- a/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h
+++ b/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h
@@ -422,10 +422,10 @@ struct ice_aqc_vsi_props {
 #define ICE_AQ_VSI_INNER_VLAN_INSERT_PVID      BIT(2)
 #define ICE_AQ_VSI_INNER_VLAN_EMODE_S          3
 #define ICE_AQ_VSI_INNER_VLAN_EMODE_M          (0x3 << 
ICE_AQ_VSI_INNER_VLAN_EMODE_S)
-#define ICE_AQ_VSI_INNER_VLAN_EMODE_STR_BOTH   (0x0 << 
ICE_AQ_VSI_INNER_VLAN_EMODE_S)
-#define ICE_AQ_VSI_INNER_VLAN_EMODE_STR_UP     (0x1 << 
ICE_AQ_VSI_INNER_VLAN_EMODE_S)
-#define ICE_AQ_VSI_INNER_VLAN_EMODE_STR                (0x2 << 
ICE_AQ_VSI_INNER_VLAN_EMODE_S)
-#define ICE_AQ_VSI_INNER_VLAN_EMODE_NOTHING    (0x3 << 
ICE_AQ_VSI_INNER_VLAN_EMODE_S)
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_STR_BOTH   0x0U
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_STR_UP     0x1U
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_STR                0x2U
+#define ICE_AQ_VSI_INNER_VLAN_EMODE_NOTHING    0x3U
        u8 inner_vlan_reserved2[3];
        /* ingress egress up sections */
        __le32 ingress_table; /* bitmap, 3 bits per up */
@@ -491,11 +491,11 @@ struct ice_aqc_vsi_props {
 #define ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_S         2
 #define ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_M         (0xF << 
ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_S)
 #define ICE_AQ_VSI_Q_OPT_RSS_HASH_S            6
-#define ICE_AQ_VSI_Q_OPT_RSS_HASH_M            (0x3 << 
ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_TPLZ              (0x0 << 
ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_SYM_TPLZ          (0x1 << 
ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_XOR               (0x2 << 
ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
-#define ICE_AQ_VSI_Q_OPT_RSS_JHASH             (0x3 << 
ICE_AQ_VSI_Q_OPT_RSS_HASH_S)
+#define ICE_AQ_VSI_Q_OPT_RSS_HASH_M            GENMASK(7, 6)
+#define ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ         0x0U
+#define ICE_AQ_VSI_Q_OPT_RSS_HASH_SYM_TPLZ     0x1U
+#define ICE_AQ_VSI_Q_OPT_RSS_HASH_XOR          0x2U
+#define ICE_AQ_VSI_Q_OPT_RSS_HASH_JHASH                0x3U
        u8 q_opt_tc;
 #define ICE_AQ_VSI_Q_OPT_TC_OVR_S              0
 #define ICE_AQ_VSI_Q_OPT_TC_OVR_M              (0x1F << 
ICE_AQ_VSI_Q_OPT_TC_OVR_S)
diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c 
b/drivers/net/ethernet/intel/ice/ice_lib.c
index 394f915290f6..453eba59abb2 100644
--- a/drivers/net/ethernet/intel/ice/ice_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
@@ -984,7 +984,8 @@ static void ice_set_dflt_vsi_ctx(struct ice_hw *hw, struct 
ice_vsi_ctx *ctxt)
         */
        if (ice_is_dvm_ena(hw)) {
                ctxt->info.inner_vlan_flags |=
-                       ICE_AQ_VSI_INNER_VLAN_EMODE_NOTHING;
+                       FIELD_PREP(ICE_AQ_VSI_INNER_VLAN_EMODE_M,
+                                  ICE_AQ_VSI_INNER_VLAN_EMODE_NOTHING);
                ctxt->info.outer_vlan_flags =
                        FIELD_PREP(ICE_AQ_VSI_OUTER_VLAN_TX_MODE_M,
                                   ICE_AQ_VSI_OUTER_VLAN_TX_MODE_ALL);
@@ -1183,12 +1184,12 @@ static void ice_set_rss_vsi_ctx(struct ice_vsi_ctx 
*ctxt, struct ice_vsi *vsi)
        case ICE_VSI_PF:
                /* PF VSI will inherit RSS instance of PF */
                lut_type = ICE_AQ_VSI_Q_OPT_RSS_LUT_PF;
-               hash_type = ICE_AQ_VSI_Q_OPT_RSS_TPLZ;
+               hash_type = ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ;
                break;
        case ICE_VSI_VF:
                /* VF VSI will gets a small RSS table which is a VSI LUT type */
                lut_type = ICE_AQ_VSI_Q_OPT_RSS_LUT_VSI;
-               hash_type = ICE_AQ_VSI_Q_OPT_RSS_TPLZ;
+               hash_type = ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ;
                break;
        default:
                dev_dbg(dev, "Unsupported VSI type %s\n",
diff --git a/drivers/net/ethernet/intel/ice/ice_virtchnl.c 
b/drivers/net/ethernet/intel/ice/ice_virtchnl.c
index 8bec83965e50..727aebe24b92 100644
--- a/drivers/net/ethernet/intel/ice/ice_virtchnl.c
+++ b/drivers/net/ethernet/intel/ice/ice_virtchnl.c
@@ -823,8 +823,8 @@ static int ice_vc_handle_rss_cfg(struct ice_vf *vf, u8 
*msg, bool add)
                int status;
 
                lut_type = ICE_AQ_VSI_Q_OPT_RSS_LUT_VSI;
-               hash_type = add ? ICE_AQ_VSI_Q_OPT_RSS_XOR :
-                               ICE_AQ_VSI_Q_OPT_RSS_TPLZ;
+               hash_type = add ? ICE_AQ_VSI_Q_OPT_RSS_HASH_XOR :
+                               ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ;
 
                ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
                if (!ctx) {
@@ -832,9 +832,9 @@ static int ice_vc_handle_rss_cfg(struct ice_vf *vf, u8 
*msg, bool add)
                        goto error_param;
                }
 
-               ctx->info.q_opt_rss = FIELD_PREP(ICE_AQ_VSI_Q_OPT_RSS_LUT_M,
-                                                lut_type) |
-                                     (hash_type & ICE_AQ_VSI_Q_OPT_RSS_HASH_M);
+               ctx->info.q_opt_rss =
+                       FIELD_PREP(ICE_AQ_VSI_Q_OPT_RSS_LUT_M, lut_type) |
+                       FIELD_PREP(ICE_AQ_VSI_Q_OPT_RSS_HASH_M, hash_type);
 
                /* Preserve existing queueing option setting */
                ctx->info.q_opt_rss |= (vsi->info.q_opt_rss &
diff --git a/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c 
b/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c
index 737f72694ac7..71b4e14d9477 100644
--- a/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.c
@@ -131,6 +131,7 @@ static int ice_vsi_manage_vlan_stripping(struct ice_vsi 
*vsi, bool ena)
 {
        struct ice_hw *hw = &vsi->back->hw;
        struct ice_vsi_ctx *ctxt;
+       u8 *ivf;
        int err;
 
        /* do not allow modifying VLAN stripping when a port VLAN is configured
@@ -143,19 +144,24 @@ static int ice_vsi_manage_vlan_stripping(struct ice_vsi 
*vsi, bool ena)
        if (!ctxt)
                return -ENOMEM;
 
+       ivf = &ctxt->info.inner_vlan_flags;
+
        /* Here we are configuring what the VSI should do with the VLAN tag in
         * the Rx packet. We can either leave the tag in the packet or put it in
         * the Rx descriptor.
         */
-       if (ena)
+       if (ena) {
                /* Strip VLAN tag from Rx packet and put it in the desc */
-               ctxt->info.inner_vlan_flags = 
ICE_AQ_VSI_INNER_VLAN_EMODE_STR_BOTH;
-       else
+               *ivf = FIELD_PREP(ICE_AQ_VSI_INNER_VLAN_EMODE_M,
+                                 ICE_AQ_VSI_INNER_VLAN_EMODE_STR_BOTH);
+       } else {
                /* Disable stripping. Leave tag in packet */
-               ctxt->info.inner_vlan_flags = 
ICE_AQ_VSI_INNER_VLAN_EMODE_NOTHING;
+               *ivf = FIELD_PREP(ICE_AQ_VSI_INNER_VLAN_EMODE_M,
+                                 ICE_AQ_VSI_INNER_VLAN_EMODE_NOTHING);
+       }
 
        /* Allow all packets untagged/tagged */
-       ctxt->info.inner_vlan_flags |= ICE_AQ_VSI_INNER_VLAN_TX_MODE_ALL;
+       *ivf |= ICE_AQ_VSI_INNER_VLAN_TX_MODE_ALL;
 
        ctxt->info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_VLAN_VALID);
 
-- 
2.39.3

_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@osuosl.org
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan

Reply via email to