Lines Matching refs:rtt_status

200 static int dhd_rtt_create_failure_result(rtt_status_info_t *rtt_status,
1248 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_nan_start_session() local
1254 if (!rtt_status) { in dhd_rtt_nan_start_session()
1289 schedule_delayed_work(&rtt_status->proxd_timeout, in dhd_rtt_nan_start_session()
1423 rtt_status_info_t *rtt_status = NULL; in dhd_rtt_set_cfg() local
1430 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_set_cfg()
1431 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_set_cfg()
1434 if (!HAS_11MC_CAP(rtt_status->rtt_capa.proto)) { in dhd_rtt_set_cfg()
1455 mutex_lock(&rtt_status->rtt_mutex); in dhd_rtt_set_cfg()
1456 if (rtt_status->status != RTT_STOPPED) { in dhd_rtt_set_cfg()
1461 memset(rtt_status->rtt_config.target_info, 0, TARGET_INFO_SIZE(RTT_MAX_TARGET_CNT)); in dhd_rtt_set_cfg()
1462 rtt_status->rtt_config.rtt_target_cnt = params->rtt_target_cnt; in dhd_rtt_set_cfg()
1463 memcpy(rtt_status->rtt_config.target_info, in dhd_rtt_set_cfg()
1465 rtt_status->status = RTT_STARTED; in dhd_rtt_set_cfg()
1469 for (idx = rtt_status->cur_idx; idx < rtt_status->rtt_config.rtt_target_cnt; idx++) { in dhd_rtt_set_cfg()
1471 if (rtt_status->rtt_config.target_info[idx].disable) { in dhd_rtt_set_cfg()
1475 rtt_status->cur_idx = idx; in dhd_rtt_set_cfg()
1479 if (idx < rtt_status->rtt_config.rtt_target_cnt) { in dhd_rtt_set_cfg()
1480 DHD_RTT(("rtt_status->cur_idx : %d\n", rtt_status->cur_idx)); in dhd_rtt_set_cfg()
1481 rtt_status->rtt_sched_reason = RTT_SCHED_HOST_TRIGGER; in dhd_rtt_set_cfg()
1482 schedule_work(&rtt_status->work); in dhd_rtt_set_cfg()
1485 mutex_unlock(&rtt_status->rtt_mutex); in dhd_rtt_set_cfg()
1489 #define GEOFENCE_RTT_LOCK(rtt_status) mutex_lock(&(rtt_status)->geofence_mutex) argument
1490 #define GEOFENCE_RTT_UNLOCK(rtt_status) mutex_unlock(&(rtt_status)->geofence_mutex) argument
1497 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_set_role_concurrency_state() local
1498 if (!rtt_status) { in dhd_rtt_set_role_concurrency_state()
1501 GEOFENCE_RTT_LOCK(rtt_status); in dhd_rtt_set_role_concurrency_state()
1502 rtt_status->geofence_cfg.role_concurr_state = state; in dhd_rtt_set_role_concurrency_state()
1503 GEOFENCE_RTT_UNLOCK(rtt_status); in dhd_rtt_set_role_concurrency_state()
1510 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_get_role_concurrency_state() local
1511 if (!rtt_status) { in dhd_rtt_get_role_concurrency_state()
1514 return rtt_status->geofence_cfg.role_concurr_state; in dhd_rtt_get_role_concurrency_state()
1520 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_get_geofence_target_cnt() local
1521 if (!rtt_status) { in dhd_rtt_get_geofence_target_cnt()
1524 return rtt_status->geofence_cfg.geofence_target_cnt; in dhd_rtt_get_geofence_target_cnt()
1531 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_set_geofence_rtt_state() local
1532 if (!rtt_status) { in dhd_rtt_set_geofence_rtt_state()
1535 GEOFENCE_RTT_LOCK(rtt_status); in dhd_rtt_set_geofence_rtt_state()
1536 rtt_status->geofence_cfg.rtt_in_progress = state; in dhd_rtt_set_geofence_rtt_state()
1537 GEOFENCE_RTT_UNLOCK(rtt_status); in dhd_rtt_set_geofence_rtt_state()
1544 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_get_geofence_rtt_state() local
1546 if (!rtt_status) { in dhd_rtt_get_geofence_rtt_state()
1550 return rtt_status->geofence_cfg.rtt_in_progress; in dhd_rtt_get_geofence_rtt_state()
1557 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_get_geofence_target_head() local
1560 if (!rtt_status) { in dhd_rtt_get_geofence_target_head()
1564 if (rtt_status->geofence_cfg.geofence_target_cnt) { in dhd_rtt_get_geofence_target_head()
1565 head = &rtt_status->geofence_cfg.geofence_target_info[0]; in dhd_rtt_get_geofence_target_head()
1575 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_get_geofence_cur_target_idx() local
1577 if (!rtt_status) { in dhd_rtt_get_geofence_cur_target_idx()
1581 target_cnt = rtt_status->geofence_cfg.geofence_target_cnt; in dhd_rtt_get_geofence_cur_target_idx()
1586 cur_idx = rtt_status->geofence_cfg.cur_target_idx; in dhd_rtt_get_geofence_cur_target_idx()
1596 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_move_geofence_cur_target_idx_to_next() local
1598 if (!rtt_status) { in dhd_rtt_move_geofence_cur_target_idx_to_next()
1602 if (rtt_status->geofence_cfg.geofence_target_cnt == 0) { in dhd_rtt_move_geofence_cur_target_idx_to_next()
1604 rtt_status->geofence_cfg.cur_target_idx = in dhd_rtt_move_geofence_cur_target_idx_to_next()
1607 if (delayed_work_pending(&rtt_status->rtt_retry_timer)) { in dhd_rtt_move_geofence_cur_target_idx_to_next()
1608 cancel_delayed_work(&rtt_status->rtt_retry_timer); in dhd_rtt_move_geofence_cur_target_idx_to_next()
1612 rtt_status->geofence_cfg.cur_target_idx++; in dhd_rtt_move_geofence_cur_target_idx_to_next()
1614 if (rtt_status->geofence_cfg.cur_target_idx >= in dhd_rtt_move_geofence_cur_target_idx_to_next()
1615 rtt_status->geofence_cfg.geofence_target_cnt) { in dhd_rtt_move_geofence_cur_target_idx_to_next()
1617 rtt_status->geofence_cfg.cur_target_idx = 0; in dhd_rtt_move_geofence_cur_target_idx_to_next()
1625 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_get_geofence_current_target() local
1629 if (!rtt_status) { in dhd_rtt_get_geofence_current_target()
1635 cur_target = &rtt_status->geofence_cfg.geofence_target_info[cur_idx]; in dhd_rtt_get_geofence_current_target()
1646 rtt_status_info_t *rtt_status; in dhd_rtt_get_geofence_target() local
1650 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_get_geofence_target()
1652 if (!rtt_status) { in dhd_rtt_get_geofence_target()
1656 target_cnt = rtt_status->geofence_cfg.geofence_target_cnt; in dhd_rtt_get_geofence_target()
1657 geofence_target_info = rtt_status->geofence_cfg.geofence_target_info; in dhd_rtt_get_geofence_target()
1682 rtt_status_info_t *rtt_status; in dhd_rtt_add_geofence_target() local
1687 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_add_geofence_target()
1688 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_add_geofence_target()
1690 GEOFENCE_RTT_LOCK(rtt_status); in dhd_rtt_add_geofence_target()
1700 geofence_target_cnt = rtt_status->geofence_cfg.geofence_target_cnt; in dhd_rtt_add_geofence_target()
1708 geofence_target_info = rtt_status->geofence_cfg.geofence_target_info; in dhd_rtt_add_geofence_target()
1714 rtt_status->geofence_cfg.geofence_target_cnt++; in dhd_rtt_add_geofence_target()
1715 if (rtt_status->geofence_cfg.geofence_target_cnt == 1) { in dhd_rtt_add_geofence_target()
1717 rtt_status->geofence_cfg.cur_target_idx = 0; in dhd_rtt_add_geofence_target()
1721 GEOFENCE_RTT_UNLOCK(rtt_status); in dhd_rtt_add_geofence_target()
1730 rtt_status_info_t *rtt_status; in dhd_rtt_remove_geofence_target() local
1735 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_remove_geofence_target()
1736 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_remove_geofence_target()
1738 GEOFENCE_RTT_LOCK(rtt_status); in dhd_rtt_remove_geofence_target()
1769 rtt_status->geofence_cfg.geofence_target_cnt--; in dhd_rtt_remove_geofence_target()
1770 if ((rtt_status->geofence_cfg.geofence_target_cnt == 0) || in dhd_rtt_remove_geofence_target()
1771 (index == rtt_status->geofence_cfg.cur_target_idx)) { in dhd_rtt_remove_geofence_target()
1774 } else if (index < rtt_status->geofence_cfg.cur_target_idx) { in dhd_rtt_remove_geofence_target()
1776 rtt_status->geofence_cfg.cur_target_idx--; in dhd_rtt_remove_geofence_target()
1780 GEOFENCE_RTT_UNLOCK(rtt_status); in dhd_rtt_remove_geofence_target()
1788 rtt_status_info_t *rtt_status; in dhd_rtt_delete_geofence_target_list() local
1793 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_delete_geofence_target_list()
1794 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_delete_geofence_target_list()
1795 GEOFENCE_RTT_LOCK(rtt_status); in dhd_rtt_delete_geofence_target_list()
1796 memset_s(&rtt_status->geofence_cfg, sizeof(rtt_geofence_cfg_t), in dhd_rtt_delete_geofence_target_list()
1798 GEOFENCE_RTT_UNLOCK(rtt_status); in dhd_rtt_delete_geofence_target_list()
1812 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_sched_geofencing_target() local
1825 rtt_status->rtt_sched_reason)); in dhd_rtt_sched_geofencing_target()
1897 rtt_status_info_t *rtt_status = NULL; in dhd_rtt_retry_work() local
1906 rtt_status = container_of(work, rtt_status_info_t, proxd_timeout.work); in dhd_rtt_retry_work()
1911 dhd = rtt_status->dhd; in dhd_rtt_retry_work()
1920 mutex_lock(&rtt_status->rtt_mutex); in dhd_rtt_retry_work()
1922 mutex_unlock(&rtt_status->rtt_mutex); in dhd_rtt_retry_work()
1971 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_schedule_rtt_work_thread() local
1972 if (rtt_status == NULL) { in dhd_rtt_schedule_rtt_work_thread()
1975 rtt_status->rtt_sched_reason = sched_reason; in dhd_rtt_schedule_rtt_work_thread()
1976 schedule_work(&rtt_status->work); in dhd_rtt_schedule_rtt_work_thread()
1987 rtt_status_info_t *rtt_status; in dhd_rtt_stop() local
1993 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_stop()
1994 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_stop()
1995 if (rtt_status->status == RTT_STOPPED) { in dhd_rtt_stop()
2000 mutex_lock(&rtt_status->rtt_mutex); in dhd_rtt_stop()
2002 for (j = 0; j < rtt_status->rtt_config.rtt_target_cnt; j++) { in dhd_rtt_stop()
2003 if (!bcmp(&mac_list[i], &rtt_status->rtt_config.target_info[j].addr, in dhd_rtt_stop()
2005 rtt_status->rtt_config.target_info[j].disable = TRUE; in dhd_rtt_stop()
2009 if (rtt_status->all_cancel) { in dhd_rtt_stop()
2011 rtt_status->status = RTT_STOPPED; in dhd_rtt_stop()
2014 if (!list_empty(&rtt_status->rtt_results_cache)) { in dhd_rtt_stop()
2018 &rtt_status->rtt_results_cache, list) { in dhd_rtt_stop()
2032 list_for_each_entry(iter, &rtt_status->noti_fn_list, list) { in dhd_rtt_stop()
2034 iter->noti_fn(iter->ctx, &rtt_status->rtt_results_cache); in dhd_rtt_stop()
2037 INIT_LIST_HEAD(&rtt_status->rtt_results_cache); in dhd_rtt_stop()
2039 rtt_status->rtt_config.rtt_target_cnt = 0; in dhd_rtt_stop()
2040 memset(rtt_status->rtt_config.target_info, 0, in dhd_rtt_stop()
2042 rtt_status->cur_idx = 0; in dhd_rtt_stop()
2044 if (delayed_work_pending(&rtt_status->proxd_timeout)) { in dhd_rtt_stop()
2045 cancel_delayed_work(&rtt_status->proxd_timeout); in dhd_rtt_stop()
2053 mutex_unlock(&rtt_status->rtt_mutex); in dhd_rtt_stop()
2062 rtt_status_info_t *rtt_status; in dhd_rtt_timeout() local
2075 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_timeout()
2076 if (!rtt_status) { in dhd_rtt_timeout()
2081 if (RTT_IS_STOPPED(rtt_status)) { in dhd_rtt_timeout()
2100 rtt_target_info = rtt_status->rtt_config.target_info; in dhd_rtt_timeout()
2102 (rtt_status->cur_idx >= rtt_status->rtt_config.rtt_target_cnt)) { in dhd_rtt_timeout()
2105 rtt_target = &rtt_target_info[rtt_status->cur_idx]; in dhd_rtt_timeout()
2125 dhd_rtt_create_failure_result(rtt_status, &rtt_target->addr); in dhd_rtt_timeout()
2135 rtt_status_info_t *rtt_status = NULL; in dhd_rtt_timeout_work() local
2142 rtt_status = container_of(work, rtt_status_info_t, proxd_timeout.work); in dhd_rtt_timeout_work()
2147 dhd = rtt_status->dhd; in dhd_rtt_timeout_work()
2152 mutex_lock(&rtt_status->rtt_mutex); in dhd_rtt_timeout_work()
2154 mutex_unlock(&rtt_status->rtt_mutex); in dhd_rtt_timeout_work()
2171 rtt_status_info_t *rtt_status; in dhd_rtt_start() local
2179 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_start()
2180 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_start()
2184 if (RTT_IS_STOPPED(rtt_status)) { in dhd_rtt_start()
2189 if (rtt_status->cur_idx >= rtt_status->rtt_config.rtt_target_cnt) { in dhd_rtt_start()
2192 DHD_RTT(("%s : idx %d is out of range\n", __FUNCTION__, rtt_status->cur_idx)); in dhd_rtt_start()
2193 if (rtt_status->flags == WL_PROXD_SESSION_FLAG_TARGET) { in dhd_rtt_start()
2201 rtt_status->pm = PM_OFF; in dhd_rtt_start()
2202 err = wldev_ioctl_get(dev, WLC_GET_PM, &rtt_status->pm, sizeof(rtt_status->pm)); in dhd_rtt_start()
2209 rtt_status->pm_restore = FALSE; in dhd_rtt_start()
2211 rtt_status->pm_restore = TRUE; in dhd_rtt_start()
2215 mutex_lock(&rtt_status->rtt_mutex); in dhd_rtt_start()
2217 rtt_target = &rtt_status->rtt_config.target_info[rtt_status->cur_idx]; in dhd_rtt_start()
2218 mutex_unlock(&rtt_status->rtt_mutex); in dhd_rtt_start()
2240 rtt_status->status = RTT_ENABLED; in dhd_rtt_start()
2246 if (!RTT_IS_ENABLED(rtt_status)) { in dhd_rtt_start()
2263 rtt_status->status = RTT_ENABLED; in dhd_rtt_start()
2437 schedule_delayed_work(&rtt_status->proxd_timeout, in dhd_rtt_start()
2460 rtt_status->rtt_sched_reason)); in dhd_rtt_start()
2461 rtt_status->status = RTT_STOPPED; in dhd_rtt_start()
2464 if (rtt_status->pm_restore) { in dhd_rtt_start()
2467 rtt_status->pm_restore, __FUNCTION__)); in dhd_rtt_start()
2472 rtt_status->pm_restore = FALSE; in dhd_rtt_start()
2485 rtt_status_info_t *rtt_status; in dhd_rtt_register_noti_callback() local
2489 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_register_noti_callback()
2490 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_register_noti_callback()
2493 list_for_each_entry(iter, &rtt_status->noti_fn_list, list) { in dhd_rtt_register_noti_callback()
2506 list_add(&cb->list, &rtt_status->noti_fn_list); in dhd_rtt_register_noti_callback()
2517 rtt_status_info_t *rtt_status; in dhd_rtt_unregister_noti_callback() local
2520 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_unregister_noti_callback()
2521 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_unregister_noti_callback()
2524 list_for_each_entry(iter, &rtt_status->noti_fn_list, list) { in dhd_rtt_unregister_noti_callback()
3073 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_handle_rtt_session_end() local
3076 if (delayed_work_pending(&rtt_status->proxd_timeout)) { in dhd_rtt_handle_rtt_session_end()
3077 cancel_delayed_work(&rtt_status->proxd_timeout); in dhd_rtt_handle_rtt_session_end()
3081 for (idx = (rtt_status->cur_idx + 1); in dhd_rtt_handle_rtt_session_end()
3082 idx < rtt_status->rtt_config.rtt_target_cnt; idx++) { in dhd_rtt_handle_rtt_session_end()
3084 if (rtt_status->rtt_config.target_info[idx].disable) { in dhd_rtt_handle_rtt_session_end()
3088 rtt_status->cur_idx = idx; in dhd_rtt_handle_rtt_session_end()
3092 if (idx < rtt_status->rtt_config.rtt_target_cnt) { in dhd_rtt_handle_rtt_session_end()
3095 schedule_work(&rtt_status->work); in dhd_rtt_handle_rtt_session_end()
3098 rtt_status->status = RTT_STOPPED; in dhd_rtt_handle_rtt_session_end()
3101 list_for_each_entry(iter, &rtt_status->noti_fn_list, list) { in dhd_rtt_handle_rtt_session_end()
3102 iter->noti_fn(iter->ctx, &rtt_status->rtt_results_cache); in dhd_rtt_handle_rtt_session_end()
3105 if (!list_empty(&rtt_status->rtt_results_cache)) { in dhd_rtt_handle_rtt_session_end()
3108 &rtt_status->rtt_results_cache, list) { in dhd_rtt_handle_rtt_session_end()
3121 INIT_LIST_HEAD(&rtt_status->rtt_results_cache); in dhd_rtt_handle_rtt_session_end()
3123 rtt_status->rtt_config.rtt_target_cnt = 0; in dhd_rtt_handle_rtt_session_end()
3124 memset_s(rtt_status->rtt_config.target_info, TARGET_INFO_SIZE(RTT_MAX_TARGET_CNT), in dhd_rtt_handle_rtt_session_end()
3126 rtt_status->cur_idx = 0; in dhd_rtt_handle_rtt_session_end()
3133 dhd_rtt_create_failure_result(rtt_status_info_t *rtt_status, in dhd_rtt_create_failure_result() argument
3142 rtt_results_header = (rtt_results_header_t *)MALLOCZ(rtt_status->dhd->osh, in dhd_rtt_create_failure_result()
3148 rtt_target_info = &rtt_status->rtt_config.target_info[rtt_status->cur_idx]; in dhd_rtt_create_failure_result()
3154 list_add_tail(&rtt_results_header->list, &rtt_status->rtt_results_cache); in dhd_rtt_create_failure_result()
3157 rtt_result = (rtt_result_t *)MALLOCZ(rtt_status->dhd->osh, in dhd_rtt_create_failure_result()
3182 dhd_rtt_get_report_header(rtt_status_info_t *rtt_status, in dhd_rtt_get_report_header() argument
3188 list_for_each_entry(entry, &rtt_status->rtt_results_cache, list) { in dhd_rtt_get_report_header()
3205 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_handle_nan_rtt_session_end() local
3206 mutex_lock(&rtt_status->rtt_mutex); in dhd_rtt_handle_nan_rtt_session_end()
3207 is_new = !dhd_rtt_get_report_header(rtt_status, NULL, peer); in dhd_rtt_handle_nan_rtt_session_end()
3210 dhd_rtt_create_failure_result(rtt_status, peer); in dhd_rtt_handle_nan_rtt_session_end()
3213 mutex_unlock(&rtt_status->rtt_mutex); in dhd_rtt_handle_nan_rtt_session_end()
3259 rtt_status_info_t *rtt_status; in dhd_rtt_handle_directed_rtt_burst_end() local
3265 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_handle_directed_rtt_burst_end()
3266 is_new = !dhd_rtt_get_report_header(rtt_status, in dhd_rtt_handle_directed_rtt_burst_end()
3272 rtt_results_header = (rtt_results_header_t *)MALLOCZ(rtt_status->dhd->osh, in dhd_rtt_handle_directed_rtt_burst_end()
3284 list_add_tail(&rtt_results_header->list, &rtt_status->rtt_results_cache); in dhd_rtt_handle_directed_rtt_burst_end()
3334 rtt_status_info_t *rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_nan_range_report() local
3359 GEOFENCE_RTT_LOCK(rtt_status); in dhd_rtt_nan_range_report()
3361 GEOFENCE_RTT_UNLOCK(rtt_status); in dhd_rtt_nan_range_report()
3374 rtt_status_info_t *rtt_status = NULL; in dhd_rtt_handle_nan_burst_end() local
3382 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_handle_nan_burst_end()
3383 NULL_CHECK(rtt_status, "rtt_status is NULL", ret); in dhd_rtt_handle_nan_burst_end()
3385 mutex_lock(&rtt_status->rtt_mutex); in dhd_rtt_handle_nan_burst_end()
3420 if (RTT_IS_STOPPED(rtt_status)) { in dhd_rtt_handle_nan_burst_end()
3423 if (rtt_status->flags == WL_PROXD_SESSION_FLAG_TARGET) { in dhd_rtt_handle_nan_burst_end()
3439 mutex_unlock(&rtt_status->rtt_mutex); in dhd_rtt_handle_nan_burst_end()
3465 rtt_status_info_t *rtt_status; in dhd_rtt_event_handler() local
3530 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_event_handler()
3531 NULL_CHECK(rtt_status, "rtt_status is NULL", ret); in dhd_rtt_event_handler()
3532 mutex_lock(&rtt_status->rtt_mutex); in dhd_rtt_event_handler()
3534 if (RTT_IS_STOPPED(rtt_status)) { in dhd_rtt_event_handler()
3537 if (rtt_status->flags == WL_PROXD_SESSION_FLAG_TARGET) { in dhd_rtt_event_handler()
3548 is_new = !dhd_rtt_get_report_header(rtt_status, in dhd_rtt_event_handler()
3588 if (!RTT_IS_ENABLED(rtt_status)) { in dhd_rtt_event_handler()
3607 dhd_rtt_create_failure_result(rtt_status, &event->addr); in dhd_rtt_event_handler()
3681 mutex_unlock(&rtt_status->rtt_mutex); in dhd_rtt_event_handler()
3691 rtt_status_info_t *rtt_status; in dhd_rtt_work() local
3695 rtt_status = container_of(work, rtt_status_info_t, work); in dhd_rtt_work()
3698 dhd = rtt_status->dhd; in dhd_rtt_work()
3710 rtt_status_info_t *rtt_status; in dhd_rtt_capability() local
3713 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_capability()
3714 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_capability()
3719 if (rtt_status->rtt_capa.proto & RTT_CAP_ONE_WAY) in dhd_rtt_capability()
3721 if (rtt_status->rtt_capa.proto & RTT_CAP_FTM_WAY) in dhd_rtt_capability()
3724 if (rtt_status->rtt_capa.feature & RTT_FEATURE_LCI) in dhd_rtt_capability()
3726 if (rtt_status->rtt_capa.feature & RTT_FEATURE_LCR) in dhd_rtt_capability()
3728 if (rtt_status->rtt_capa.feature & RTT_FEATURE_PREAMBLE) in dhd_rtt_capability()
3730 if (rtt_status->rtt_capa.feature & RTT_FEATURE_BW) in dhd_rtt_capability()
3734 capa->preamble_support = rtt_status->rtt_capa.preamble; in dhd_rtt_capability()
3735 capa->bw_support = rtt_status->rtt_capa.bw; in dhd_rtt_capability()
3798 rtt_status_info_t *rtt_status; in dhd_rtt_enable_responder() local
3803 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_enable_responder()
3804 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_enable_responder()
3805 if (RTT_IS_STOPPED(rtt_status)) { in dhd_rtt_enable_responder()
3828 rtt_status->pm = PM_OFF; in dhd_rtt_enable_responder()
3829 err = wldev_ioctl_get(dev, WLC_GET_PM, &rtt_status->pm, sizeof(rtt_status->pm)); in dhd_rtt_enable_responder()
3830 DHD_RTT(("Current PM value read %d\n", rtt_status->pm)); in dhd_rtt_enable_responder()
3837 rtt_status->pm_restore = FALSE; in dhd_rtt_enable_responder()
3839 rtt_status->pm_restore = TRUE; in dhd_rtt_enable_responder()
3842 if (!RTT_IS_ENABLED(rtt_status)) { in dhd_rtt_enable_responder()
3850 rtt_status->status = RTT_ENABLED; in dhd_rtt_enable_responder()
3856 rtt_status->flags = WL_PROXD_SESSION_FLAG_TARGET; in dhd_rtt_enable_responder()
3862 rtt_status->status = RTT_STOPPED; in dhd_rtt_enable_responder()
3866 if (rtt_status->pm_restore) { in dhd_rtt_enable_responder()
3872 rtt_status->pm_restore = FALSE; in dhd_rtt_enable_responder()
3883 rtt_status_info_t *rtt_status; in dhd_rtt_cancel_responder() local
3888 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_cancel_responder()
3889 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_cancel_responder()
3895 rtt_status->status = RTT_STOPPED; in dhd_rtt_cancel_responder()
3896 if (rtt_status->pm_restore) { in dhd_rtt_cancel_responder()
3898 DHD_RTT(("pm_restore =%d \n", rtt_status->pm_restore)); in dhd_rtt_cancel_responder()
3903 rtt_status->pm_restore = FALSE; in dhd_rtt_cancel_responder()
3918 rtt_status_info_t *rtt_status; in dhd_rtt_init() local
3934 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_init()
3935 rtt_status->rtt_config.target_info = in dhd_rtt_init()
3938 if (rtt_status->rtt_config.target_info == NULL) { in dhd_rtt_init()
3944 rtt_status->dhd = dhd; in dhd_rtt_init()
3952 rtt_status->rtt_capa.proto |= RTT_CAP_FTM_WAY; in dhd_rtt_init()
3955 rtt_status->rtt_capa.feature |= RTT_FEATURE_LCI; in dhd_rtt_init()
3956 rtt_status->rtt_capa.feature |= RTT_FEATURE_LCR; in dhd_rtt_init()
3957 rtt_status->rtt_capa.feature |= RTT_FEATURE_PREAMBLE; in dhd_rtt_init()
3958 rtt_status->rtt_capa.preamble |= RTT_PREAMBLE_VHT; in dhd_rtt_init()
3959 rtt_status->rtt_capa.preamble |= RTT_PREAMBLE_HT; in dhd_rtt_init()
3962 rtt_status->rtt_capa.feature |= RTT_FEATURE_BW; in dhd_rtt_init()
3963 rtt_status->rtt_capa.bw |= RTT_BW_20; in dhd_rtt_init()
3964 rtt_status->rtt_capa.bw |= RTT_BW_40; in dhd_rtt_init()
3965 rtt_status->rtt_capa.bw |= RTT_BW_80; in dhd_rtt_init()
3975 rtt_status->all_cancel = TRUE; in dhd_rtt_init()
3976 mutex_init(&rtt_status->rtt_mutex); in dhd_rtt_init()
3977 mutex_init(&rtt_status->geofence_mutex); in dhd_rtt_init()
3978 INIT_LIST_HEAD(&rtt_status->noti_fn_list); in dhd_rtt_init()
3979 INIT_LIST_HEAD(&rtt_status->rtt_results_cache); in dhd_rtt_init()
3980 INIT_WORK(&rtt_status->work, dhd_rtt_work); in dhd_rtt_init()
3982 INIT_DELAYED_WORK(&rtt_status->proxd_timeout, dhd_rtt_timeout_work); in dhd_rtt_init()
3985 INIT_DELAYED_WORK(&rtt_status->rtt_retry_timer, dhd_rtt_retry_work); in dhd_rtt_init()
3987 rtt_status->geofence_cfg.cur_target_idx = DHD_RTT_INVALID_TARGET_INDEX; in dhd_rtt_init()
3997 kfree(rtt_status->rtt_config.target_info); in dhd_rtt_init()
4010 rtt_status_info_t *rtt_status; in dhd_rtt_deinit() local
4015 rtt_status = GET_RTTSTATE(dhd); in dhd_rtt_deinit()
4016 NULL_CHECK(rtt_status, "rtt_status is NULL", err); in dhd_rtt_deinit()
4017 rtt_status->status = RTT_STOPPED; in dhd_rtt_deinit()
4021 if (!list_empty(&rtt_status->noti_fn_list)) { in dhd_rtt_deinit()
4022 list_for_each_entry_safe(iter, iter2, &rtt_status->noti_fn_list, list) { in dhd_rtt_deinit()
4028 if (!list_empty(&rtt_status->rtt_results_cache)) { in dhd_rtt_deinit()
4029 list_for_each_entry_safe(rtt_header, next, &rtt_status->rtt_results_cache, list) { in dhd_rtt_deinit()
4041 kfree(rtt_status->rtt_config.target_info); in dhd_rtt_deinit()