|
@@ -52,15 +52,16 @@
|
|
|
#include "wlan_dp_ucfg_api.h"
|
|
|
#include "wma.h"
|
|
|
|
|
|
-void hdd_handle_disassociation_event(struct hdd_adapter *adapter,
|
|
|
+void hdd_handle_disassociation_event(struct wlan_hdd_link_info *link_info,
|
|
|
struct qdf_mac_addr *peer_macaddr)
|
|
|
{
|
|
|
+ struct hdd_adapter *adapter = link_info->adapter;
|
|
|
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
|
|
struct hdd_station_ctx *sta_ctx;
|
|
|
ol_txrx_soc_handle soc = cds_get_context(QDF_MODULE_ID_SOC);
|
|
|
struct wlan_objmgr_vdev *vdev;
|
|
|
|
|
|
- sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter->deflink);
|
|
|
+ sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(link_info);
|
|
|
hdd_green_ap_start_state_mc(hdd_ctx, adapter->device_mode, false);
|
|
|
|
|
|
wlan_hdd_auto_shutdown_enable(hdd_ctx, true);
|
|
@@ -70,12 +71,12 @@ void hdd_handle_disassociation_event(struct hdd_adapter *adapter,
|
|
|
/* send peer status indication to oem app */
|
|
|
hdd_send_peer_status_ind_to_app(peer_macaddr,
|
|
|
ePeerDisconnected, 0,
|
|
|
- adapter->deflink->vdev_id, NULL,
|
|
|
+ link_info->vdev_id, NULL,
|
|
|
adapter->device_mode);
|
|
|
|
|
|
hdd_lpass_notify_disconnect(adapter);
|
|
|
|
|
|
- vdev = hdd_objmgr_get_vdev_by_user(adapter->deflink, WLAN_DP_ID);
|
|
|
+ vdev = hdd_objmgr_get_vdev_by_user(link_info, WLAN_DP_ID);
|
|
|
if (vdev) {
|
|
|
ucfg_dp_del_latency_critical_client(vdev,
|
|
|
hdd_convert_cfgdot11mode_to_80211mode(
|
|
@@ -122,14 +123,16 @@ static void hdd_cm_print_bss_info(struct hdd_station_ctx *hdd_sta_ctx)
|
|
|
conn_info->hs20vendor_ie.release_num : 0);
|
|
|
}
|
|
|
|
|
|
-void __hdd_cm_disconnect_handler_pre_user_update(struct hdd_adapter *adapter)
|
|
|
+void
|
|
|
+__hdd_cm_disconnect_handler_pre_user_update(struct wlan_hdd_link_info *link_info)
|
|
|
{
|
|
|
+ struct hdd_adapter *adapter = link_info->adapter;
|
|
|
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
|
|
struct hdd_station_ctx *sta_ctx;
|
|
|
uint32_t time_buffer_size;
|
|
|
struct wlan_objmgr_vdev *vdev;
|
|
|
|
|
|
- sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter->deflink);
|
|
|
+ sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(link_info);
|
|
|
hdd_stop_tsf_sync(adapter);
|
|
|
time_buffer_size = sizeof(sta_ctx->conn_info.connect_time);
|
|
|
qdf_mem_zero(sta_ctx->conn_info.connect_time, time_buffer_size);
|
|
@@ -138,12 +141,12 @@ void __hdd_cm_disconnect_handler_pre_user_update(struct hdd_adapter *adapter)
|
|
|
&sta_ctx->conn_info.bssid)))
|
|
|
ucfg_ipa_wlan_evt(hdd_ctx->pdev, adapter->dev,
|
|
|
adapter->device_mode,
|
|
|
- adapter->deflink->vdev_id,
|
|
|
+ link_info->vdev_id,
|
|
|
WLAN_IPA_STA_DISCONNECT,
|
|
|
sta_ctx->conn_info.bssid.bytes,
|
|
|
false);
|
|
|
|
|
|
- vdev = hdd_objmgr_get_vdev_by_user(adapter->deflink, WLAN_DP_ID);
|
|
|
+ vdev = hdd_objmgr_get_vdev_by_user(link_info, WLAN_DP_ID);
|
|
|
if (vdev) {
|
|
|
ucfg_dp_periodic_sta_stats_stop(vdev);
|
|
|
hdd_objmgr_put_vdev_by_user(vdev, WLAN_DP_ID);
|
|
@@ -152,7 +155,7 @@ void __hdd_cm_disconnect_handler_pre_user_update(struct hdd_adapter *adapter)
|
|
|
wlan_hdd_auto_shutdown_enable(hdd_ctx, true);
|
|
|
|
|
|
DPTRACE(qdf_dp_trace_mgmt_pkt(QDF_DP_TRACE_MGMT_PACKET_RECORD,
|
|
|
- adapter->deflink->vdev_id,
|
|
|
+ link_info->vdev_id,
|
|
|
QDF_TRACE_DEFAULT_PDEV_ID,
|
|
|
QDF_PROTO_TYPE_MGMT, QDF_PROTO_MGMT_DISASSOC));
|
|
|
|
|
@@ -357,9 +360,9 @@ hdd_cm_disconnect_complete_pre_user_update(struct wlan_objmgr_vdev *vdev,
|
|
|
hdd_conn_set_authenticated(link_info, false);
|
|
|
hdd_napi_serialize(0);
|
|
|
hdd_disable_and_flush_mc_addr_list(adapter, pmo_peer_disconnect);
|
|
|
- __hdd_cm_disconnect_handler_pre_user_update(adapter);
|
|
|
+ __hdd_cm_disconnect_handler_pre_user_update(link_info);
|
|
|
|
|
|
- hdd_handle_disassociation_event(adapter, &rsp->req.req.bssid);
|
|
|
+ hdd_handle_disassociation_event(link_info, &rsp->req.req.bssid);
|
|
|
|
|
|
wlan_rec_conn_info(link_info->vdev_id,
|
|
|
DEBUG_CONN_DISCONNECT_HANDLER,
|