qcacld-3.0: Enable event handler for WOW_REASON_ROAM_HO
When roaming engine in firmware comes across handoff-failure and
host processor is in sleep state, it sends WOW_REASON_ROAM_HO. Enable
that reason code to follow the code path that leads into
wma_roam_event_callback() where it is handled as normal.
Modify peer debug log messages for better information for this
event.
CRs-Fixed: 2002239
Change-Id: I9ed854382287077ea66de78ce05e3d24c74058f3
This commit is contained in:
parent
363764ff55
commit
6d2c97a1d8
@ -1641,6 +1641,8 @@ static int wow_get_wmi_eventid(int32_t reason, uint32_t tag)
|
||||
return wma_ndp_get_eventid_from_tlvtag(tag);
|
||||
case WOW_REASON_TDLS_CONN_TRACKER_EVENT:
|
||||
return WOW_TDLS_CONN_TRACKER_EVENT;
|
||||
case WOW_REASON_ROAM_HO:
|
||||
return WMI_ROAM_EVENTID;
|
||||
default:
|
||||
WMA_LOGD(FL("No Event Id for WOW reason %s(%d)"),
|
||||
wma_wow_wake_reason_str(reason), reason);
|
||||
@ -1672,6 +1674,7 @@ static bool is_piggybacked_event(int32_t reason)
|
||||
case WOW_REASON_NAN_EVENT:
|
||||
case WOW_REASON_NAN_DATA:
|
||||
case WOW_REASON_TDLS_CONN_TRACKER_EVENT:
|
||||
case WOW_REASON_ROAM_HO:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
@ -2353,7 +2356,7 @@ static int wma_wake_event_piggybacked(
|
||||
WMI_WOW_WAKEUP_HOST_EVENTID_param_tlvs *event_param,
|
||||
uint32_t length)
|
||||
{
|
||||
int errno;
|
||||
int errno = 0;
|
||||
void *pb_event;
|
||||
uint32_t pb_event_len;
|
||||
uint32_t wake_reason;
|
||||
@ -2417,8 +2420,27 @@ static int wma_wake_event_piggybacked(
|
||||
errno = wma_csa_offload_handler(wma, pb_event, pb_event_len);
|
||||
break;
|
||||
|
||||
/*
|
||||
* WOW_REASON_LOW_RSSI is used for following roaming events -
|
||||
* WMI_ROAM_REASON_BETTER_AP, WMI_ROAM_REASON_BMISS,
|
||||
* WMI_ROAM_REASON_SUITABLE_AP will be handled by
|
||||
* wma_roam_event_callback().
|
||||
* WOW_REASON_ROAM_HO is associated with
|
||||
* WMI_ROAM_REASON_HO_FAILED event and it will be handled by
|
||||
* wma_roam_event_callback().
|
||||
*/
|
||||
case WOW_REASON_LOW_RSSI:
|
||||
errno = wma_roam_event_callback(wma, pb_event, pb_event_len);
|
||||
case WOW_REASON_ROAM_HO:
|
||||
if (pb_event_len > 0) {
|
||||
errno = wma_roam_event_callback(wma, pb_event,
|
||||
pb_event_len);
|
||||
} else {
|
||||
/*
|
||||
* No wow_packet_buffer means a better AP beacon
|
||||
* will follow in a later event.
|
||||
*/
|
||||
WMA_LOGD("Host woken up because of better AP beacon");
|
||||
}
|
||||
break;
|
||||
|
||||
case WOW_REASON_CLIENT_KICKOUT_EVENT:
|
||||
|
Loading…
Reference in New Issue
Block a user