From 8aa1a67c4712ec462968d1e0c6beab343793518b Mon Sep 17 00:00:00 2001 From: Franck Lenormand Date: Wed, 8 Sep 2021 12:29:49 +0530 Subject: [PATCH] common/dpaax/caamflib: remove DPOVRD clear for SDAP For SDAP, we are not using the protocol operation to perform 4G/LTE operation so the DPOVRD option is not used. Removing it save some space in the descriptor buffer and execution time. Signed-off-by: Franck Lenormand Acked-by: Akhil Goyal --- drivers/common/dpaax/caamflib/desc/pdcp.h | 14 ++++++++------ drivers/common/dpaax/caamflib/desc/sdap.h | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/common/dpaax/caamflib/desc/pdcp.h b/drivers/common/dpaax/caamflib/desc/pdcp.h index e97d58cbc1..5b3d846099 100644 --- a/drivers/common/dpaax/caamflib/desc/pdcp.h +++ b/drivers/common/dpaax/caamflib/desc/pdcp.h @@ -2546,7 +2546,8 @@ static inline int insert_hfn_ov_op(struct program *p, uint32_t shift, enum pdb_type_e pdb_type, - unsigned char era_2_sw_hfn_ovrd) + unsigned char era_2_sw_hfn_ovrd, + bool clear_dpovrd_at_end) { uint32_t imm = PDCP_DPOVRD_HFN_OV_EN; uint16_t hfn_pdb_offset; @@ -2597,13 +2598,14 @@ insert_hfn_ov_op(struct program *p, MATHB(p, MATH0, SHLD, MATH0, MATH0, 8, 0); MOVE(p, MATH0, 0, DESCBUF, hfn_pdb_offset, 4, IMMED); - if (rta_sec_era >= RTA_SEC_ERA_8) + if (clear_dpovrd_at_end && (rta_sec_era >= RTA_SEC_ERA_8)) { /* * For ERA8, DPOVRD could be handled by the PROTOCOL command * itself. For now, this is not done. Thus, clear DPOVRD here * to alleviate any side-effects. */ MATHB(p, DPOVRD, AND, ZERO, DPOVRD, 4, STL); + } SET_LABEL(p, keyjump); PATCH_JUMP(p, pkeyjump, keyjump); @@ -2989,7 +2991,7 @@ cnstr_shdsc_pdcp_c_plane_encap(uint32_t *descbuf, SET_LABEL(p, pdb_end); err = insert_hfn_ov_op(p, sn_size, pdb_type, - era_2_sw_hfn_ovrd); + era_2_sw_hfn_ovrd, true); if (err) return err; @@ -3143,7 +3145,7 @@ cnstr_shdsc_pdcp_c_plane_decap(uint32_t *descbuf, SET_LABEL(p, pdb_end); err = insert_hfn_ov_op(p, sn_size, pdb_type, - era_2_sw_hfn_ovrd); + era_2_sw_hfn_ovrd, true); if (err) return err; @@ -3319,7 +3321,7 @@ cnstr_shdsc_pdcp_u_plane_encap(uint32_t *descbuf, } SET_LABEL(p, pdb_end); - err = insert_hfn_ov_op(p, sn_size, pdb_type, era_2_sw_hfn_ovrd); + err = insert_hfn_ov_op(p, sn_size, pdb_type, era_2_sw_hfn_ovrd, true); if (err) return err; @@ -3523,7 +3525,7 @@ cnstr_shdsc_pdcp_u_plane_decap(uint32_t *descbuf, } SET_LABEL(p, pdb_end); - err = insert_hfn_ov_op(p, sn_size, pdb_type, era_2_sw_hfn_ovrd); + err = insert_hfn_ov_op(p, sn_size, pdb_type, era_2_sw_hfn_ovrd, true); if (err) return err; diff --git a/drivers/common/dpaax/caamflib/desc/sdap.h b/drivers/common/dpaax/caamflib/desc/sdap.h index f1c49ea3e6..d5d5850b4f 100644 --- a/drivers/common/dpaax/caamflib/desc/sdap.h +++ b/drivers/common/dpaax/caamflib/desc/sdap.h @@ -990,7 +990,7 @@ cnstr_shdsc_pdcp_sdap_u_plane(uint32_t *descbuf, SET_LABEL(p, pdb_end); /* Inser the HFN override operation */ - err = insert_hfn_ov_op(p, sn_size, pdb_type, era_2_sw_hfn_ovrd); + err = insert_hfn_ov_op(p, sn_size, pdb_type, era_2_sw_hfn_ovrd, false); if (err) return err; -- 2.20.1