qcacld-3.0: Handle WMI_ROAM_EVENTID with deauth/disassoc reason
When AP sends deauthentication/disassociation frame, host will
handle the deauth/disassoc frame. If the ini
"enable_disconnect_roam_offload" is enabled, firmware will
trigger a roam scan immediately after deauth/disassoc is
received and roam to a new AP. If roam failure happens after
this roam scan, firmware will send WMI_ROAM_EVENTID with reason
WMI_ROAM_REASON_DEAUTH.
Register a WMA callback to call the PE disconnect handler
function. This will call lim_tear_down_link_with_ap() to
handle the deauth state machine changes and posts message to
sme to inform the link lost info.
Change-Id: I404b019595b96c0710d09cb9218e3a1d28924fc7
CRs-Fixed: 2443219
diff --git a/core/wma/inc/wma_types.h b/core/wma/inc/wma_types.h
index d02b5a3..c8fc52e 100644
--- a/core/wma/inc/wma_types.h
+++ b/core/wma/inc/wma_types.h
@@ -726,7 +726,9 @@
QDF_STATUS (*pe_roam_synch_cb)(struct mac_context *mac,
struct roam_offload_synch_ind *roam_synch_data,
struct bss_description *bss_desc_ptr,
- enum sir_roam_op_code reason));
+ enum sir_roam_op_code reason),
+ QDF_STATUS (*pe_disconnect_cb) (struct mac_context *mac,
+ uint8_t vdev_id));
#else
static inline QDF_STATUS wma_register_roaming_callbacks(
QDF_STATUS (*csr_roam_synch_cb)(struct mac_context *mac,
@@ -736,7 +738,9 @@
QDF_STATUS (*pe_roam_synch_cb)(struct mac_context *mac,
struct roam_offload_synch_ind *roam_synch_data,
struct bss_description *bss_desc_ptr,
- enum sir_roam_op_code reason))
+ enum sir_roam_op_code reason),
+ QDF_STATUS (*pe_disconnect_cb) (struct mac_context *mac,
+ uint8_t vdev_id))
{
return QDF_STATUS_E_NOSUPPORT;
}