Explorar el Código

qcacld-3.0: Fix peer rx tid queue not set up after roaming

After roaming, old peer is deleted and new peer is created,
rx tid queue of new peer need set up again.
In dp_rx_tid_setup_wifi3, if CM is in ROAMING state,
dp_peer_rx_reorder_queue_setup isn't called, REO queue descriptor
isn't configured correctly by host for FW to do reorder/pn check.

To fix it, in dp_rx_tid_setup_wifi3, if CM is in ROAMING state
and not ROAM_START substate, but ROAM SYNC state after roam sync
event received, dp_peer_rx_reorder_queue_setup still can be called,
rx tid queue of new peer will be set up.

Change-Id: I34fbb60ad509a0bc70e112c7ec53a862c8f9ce2d
CRs-Fixed: 3090061
Jianmin Zhu hace 3 años
padre
commit
fb4cf93504
Se han modificado 2 ficheros con 2 adiciones y 2 borrados
  1. 1 1
      core/wma/inc/wma.h
  2. 1 1
      core/wma/src/wma_data.c

+ 1 - 1
core/wma/inc/wma.h

@@ -2325,7 +2325,7 @@ int wma_dp_send_delba_ind(uint8_t vdev_id,
  * is_roam_inprogress() - Is vdev in progress
  * @vdev_id: vdev of interest
  *
- * Return: true if roaming, false otherwise
+ * Return: true if roaming started,  false during roam sync and otherwise
  */
 bool wma_is_roam_in_progress(uint32_t vdev_id);
 

+ 1 - 1
core/wma/src/wma_data.c

@@ -3187,5 +3187,5 @@ bool wma_is_roam_in_progress(uint32_t vdev_id)
 	if (opmode != QDF_STA_MODE && opmode != QDF_P2P_CLIENT_MODE)
 		return false;
 
-	return wlan_cm_is_vdev_roaming(wma->interfaces[vdev_id].vdev);
+	return wlan_cm_is_vdev_roam_started(wma->interfaces[vdev_id].vdev);
 }