qcacld-3.0: Optimize NAN state machine when driver recovers
Currently, host driver sends NAN enable and disable request to firmware and wait for its response to change the NAN state in driver. But, when firmware is down (during SSR), driver is in recovery state and so, timeout occurs while waiting for response. To fix this, driver does not need to wait for NAN enable/disable response from firmware in recovery state. It can directly take the action and change the NAN state machine. Hence, add flag to check the driver recovery state. If recovery is in progress, then driver does not wait for firmware NAN enable/ disable responses. Change-Id: I0325240cc082d8ef91d48793d3da2eea552d59cd CRs-Fixed: 3307543
This commit is contained in:

committed by
Madan Koyyalamudi

parent
b638131386
commit
87a052f1f5
@@ -734,7 +734,8 @@ QDF_STATUS ucfg_nan_discovery_req(void *in_req, uint32_t req_type)
|
||||
.priv_size = 0,
|
||||
.timeout_ms = 4000,
|
||||
};
|
||||
int err;
|
||||
int err = 0;
|
||||
bool recovery;
|
||||
|
||||
if (!in_req) {
|
||||
nan_alert("NAN Discovery req is null");
|
||||
@@ -869,10 +870,12 @@ post_msg:
|
||||
}
|
||||
|
||||
if (req_type != NAN_GENERIC_REQ) {
|
||||
err = osif_request_wait_for_response(request);
|
||||
if (err) {
|
||||
nan_debug("NAN request: %u timed out: %d",
|
||||
req_type, err);
|
||||
recovery = cds_is_driver_recovering();
|
||||
if (!recovery)
|
||||
err = osif_request_wait_for_response(request);
|
||||
if (recovery || err) {
|
||||
nan_debug("NAN request: %u recovery %d or timed out %d",
|
||||
req_type, recovery, err);
|
||||
|
||||
if (req_type == NAN_ENABLE_REQ) {
|
||||
nan_set_discovery_state(psoc,
|
||||
|
Reference in New Issue
Block a user