From: Kishore Padmanabha <kishore.padmana...@broadcom.com>

The cache table id is not needed anymore since the value can
be calculated from resource sub type and direction.

Signed-off-by: Kishore Padmanabha <kishore.padmana...@broadcom.com>
Reviewed-by: Michael Baucom <michael.bau...@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.ko...@broadcom.com>
---
 drivers/net/bnxt/tf_ulp/ulp_mapper.c          | 21 +++++++++++++++------
 drivers/net/bnxt/tf_ulp/ulp_template_db.c     |  5 -----
 drivers/net/bnxt/tf_ulp/ulp_template_struct.h |  2 --
 3 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/drivers/net/bnxt/tf_ulp/ulp_mapper.c 
b/drivers/net/bnxt/tf_ulp/ulp_mapper.c
index 35b5d72..5db0da7 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_mapper.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_mapper.c
@@ -324,13 +324,14 @@ ulp_mapper_ident_fields_get(struct 
bnxt_ulp_mapper_class_tbl_info *tbl,
 
 static struct bnxt_ulp_mapper_cache_entry *
 ulp_mapper_cache_entry_get(struct bnxt_ulp_context *ulp,
-                          enum bnxt_ulp_cache_tbl_id id,
+                          uint32_t id,
                           uint16_t key)
 {
        struct bnxt_ulp_mapper_data *mapper_data;
 
        mapper_data = bnxt_ulp_cntxt_ptr2_mapper_data_get(ulp);
-       if (!mapper_data || !mapper_data->cache_tbl[id]) {
+       if (!mapper_data || id >= BNXT_ULP_CACHE_TBL_MAX_SZ ||
+           !mapper_data->cache_tbl[id]) {
                BNXT_TF_DBG(ERR, "Unable to acquire the cache tbl (%d)\n", id);
                return NULL;
        }
@@ -1691,8 +1692,15 @@ ulp_mapper_cache_tbl_process(struct 
bnxt_ulp_mapper_parms *parms,
         */
        cache_key = ulp_blob_data_get(&key, &tmplen);
        ckey = (uint16_t *)cache_key;
+
+       /*
+        * The id computed based on resource sub type and direction where
+        * dir is the bit0 and rest of the bits come from resource
+        * sub type.
+        */
        cache_entry = ulp_mapper_cache_entry_get(parms->ulp_ctx,
-                                                tbl->cache_tbl_id,
+                                                (tbl->resource_sub_type << 1 |
+                                                (tbl->direction & 0x1)),
                                                 *ckey);
 
        /*
@@ -1756,12 +1764,13 @@ ulp_mapper_cache_tbl_process(struct 
bnxt_ulp_mapper_parms *parms,
        fid_parms.resource_func = tbl->resource_func;
 
        /*
-        * Cache resource type is composed of both table_type and cache_tbl_id
-        * need to set it appropriately via setter.
+        * Cache resource type is composed of table_type, resource
+        * sub type and direction, it needs to set appropriately via setter.
         */
        ulp_mapper_cache_res_type_set(&fid_parms,
                                      tbl->resource_type,
-                                     tbl->cache_tbl_id);
+                                     (tbl->resource_sub_type << 1 |
+                                      (tbl->direction & 0x1)));
        fid_parms.resource_hndl = (uint64_t)*ckey;
        fid_parms.critical_resource = tbl->critical_resource;
        rc = ulp_flow_db_resource_add(parms->ulp_ctx,
diff --git a/drivers/net/bnxt/tf_ulp/ulp_template_db.c 
b/drivers/net/bnxt/tf_ulp/ulp_template_db.c
index 9b793a2..140f96a 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_template_db.c
+++ b/drivers/net/bnxt/tf_ulp/ulp_template_db.c
@@ -606,7 +606,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] 
= {
        .ident_nums = 1,
        .mark_enable = BNXT_ULP_MARK_ENABLE_NO,
        .critical_resource = 0,
-       .cache_tbl_id = BNXT_ULP_CACHE_TBL_ID_L2_CNTXT_TCAM_INGRESS,
        .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
        },
        {
@@ -627,7 +626,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] 
= {
        .ident_nums = 0,
        .mark_enable = BNXT_ULP_MARK_ENABLE_NO,
        .critical_resource = 0,
-       .cache_tbl_id = 0,
        .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
        },
        {
@@ -648,7 +646,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] 
= {
        .ident_nums = 1,
        .mark_enable = BNXT_ULP_MARK_ENABLE_NO,
        .critical_resource = 0,
-       .cache_tbl_id = BNXT_ULP_CACHE_TBL_ID_PROFILE_TCAM_INGRESS,
        .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
        },
        {
@@ -669,7 +666,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] 
= {
        .ident_nums = 0,
        .mark_enable = BNXT_ULP_MARK_ENABLE_NO,
        .critical_resource = 0,
-       .cache_tbl_id = 0,
        .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
        },
        {
@@ -690,7 +686,6 @@ struct bnxt_ulp_mapper_class_tbl_info ulp_class_tbl_list[] 
= {
        .ident_nums = 0,
        .mark_enable = BNXT_ULP_MARK_ENABLE_YES,
        .critical_resource = 1,
-       .cache_tbl_id = 0,
        .regfile_wr_idx = BNXT_ULP_REGFILE_INDEX_NOT_USED
        }
 };
diff --git a/drivers/net/bnxt/tf_ulp/ulp_template_struct.h 
b/drivers/net/bnxt/tf_ulp/ulp_template_struct.h
index ce449d0..eebe035 100644
--- a/drivers/net/bnxt/tf_ulp/ulp_template_struct.h
+++ b/drivers/net/bnxt/tf_ulp/ulp_template_struct.h
@@ -182,8 +182,6 @@ struct bnxt_ulp_mapper_class_tbl_info {
 
        uint8_t         mark_enable;
        enum bnxt_ulp_regfile_index     regfile_wr_idx;
-
-       enum bnxt_ulp_cache_tbl_id cache_tbl_id;
 };
 
 struct bnxt_ulp_mapper_act_tbl_info {
-- 
2.7.4

Reply via email to