qcacld-3.0: Set current mode properly for TDLS

This change fixes two issues about TDLS:
    1. It updates current mode only if tdls vdev object is NULL.
    2. Handles pre-scan callback but ignore scan done callback if device
       type isn't station or P2P client.

Change-Id: I4badbf3a7c40eca813a6360817d5483be88f2c5d
CRs-Fixed: 2769638
This commit is contained in:
Wu Gao 2020-08-24 17:00:20 +08:00 • committed by snandini
commit 56afad67cb

View file

@ -1583,7 +1583,7 @@ static void tdls_set_current_mode(struct tdls_soc_priv_obj *tdls_soc,
if (vdev) {
tdls_debug("set mode in tdls vdev ");
tdls_vdev = wlan_vdev_get_tdls_vdev_obj(vdev);
if (!tdls_vdev)
if (tdls_vdev)
tdls_set_mode_in_vdev(tdls_vdev, tdls_soc,
tdls_mode, source);
wlan_objmgr_vdev_release_ref(vdev, WLAN_TDLS_NB_ID);
@ -1596,7 +1596,7 @@ static void tdls_set_current_mode(struct tdls_soc_priv_obj *tdls_soc,
if (vdev) {
tdls_debug("set mode in tdls vdev ");
tdls_vdev = wlan_vdev_get_tdls_vdev_obj(vdev);
if (!tdls_vdev)
if (tdls_vdev)
tdls_set_mode_in_vdev(tdls_vdev, tdls_soc,
tdls_mode, source);
wlan_objmgr_vdev_release_ref(vdev, WLAN_TDLS_NB_ID);
@ -1694,9 +1694,6 @@ void tdls_scan_complete_event_handler(struct wlan_objmgr_vdev *vdev,
device_mode = wlan_vdev_mlme_get_opmode(vdev);
if (device_mode != QDF_STA_MODE &&
device_mode != QDF_P2P_CLIENT_MODE)
return;
tdls_soc = (struct tdls_soc_priv_obj *) arg;
tdls_post_scan_done_msg(tdls_soc);
}