mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
qcacmn: Do not honor addba response Tx failure in roaming
Add callback to get the roaming status and do not honor addba response Tx failure. Change-Id: I148542fc3c629749fc08623f5041f6ca76fee298 CRs-Fixed: 2439721
This commit is contained in:
parent
a3a42b4675
commit
85de96c698
3 changed files with 26 additions and 5 deletions
|
|
@ -965,6 +965,8 @@ struct ol_if_ops {
|
|||
uint8_t *dest_macaddr,
|
||||
uint8_t *peer_macaddr,
|
||||
uint32_t flags);
|
||||
|
||||
bool (*is_roam_inprogress)(uint32_t vdev_id);
|
||||
/* TODO: Add any other control path calls required to OL_IF/WMA layer */
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -771,6 +771,12 @@ void dp_local_peer_id_pool_init(struct dp_pdev *pdev);
|
|||
void dp_local_peer_id_alloc(struct dp_pdev *pdev, struct dp_peer *peer);
|
||||
void dp_local_peer_id_free(struct dp_pdev *pdev, struct dp_peer *peer);
|
||||
#else
|
||||
static inline
|
||||
QDF_STATUS dp_get_vdevid(void *peer_handle, uint8_t *vdev_id)
|
||||
{
|
||||
return QDF_STATUS_E_NOSUPPORT;
|
||||
}
|
||||
|
||||
static inline void dp_local_peer_id_pool_init(struct dp_pdev *pdev)
|
||||
{
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2315,13 +2315,26 @@ int dp_addba_resp_tx_completion_wifi3(void *peer_handle,
|
|||
rx_tid = &peer->rx_tid[tid];
|
||||
qdf_spin_lock_bh(&rx_tid->tid_lock);
|
||||
if (status) {
|
||||
struct ol_if_ops *ol_ops = NULL;
|
||||
bool is_roaming = false;
|
||||
uint8_t vdev_id = -1;
|
||||
|
||||
rx_tid->num_addba_rsp_failed++;
|
||||
dp_rx_tid_update_wifi3(peer, tid, 1, IEEE80211_SEQ_MAX);
|
||||
rx_tid->ba_status = DP_RX_BA_INACTIVE;
|
||||
ol_ops = peer->vdev->pdev->soc->cdp_soc.ol_ops;
|
||||
|
||||
if (ol_ops && ol_ops->is_roam_inprogress) {
|
||||
dp_get_vdevid(peer, &vdev_id);
|
||||
is_roaming = ol_ops->is_roam_inprogress(vdev_id);
|
||||
}
|
||||
|
||||
if (!is_roaming) {
|
||||
dp_rx_tid_update_wifi3(peer, tid, 1, IEEE80211_SEQ_MAX);
|
||||
rx_tid->ba_status = DP_RX_BA_INACTIVE;
|
||||
}
|
||||
|
||||
qdf_spin_unlock_bh(&rx_tid->tid_lock);
|
||||
QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
|
||||
"%s: Rx Tid- %d addba rsp tx completion failed!",
|
||||
__func__, tid);
|
||||
dp_err("RxTid- %d addba rsp tx completion failed, is_roaming %d",
|
||||
tid, is_roaming);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue