diff options
| author | gaolez <gaolez@codeaurora.org> | 2018-03-28 15:04:13 +0800 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2018-04-11 02:30:21 -0700 |
| commit | 8be4679f7006db6506a419c44bd383f11a9ff77c (patch) | |
| tree | a0c66bdec4082c99e632677852953dade7977e84 | |
| parent | 08effe26002da74338940c7f02c2a1517af9d576 (diff) | |
qcacld-3.0: fix compatible issue for timestamping feature
qcacld-2.0 to qcacld-3.0 propagation
Use qdf_do_div() for 64 bit division, because '/' can't be used for
64 bit division on arm32 platform.
Change-Id: I19a1db8adbc1fe7acaee0ec824f670b67284f628
CRs-Fixed: 2155143
| -rw-r--r-- | core/hdd/src/wlan_hdd_tsf.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/core/hdd/src/wlan_hdd_tsf.c b/core/hdd/src/wlan_hdd_tsf.c index 5bacd90cf155..a11a6dc98ac9 100644 --- a/core/hdd/src/wlan_hdd_tsf.c +++ b/core/hdd/src/wlan_hdd_tsf.c @@ -282,9 +282,6 @@ static enum hdd_tsf_op_result hdd_indicate_tsf_internal( */ #define WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC 10 #define WLAN_HDD_CAPTURE_TSF_INIT_INTERVAL_MS 100 -#define NORMAL_INTERVAL_TARGET \ - ((int64_t)((int64_t)WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC * \ - NSEC_PER_SEC / HOST_TO_TARGET_TIME_RATIO)) #define OVERFLOW_INDICATOR32 (((int64_t)0x1) << 32) #define CAP_TSF_TIMER_FIX_SEC 1 @@ -553,6 +550,7 @@ static inline int32_t hdd_get_hosttime_from_targettime( int32_t ret = -EINVAL; int64_t delta32_target; bool in_cap_state; + int64_t normal_interval_target; in_cap_state = hdd_tsf_is_in_cap(adapter); @@ -567,11 +565,15 @@ static inline int32_t hdd_get_hosttime_from_targettime( delta32_target = (int64_t)((target_time & U32_MAX) - (adapter->last_target_time & U32_MAX)); + normal_interval_target = + qdf_do_div(WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC * + NSEC_PER_SEC, HOST_TO_TARGET_TIME_RATIO); + if (delta32_target < - (NORMAL_INTERVAL_TARGET - OVERFLOW_INDICATOR32)) + (normal_interval_target - OVERFLOW_INDICATOR32)) delta32_target += OVERFLOW_INDICATOR32; else if (delta32_target > - (OVERFLOW_INDICATOR32 - NORMAL_INTERVAL_TARGET)) + (OVERFLOW_INDICATOR32 - normal_interval_target)) delta32_target -= OVERFLOW_INDICATOR32; ret = hdd_64bit_plus(adapter->last_host_time, |
