diff options
author | Om Prakash Tripathi <otripath@codeaurora.org> | 2018-02-08 15:23:20 +0530 |
---|---|---|
committer | snandini <snandini@codeaurora.org> | 2018-02-13 03:55:25 -0800 |
commit | 339dc26b217746a64234170679f91f2f5d140e70 (patch) | |
tree | ad16d9319d3ccbb265dd0fa9d52a63210f45aef6 /umac | |
parent | 726ea124452d59c300de50957c58876fbe5f5755 (diff) | |
download | qca-wfi-host-cmn-339dc26b217746a64234170679f91f2f5d140e70.tar.gz |
qcacmn: Enable scan command time out if not disabled explicitly
1. Enable scan command time out for all commands if not disabled
explicitly.
2. Remove QDF_BUG() for no serialization command buffers
Change-Id: I5357211ef6bc44f8ebd4b8acaa56a12f691fa46d
CRs-Fixed: 2175843
Diffstat (limited to 'umac')
-rw-r--r-- | umac/cmn_services/serialization/src/wlan_serialization_enqueue.c | 1 | ||||
-rw-r--r-- | umac/scan/core/src/wlan_scan_main.h | 2 | ||||
-rw-r--r-- | umac/scan/core/src/wlan_scan_manager.c | 17 | ||||
-rw-r--r-- | umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h | 19 | ||||
-rw-r--r-- | umac/scan/dispatcher/src/wlan_scan_ucfg_api.c | 29 |
5 files changed, 58 insertions, 10 deletions
diff --git a/umac/cmn_services/serialization/src/wlan_serialization_enqueue.c b/umac/cmn_services/serialization/src/wlan_serialization_enqueue.c index e568679dd..1af3c1aa4 100644 --- a/umac/cmn_services/serialization/src/wlan_serialization_enqueue.c +++ b/umac/cmn_services/serialization/src/wlan_serialization_enqueue.c @@ -47,7 +47,6 @@ wlan_serialization_add_cmd_to_given_queue(qdf_list_t *queue, } if (qdf_list_empty(&ser_pdev_obj->global_cmd_pool_list)) { serialization_err("list is full, can't add more"); - QDF_BUG(0); return WLAN_SER_CMD_DENIED_LIST_FULL; } if (qdf_list_remove_front(&ser_pdev_obj->global_cmd_pool_list, diff --git a/umac/scan/core/src/wlan_scan_main.h b/umac/scan/core/src/wlan_scan_main.h index 40e6e0b08..aa1ac5f1b 100644 --- a/umac/scan/core/src/wlan_scan_main.h +++ b/umac/scan/core/src/wlan_scan_main.h @@ -435,6 +435,7 @@ struct scan_cb { * @ie_whitelist: default ie whitelist attrs * @bt_a2dp_enabled: if bt a2dp is enabled * @miracast_enabled: miracast enabled + * @disable_timeout: command timeout disabled * @scan_start_request_buff: buffer used to pass * scan config to event handlers */ @@ -453,6 +454,7 @@ struct wlan_scan_obj { struct probe_req_whitelist_attr ie_whitelist; bool bt_a2dp_enabled; bool miracast_enabled; + bool disable_timeout; struct scan_start_request scan_start_request_buff; }; diff --git a/umac/scan/core/src/wlan_scan_manager.c b/umac/scan/core/src/wlan_scan_manager.c index 97a8db5e3..56bb18bb6 100644 --- a/umac/scan/core/src/wlan_scan_manager.c +++ b/umac/scan/core/src/wlan_scan_manager.c @@ -371,7 +371,7 @@ scm_scan_start_req(struct scheduler_msg *msg) struct wlan_serialization_command cmd = {0, }; enum wlan_serialization_status ser_cmd_status; struct scan_start_request *req; - struct wlan_objmgr_psoc *psoc; + struct wlan_scan_obj *scan_obj; QDF_STATUS status = QDF_STATUS_SUCCESS; if (!msg) { @@ -386,6 +386,12 @@ scm_scan_start_req(struct scheduler_msg *msg) } req = msg->bodyptr; + scan_obj = wlan_vdev_get_scan_obj(req->vdev); + if (!scan_obj) { + scm_debug("Couldn't find scan object"); + return QDF_STATUS_E_NULL_VALUE; + } + cmd.cmd_type = WLAN_SER_CMD_SCAN; cmd.cmd_id = req->scan_req.scan_id; cmd.cmd_cb = (wlan_serialization_cmd_callback) @@ -397,15 +403,8 @@ scm_scan_start_req(struct scheduler_msg *msg) SCAN_TIMEOUT_GRACE_PERIOD; cmd.vdev = req->vdev; - psoc = wlan_vdev_get_psoc(cmd.vdev); - /* - * Temp Hack to disable Serialization Timer - * Modified Serialization module to ignore timeout of 0 value - */ - if (wlan_is_emulation_platform(wlan_psoc_get_nif_phy_version(psoc))) { + if (scan_obj->disable_timeout) cmd.cmd_timeout_duration = 0; - scm_info("[SCAN-EMULATION]: Disabling Serialization Timer for Emulation\n"); - } scm_info("req: 0x%pK, reqid: %d, scanid: %d, vdevid: %d", req, req->scan_req.scan_req_id, req->scan_req.scan_id, diff --git a/umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h b/umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h index 838264d82..ed0c86b21 100644 --- a/umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h +++ b/umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h @@ -200,6 +200,25 @@ QDF_STATUS ucfg_scan_set_miracast( struct wlan_objmgr_psoc *psoc, bool enable); /** + * ucfg_scan_set_disable_timeout() - Public API to disable/enable scan timeout + * @psoc: psoc on which scan timeout need to be disabled + * @disable: disable scan timeout if true else enable scan timeout + * + * Return: QDF_STATUS. + */ +QDF_STATUS +ucfg_scan_set_disable_timeout(struct wlan_objmgr_psoc *psoc, bool disable); + +/** + * ucfg_scan_get_disable_timeout() - Public API to get if scan timeout + * is enabled or disabled + * @psoc: psoc on which scan timeout status need to be checked + * + * Return: true if timeout is diaabled else false. + */ +bool ucfg_scan_get_disable_timeout(struct wlan_objmgr_psoc *psoc); + +/** * ucfg_scan_set_wide_band_scan() - Public API to disable/enable wide band scan * @pdev: psoc on which scans need to be disabled * @enable: enable wide band scan if @enable is true, disable otherwise diff --git a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c index c65138f81..6ae96cf93 100644 --- a/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c +++ b/umac/scan/dispatcher/src/wlan_scan_ucfg_api.c @@ -950,6 +950,34 @@ QDF_STATUS ucfg_scan_set_miracast( } QDF_STATUS +ucfg_scan_set_disable_timeout(struct wlan_objmgr_psoc *psoc, bool disable) +{ + struct wlan_scan_obj *scan_obj; + + scan_obj = wlan_psoc_get_scan_obj(psoc); + if (!scan_obj) { + scm_err("Failed to get scan object"); + return QDF_STATUS_E_NULL_VALUE; + } + scan_obj->disable_timeout = disable; + scm_debug("set disable_timeout to %d", scan_obj->disable_timeout); + + return QDF_STATUS_SUCCESS; +} + +bool ucfg_scan_get_disable_timeout(struct wlan_objmgr_psoc *psoc) +{ + struct wlan_scan_obj *scan_obj; + + scan_obj = wlan_psoc_get_scan_obj(psoc); + if (!scan_obj) { + scm_err("Failed to get scan object"); + return false; + } + return scan_obj->disable_timeout; +} + +QDF_STATUS ucfg_scan_set_wide_band_scan(struct wlan_objmgr_pdev *pdev, bool enable) { uint8_t pdev_id; @@ -1281,6 +1309,7 @@ static QDF_STATUS wlan_scan_global_init(struct wlan_scan_obj *scan_obj) { scan_obj->enable_scan = true; + scan_obj->disable_timeout = false; scan_obj->scan_def.active_dwell = SCAN_ACTIVE_DWELL_TIME; scan_obj->scan_def.passive_dwell = SCAN_PASSIVE_DWELL_TIME; scan_obj->scan_def.max_rest_time = SCAN_MAX_REST_TIME; |