qcacmn: Add support for STA inactive time in Hawkeye
Currently there is not STA inactive time support for lithium. Read inactive_time from htt_peer_stats_cmn_tlv by sending HTT_DBG_EXT_STATS_PEER_INFO to firmware. After sending command, wait on completion variable till firmware to response, trigger completion upon firmware response. CRs-Fixed: 2319219 Change-Id: I93e6343641ae5c72610a57dd6ba551cca0b010c1
This commit is contained in:
@@ -1643,6 +1643,12 @@ static inline void dp_process_htt_stat_msg(struct htt_stats_context *htt_stats,
|
||||
else
|
||||
dp_htt_stats_print_tag(tlv_type, tlv_start);
|
||||
|
||||
if (tlv_type == HTT_STATS_PEER_DETAILS_TAG ||
|
||||
tlv_type == HTT_STATS_PEER_STATS_CMN_TAG)
|
||||
dp_peer_update_inactive_time(pdev,
|
||||
tlv_type,
|
||||
tlv_start);
|
||||
|
||||
msg_remain_len -= tlv_remain_len;
|
||||
|
||||
msg_word = (uint32_t *)
|
||||
@@ -3608,3 +3614,38 @@ QDF_STATUS dp_h2t_cfg_stats_msg_send(struct dp_pdev *pdev,
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
dp_peer_update_inactive_time(struct dp_pdev *pdev, uint32_t tag_type,
|
||||
uint32_t *tag_buf)
|
||||
{
|
||||
switch (tag_type) {
|
||||
case HTT_STATS_PEER_DETAILS_TAG:
|
||||
{
|
||||
htt_peer_details_tlv *dp_stats_buf =
|
||||
(htt_peer_details_tlv *)tag_buf;
|
||||
|
||||
pdev->fw_stats_peer_id = dp_stats_buf->sw_peer_id;
|
||||
}
|
||||
break;
|
||||
case HTT_STATS_PEER_STATS_CMN_TAG:
|
||||
{
|
||||
htt_peer_stats_cmn_tlv *dp_stats_buf =
|
||||
(htt_peer_stats_cmn_tlv *)tag_buf;
|
||||
|
||||
struct dp_peer *peer = dp_peer_find_by_id(pdev->soc,
|
||||
pdev->fw_stats_peer_id);
|
||||
|
||||
if (peer && !peer->bss_peer) {
|
||||
peer->stats.tx.inactive_time =
|
||||
dp_stats_buf->inactive_time;
|
||||
qdf_event_set(&pdev->fw_peer_stats_event);
|
||||
}
|
||||
if (peer)
|
||||
dp_peer_unref_del_find_by_id(peer);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
qdf_err("Invalid tag_type");
|
||||
}
|
||||
}
|
||||
|
مرجع در شماره جدید
Block a user