mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 08:07:32 -04:00
qcacld-3.0: Multiply wake_interval mantissa by TU
The QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_INTVL_MANTISSA attribute should be specified in multiples of TU. Correct the logic to multiply it by 1024 to get wake interval mantissa in microseconds. Change-Id: I2c6eb3ca5541b97cffbe0de44351571839fa00e6 CRs-Fixed: 2862107
This commit is contained in:
parent
d0e3a02dc5
commit
40955985cf
1 changed files with 12 additions and 3 deletions
|
|
@ -45,6 +45,7 @@
|
|||
#define TWT_SETUP_WAKE_INTVL_MANTISSA_MAX 0xFFFF
|
||||
#define TWT_SETUP_WAKE_DURATION_MAX 0xFFFF
|
||||
#define TWT_SETUP_WAKE_INTVL_EXP_MAX 31
|
||||
#define TWT_WAKE_INTVL_MULTIPLICATION_FACTOR 1024
|
||||
#define TWT_WAKE_DURATION_MULTIPLICATION_FACTOR 256
|
||||
#define TWT_MAX_NEXT_TWT_SIZE 3
|
||||
#define TWT_ALL_SESSIONS_DIALOG_ID 255
|
||||
|
|
@ -137,6 +138,7 @@ int hdd_twt_get_add_dialog_values(struct nlattr **tb,
|
|||
uint32_t wake_intvl_exp, result;
|
||||
int cmd_id;
|
||||
QDF_STATUS qdf_status;
|
||||
uint32_t wake_intvl_mantis_tu;
|
||||
|
||||
cmd_id = QCA_WLAN_VENDOR_ATTR_TWT_SETUP_FLOW_ID;
|
||||
if (tb[cmd_id]) {
|
||||
|
|
@ -229,11 +231,13 @@ int hdd_twt_get_add_dialog_values(struct nlattr **tb,
|
|||
hdd_err_rl("SETUP_WAKE_INTVL_MANTISSA is must");
|
||||
return -EINVAL;
|
||||
}
|
||||
params->wake_intvl_mantis = nla_get_u32(tb[cmd_id]);
|
||||
wake_intvl_mantis_tu = nla_get_u32(tb[cmd_id]);
|
||||
params->wake_intvl_mantis = wake_intvl_mantis_tu *
|
||||
TWT_WAKE_INTVL_MULTIPLICATION_FACTOR;
|
||||
if (params->wake_intvl_mantis >
|
||||
TWT_SETUP_WAKE_INTVL_MANTISSA_MAX) {
|
||||
hdd_err_rl("Invalid wake_intvl_mantis %u",
|
||||
params->wake_dura_us);
|
||||
params->wake_intvl_mantis);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
|
@ -1056,6 +1060,7 @@ hdd_twt_setup_pack_resp_nlmsg(struct sk_buff *reply_skb,
|
|||
enum qca_wlan_vendor_twt_status vendor_status;
|
||||
int response_type;
|
||||
uint32_t wake_duration;
|
||||
uint32_t wake_intvl_mantissa_tu;
|
||||
|
||||
hdd_enter();
|
||||
|
||||
|
|
@ -1111,6 +1116,7 @@ hdd_twt_setup_pack_resp_nlmsg(struct sk_buff *reply_skb,
|
|||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
hdd_debug("wake_dur_us %d", event->additional_params.wake_dur_us);
|
||||
wake_duration = (event->additional_params.wake_dur_us /
|
||||
TWT_WAKE_DURATION_MULTIPLICATION_FACTOR);
|
||||
if (nla_put_u32(reply_skb, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_DURATION,
|
||||
|
|
@ -1119,12 +1125,15 @@ hdd_twt_setup_pack_resp_nlmsg(struct sk_buff *reply_skb,
|
|||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
wake_intvl_mantissa_tu = (event->additional_params.wake_intvl_us /
|
||||
TWT_WAKE_INTVL_MULTIPLICATION_FACTOR);
|
||||
if (nla_put_u32(reply_skb,
|
||||
QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_INTVL_MANTISSA,
|
||||
event->additional_params.wake_intvl_us)) {
|
||||
wake_intvl_mantissa_tu)) {
|
||||
hdd_err("TWT: Failed to put wake interval us");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
hdd_debug("wake_intvl_mantissa in TU %d", wake_intvl_mantissa_tu);
|
||||
|
||||
if (nla_put_u8(reply_skb, QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_INTVL_EXP,
|
||||
0)) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue