OSDN Git Service

msm: ipa3: Fix IPA aggregation register val-mask calculation
authorGhanim Fodi <gfodi@codeaurora.org>
Tue, 23 Jan 2018 20:07:42 +0000 (22:07 +0200)
committerNathan Chancellor <natechancellor@gmail.com>
Fri, 27 Sep 2019 07:42:36 +0000 (00:42 -0700)
The register value and mask used to configure IPA
aggregation are miscalculated at IPA HAL.
The mask value used per H/W version is pre-shifted
and there is no need to shift it.

Change-Id: Ia269e91a96430fc96975cb15b6b37b250f05eda7
Signed-off-by: Ghanim Fodi <gfodi@codeaurora.org>
Link: https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/?id=189a5aa30fc8bddc0e6f7f88dc5007e6d9601bea
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
drivers/platform/msm/ipa/ipa_v3/ipahal/ipahal_reg.c

index 9fe7b6c..0d8dc6a 100644 (file)
@@ -1530,15 +1530,13 @@ void ipahal_get_disable_aggr_valmask(struct ipahal_reg_valmask *valmask)
                return;
        }
 
-       valmask->val = (1 & IPA_ENDP_INIT_AGGR_n_AGGR_FORCE_CLOSE_BMSK) <<
-               IPA_ENDP_INIT_AGGR_n_AGGR_FORCE_CLOSE_SHFT;
-       valmask->mask = IPA_ENDP_INIT_AGGR_n_AGGR_FORCE_CLOSE_BMSK <<
-               IPA_ENDP_INIT_AGGR_n_AGGR_FORCE_CLOSE_SHFT;
-
-       valmask->val |= ((0 & IPA_ENDP_INIT_AGGR_n_AGGR_EN_BMSK) <<
-               IPA_ENDP_INIT_AGGR_n_AGGR_EN_SHFT);
-       valmask->mask |= ((IPA_ENDP_INIT_AGGR_n_AGGR_EN_BMSK <<
-               IPA_ENDP_INIT_AGGR_n_AGGR_EN_SHFT));
+       valmask->val = (1 << IPA_ENDP_INIT_AGGR_n_AGGR_FORCE_CLOSE_SHFT) &&
+               IPA_ENDP_INIT_AGGR_n_AGGR_FORCE_CLOSE_BMSK;
+       valmask->mask = IPA_ENDP_INIT_AGGR_n_AGGR_FORCE_CLOSE_BMSK;
+
+       valmask->val |= ((0 << IPA_ENDP_INIT_AGGR_n_AGGR_EN_SHFT) &&
+               IPA_ENDP_INIT_AGGR_n_AGGR_EN_BMSK);
+       valmask->mask |= IPA_ENDP_INIT_AGGR_n_AGGR_EN_BMSK;
 }
 
 u32 ipahal_aggr_get_max_byte_limit(void)
@@ -1584,7 +1582,7 @@ void ipahal_get_aggr_force_close_valmask(int ep_idx,
                return;
        }
        IPA_SETFIELD_IN_REG(valmask->val, 1 << ep_idx, shft, bmsk);
-       valmask->mask = bmsk << shft;
+       valmask->mask = bmsk;
 }
 
 void ipahal_get_fltrt_hash_flush_valmask(