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
This commit is contained in:
gaolez
2018-03-28 15:04:13 +08:00
committed by nshrivas
parent 836bc91b07
commit d11c7c5569

View File

@@ -283,9 +283,6 @@ static enum hdd_tsf_op_result hdd_indicate_tsf_internal(
*/ */
#define WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC 10 #define WLAN_HDD_CAPTURE_TSF_INTERVAL_SEC 10
#define WLAN_HDD_CAPTURE_TSF_INIT_INTERVAL_MS 100 #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 OVERFLOW_INDICATOR32 (((int64_t)0x1) << 32)
#define CAP_TSF_TIMER_FIX_SEC 1 #define CAP_TSF_TIMER_FIX_SEC 1
@@ -554,6 +551,7 @@ static inline int32_t hdd_get_hosttime_from_targettime(
int32_t ret = -EINVAL; int32_t ret = -EINVAL;
int64_t delta32_target; int64_t delta32_target;
bool in_cap_state; bool in_cap_state;
int64_t normal_interval_target;
in_cap_state = hdd_tsf_is_in_cap(adapter); in_cap_state = hdd_tsf_is_in_cap(adapter);
@@ -568,11 +566,15 @@ static inline int32_t hdd_get_hosttime_from_targettime(
delta32_target = (int64_t)((target_time & U32_MAX) - delta32_target = (int64_t)((target_time & U32_MAX) -
(adapter->last_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 < if (delta32_target <
(NORMAL_INTERVAL_TARGET - OVERFLOW_INDICATOR32)) (normal_interval_target - OVERFLOW_INDICATOR32))
delta32_target += OVERFLOW_INDICATOR32; delta32_target += OVERFLOW_INDICATOR32;
else if (delta32_target > else if (delta32_target >
(OVERFLOW_INDICATOR32 - NORMAL_INTERVAL_TARGET)) (OVERFLOW_INDICATOR32 - normal_interval_target))
delta32_target -= OVERFLOW_INDICATOR32; delta32_target -= OVERFLOW_INDICATOR32;
ret = hdd_64bit_plus(adapter->last_host_time, ret = hdd_64bit_plus(adapter->last_host_time,