octeontx2-af: Use hashed field in MCAM key
[linux-2.6-block.git] / drivers / net / ethernet / marvell / octeontx2 / af / rvu_npc.c
index e05fd2b9a9292ab52b5bcfc5955605096bfb3835..86cf5794490f76ee609a9326c12233cb408714e5 100644 (file)
@@ -15,6 +15,7 @@
 #include "npc.h"
 #include "cgx.h"
 #include "npc_profile.h"
+#include "rvu_npc_hash.h"
 
 #define RSVD_MCAM_ENTRIES_PER_PF       3 /* Broadcast, Promisc and AllMulticast */
 #define RSVD_MCAM_ENTRIES_PER_NIXLF    1 /* Ucast for LFs */
@@ -1181,14 +1182,6 @@ void rvu_npc_free_mcam_entries(struct rvu *rvu, u16 pcifunc, int nixlf)
        rvu_npc_disable_default_entries(rvu, pcifunc, nixlf);
 }
 
-#define SET_KEX_LD(intf, lid, ltype, ld, cfg)  \
-       rvu_write64(rvu, blkaddr,                       \
-               NPC_AF_INTFX_LIDX_LTX_LDX_CFG(intf, lid, ltype, ld), cfg)
-
-#define SET_KEX_LDFLAGS(intf, ld, flags, cfg)  \
-       rvu_write64(rvu, blkaddr,                       \
-               NPC_AF_INTFX_LDATAX_FLAGSX_CFG(intf, ld, flags), cfg)
-
 static void npc_program_mkex_rx(struct rvu *rvu, int blkaddr,
                                struct npc_mcam_kex *mkex, u8 intf)
 {
@@ -1262,6 +1255,9 @@ static void npc_program_mkex_profile(struct rvu *rvu, int blkaddr,
                npc_program_mkex_rx(rvu, blkaddr, mkex, intf);
                npc_program_mkex_tx(rvu, blkaddr, mkex, intf);
        }
+
+       /* Programme mkex hash profile */
+       npc_program_mkex_hash(rvu, blkaddr);
 }
 
 static int npc_fwdb_prfl_img_map(struct rvu *rvu, void __iomem **prfl_img_addr,
@@ -1463,6 +1459,7 @@ static int npc_prepare_default_kpu(struct npc_kpu_profile_adapter *profile)
        profile->kpus = ARRAY_SIZE(npc_kpu_profiles);
        profile->lt_def = &npc_lt_defaults;
        profile->mkex = &npc_mkex_default;
+       profile->mkex_hash = &npc_mkex_hash_default;
 
        return 0;
 }
@@ -2047,6 +2044,7 @@ int rvu_npc_init(struct rvu *rvu)
 
        rvu_npc_setup_interfaces(rvu, blkaddr);
 
+       npc_config_secret_key(rvu, blkaddr);
        /* Configure MKEX profile */
        npc_load_mkex_profile(rvu, blkaddr, rvu->mkex_pfl_name);