qcacld-3.0: Modify wlan_hdd_get_adapter_from_vdev() API
To get the adapter, wlan_hdd_get_adapter_from_vdev() calls hdd_get_link_info_by_vdev() which will return link info. As vdev is moved to per link data structure, modify the API prototype to return link info pointer and rename as wlan_hdd_get_link_info_from_vdev(). Callers can get adapter in the link info structure. Change-Id: I579796ab395515bb777f3204528287b4595c60a7 CRs-Fixed: 3451442
This commit is contained in:

gecommit door
Rahul Choudhary

bovenliggende
c0e4278687
commit
2070480e26
@@ -4050,17 +4050,19 @@ int wlan_hdd_send_mcc_vdev_quota(struct hdd_adapter *adapter, int sval);
|
||||
int wlan_hdd_send_mcc_latency(struct hdd_adapter *adapter, int sval);
|
||||
|
||||
/**
|
||||
* wlan_hdd_get_adapter_from_vdev()- Get adapter from vdev id
|
||||
* wlan_hdd_get_link_info_from_vdev()- Get link info from vdev id
|
||||
* and PSOC object data
|
||||
* @psoc: Psoc object data
|
||||
* @vdev_id: vdev id
|
||||
*
|
||||
* Get adapter from vdev id and PSOC object data
|
||||
* Get link info from vdev id and PSOC object data
|
||||
*
|
||||
* Return: adapter pointer
|
||||
* Return: link info pointer
|
||||
*/
|
||||
struct hdd_adapter *wlan_hdd_get_adapter_from_vdev(struct wlan_objmgr_psoc
|
||||
*psoc, uint8_t vdev_id);
|
||||
struct wlan_hdd_link_info *
|
||||
wlan_hdd_get_link_info_from_vdev(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id);
|
||||
|
||||
/**
|
||||
* hdd_unregister_notifiers()- unregister kernel notifiers
|
||||
* @hdd_ctx: Hdd Context
|
||||
|
@@ -40,6 +40,7 @@ wlan_hdd_btc_chain_mode_handler(struct wlan_objmgr_vdev *vdev)
|
||||
uint8_t vdev_id;
|
||||
uint32_t freq;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
|
||||
if (!vdev) {
|
||||
hdd_err("NULL vdev");
|
||||
@@ -56,12 +57,13 @@ wlan_hdd_btc_chain_mode_handler(struct wlan_objmgr_vdev *vdev)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
if (!adapter) {
|
||||
hdd_err("NULL adapter");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
adapter = link_info->adapter;
|
||||
status = ucfg_coex_psoc_get_btc_chain_mode(psoc, &mode);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
hdd_err("failed to get cur BTC chain mode, status %d", status);
|
||||
@@ -78,7 +80,7 @@ wlan_hdd_btc_chain_mode_handler(struct wlan_objmgr_vdev *vdev)
|
||||
mode == WLAN_COEX_BTC_CHAIN_MODE_HYBRID) ? 1 : 2);
|
||||
|
||||
hdd_debug("update nss to %d for vdev %d, device mode %d",
|
||||
nss, adapter->deflink->vdev_id, adapter->device_mode);
|
||||
nss, link_info->vdev_id, adapter->device_mode);
|
||||
band = NSS_CHAINS_BAND_2GHZ;
|
||||
sme_update_nss_in_mlme_cfg(mac_handle, nss, nss,
|
||||
adapter->device_mode, band);
|
||||
@@ -90,7 +92,7 @@ wlan_hdd_btc_chain_mode_handler(struct wlan_objmgr_vdev *vdev)
|
||||
wlan_objmgr_vdev_release_ref(vdev, WLAN_OSIF_ID);
|
||||
}
|
||||
|
||||
sme_update_he_cap_nss(mac_handle, adapter->deflink->vdev_id, nss);
|
||||
sme_update_he_cap_nss(mac_handle, link_info->vdev_id, nss);
|
||||
freq = hdd_get_adapter_home_channel(adapter);
|
||||
|
||||
/*
|
||||
|
@@ -3677,38 +3677,36 @@ QDF_STATUS hdd_sap_restart_chan_switch_cb(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id, uint32_t ch_freq,
|
||||
uint32_t channel_bw, bool forced)
|
||||
{
|
||||
struct hdd_adapter *ap_adapter =
|
||||
wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
|
||||
if (!ap_adapter) {
|
||||
hdd_err("Adapter is NULL");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
return hdd_sap_restart_with_channel_switch(psoc,
|
||||
ap_adapter,
|
||||
ch_freq,
|
||||
channel_bw, forced);
|
||||
return hdd_sap_restart_with_channel_switch(psoc, link_info->adapter,
|
||||
ch_freq, channel_bw, forced);
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_hdd_check_cc_intf_cb(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id, uint32_t *ch_freq)
|
||||
{
|
||||
struct hdd_adapter *ap_adapter;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct sap_context *sap_context;
|
||||
|
||||
ap_adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
if (!ap_adapter) {
|
||||
hdd_err("ap_adapter is NULL");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (!test_bit(SOFTAP_BSS_STARTED, &ap_adapter->event_flags)) {
|
||||
if (!test_bit(SOFTAP_BSS_STARTED, &link_info->adapter->event_flags)) {
|
||||
hdd_err("SOFTAP_BSS_STARTED not set");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
sap_context = WLAN_HDD_GET_SAP_CTX_PTR(ap_adapter->deflink);
|
||||
sap_context = WLAN_HDD_GET_SAP_CTX_PTR(link_info);
|
||||
if (!sap_context) {
|
||||
hdd_err("sap_context is null");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
@@ -3728,31 +3726,33 @@ QDF_STATUS wlan_hdd_check_cc_intf_cb(struct wlan_objmgr_psoc *psoc,
|
||||
void wlan_hdd_set_sap_csa_reason(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||
uint8_t reason)
|
||||
{
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct sap_context *sap_ctx;
|
||||
struct hdd_adapter *ap_adapter = wlan_hdd_get_adapter_from_vdev(
|
||||
psoc, vdev_id);
|
||||
if (!ap_adapter) {
|
||||
hdd_err("ap adapter is NULL");
|
||||
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return;
|
||||
}
|
||||
sap_ctx = WLAN_HDD_GET_SAP_CTX_PTR(ap_adapter->deflink);
|
||||
|
||||
sap_ctx = WLAN_HDD_GET_SAP_CTX_PTR(link_info);
|
||||
if (sap_ctx)
|
||||
sap_ctx->csa_reason = reason;
|
||||
hdd_nofl_debug("set csa reason %d %s vdev %d",
|
||||
reason, sap_get_csa_reason_str(reason), vdev_id);
|
||||
}
|
||||
|
||||
QDF_STATUS wlan_hdd_get_channel_for_sap_restart(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id, uint32_t *ch_freq)
|
||||
QDF_STATUS wlan_hdd_get_channel_for_sap_restart(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id,
|
||||
uint32_t *ch_freq)
|
||||
{
|
||||
mac_handle_t mac_handle;
|
||||
struct hdd_ap_ctx *hdd_ap_ctx;
|
||||
struct hdd_context *hdd_ctx;
|
||||
uint8_t mcc_to_scc_switch = 0;
|
||||
struct ch_params ch_params = {0};
|
||||
struct hdd_adapter *ap_adapter = wlan_hdd_get_adapter_from_vdev(
|
||||
psoc, vdev_id);
|
||||
struct hdd_adapter *ap_adapter;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
uint32_t sap_ch_freq, intf_ch_freq, temp_ch_freq;
|
||||
struct sap_context *sap_context;
|
||||
enum sap_csa_reason_code csa_reason =
|
||||
@@ -3760,28 +3760,30 @@ QDF_STATUS wlan_hdd_get_channel_for_sap_restart(
|
||||
QDF_STATUS status;
|
||||
bool use_sap_original_bw = false;
|
||||
|
||||
if (!ap_adapter) {
|
||||
hdd_err("ap_adapter is NULL");
|
||||
if (!ch_freq) {
|
||||
hdd_err("Null parameters");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
ap_adapter = link_info->adapter;
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(ap_adapter);
|
||||
if (!hdd_ctx) {
|
||||
hdd_err("hdd_ctx is NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (!ch_freq) {
|
||||
hdd_err("Null parameters");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
if (!test_bit(SOFTAP_BSS_STARTED, &ap_adapter->event_flags)) {
|
||||
hdd_err("SOFTAP_BSS_STARTED not set");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
hdd_ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(ap_adapter->deflink);
|
||||
hdd_ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(link_info);
|
||||
mac_handle = hdd_ctx->mac_handle;
|
||||
if (!mac_handle) {
|
||||
hdd_err("mac_handle is NULL");
|
||||
@@ -3815,7 +3817,7 @@ QDF_STATUS wlan_hdd_get_channel_for_sap_restart(
|
||||
*/
|
||||
if (policy_mgr_is_sap_restart_required_after_sta_disconnect(
|
||||
psoc, vdev_id, &intf_ch_freq,
|
||||
!!ap_adapter->deflink->session.ap.sap_config.acs_cfg.acs_mode)) {
|
||||
!!link_info->session.ap.sap_config.acs_cfg.acs_mode)) {
|
||||
hdd_debug("Move the sap (vdev %d) to user configured channel %u",
|
||||
vdev_id, intf_ch_freq);
|
||||
goto sap_restart;
|
||||
@@ -3921,26 +3923,24 @@ QDF_STATUS
|
||||
wlan_get_sap_acs_band(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
|
||||
uint32_t *acs_band)
|
||||
{
|
||||
struct hdd_adapter *ap_adapter = wlan_hdd_get_adapter_from_vdev(psoc,
|
||||
vdev_id);
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct sap_config *sap_config;
|
||||
|
||||
if (!ap_adapter || (ap_adapter->device_mode != QDF_SAP_MODE &&
|
||||
ap_adapter->device_mode != QDF_P2P_GO_MODE)) {
|
||||
hdd_err("invalid adapter");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info || (link_info->adapter->device_mode != QDF_P2P_GO_MODE &&
|
||||
link_info->adapter->device_mode != QDF_SAP_MODE)) {
|
||||
hdd_err("Invalid vdev or device mode");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
/*
|
||||
* If acs mode is false, that means acs is disabled and acs band can be
|
||||
* QCA_ACS_MODE_IEEE80211ANY
|
||||
*/
|
||||
sap_config = &ap_adapter->deflink->session.ap.sap_config;
|
||||
if (sap_config->acs_cfg.acs_mode == false) {
|
||||
sap_config = &link_info->session.ap.sap_config;
|
||||
if (!sap_config->acs_cfg.acs_mode)
|
||||
*acs_band = QCA_ACS_MODE_IEEE80211ANY;
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
*acs_band = sap_config->acs_cfg.band;
|
||||
else
|
||||
*acs_band = sap_config->acs_cfg.band;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -3953,15 +3953,15 @@ wlan_get_ap_prefer_conc_ch_params(
|
||||
{
|
||||
struct hdd_ap_ctx *hdd_ap_ctx;
|
||||
struct sap_context *sap_context;
|
||||
struct hdd_adapter *ap_adapter = wlan_hdd_get_adapter_from_vdev(
|
||||
psoc, vdev_id);
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
|
||||
if (!ap_adapter || (ap_adapter->device_mode != QDF_SAP_MODE &&
|
||||
ap_adapter->device_mode != QDF_P2P_GO_MODE)) {
|
||||
hdd_err("invalid adapter");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info || (link_info->adapter->device_mode != QDF_P2P_GO_MODE &&
|
||||
link_info->adapter->device_mode != QDF_SAP_MODE)) {
|
||||
hdd_err("Invalid vdev or device mode");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
hdd_ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(ap_adapter->deflink);
|
||||
hdd_ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(link_info);
|
||||
sap_context = hdd_ap_ctx->sap_context;
|
||||
if (!sap_context) {
|
||||
hdd_err("sap_context is null");
|
||||
@@ -3986,6 +3986,7 @@ uint32_t hdd_get_ap_6ghz_capable(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
int32_t keymgmt;
|
||||
struct hdd_adapter *ap_adapter;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct hdd_ap_ctx *ap_ctx;
|
||||
struct sap_context *sap_context;
|
||||
struct sap_config *sap_config;
|
||||
@@ -4003,14 +4004,14 @@ uint32_t hdd_get_ap_6ghz_capable(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||
return 0;
|
||||
}
|
||||
|
||||
ap_adapter = wlan_hdd_get_adapter_from_vdev(
|
||||
psoc, vdev_id);
|
||||
if (!ap_adapter) {
|
||||
hdd_err("ap_adapter is NULL %d", vdev_id);
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev %d", vdev_id);
|
||||
wlan_objmgr_vdev_release_ref(vdev, WLAN_HDD_ID_OBJ_MGR);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ap_adapter = link_info->adapter;
|
||||
conn_mode = policy_mgr_convert_device_mode_to_qdf_type(
|
||||
ap_adapter->device_mode);
|
||||
if ((conn_mode != PM_SAP_MODE && conn_mode != PM_P2P_GO_MODE) ||
|
||||
@@ -4020,7 +4021,7 @@ uint32_t hdd_get_ap_6ghz_capable(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||
return 0;
|
||||
}
|
||||
|
||||
ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(ap_adapter->deflink);
|
||||
ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(link_info);
|
||||
sap_config = &ap_ctx->sap_config;
|
||||
sap_context = ap_ctx->sap_context;
|
||||
if (QDF_IS_STATUS_ERROR(wlansap_context_get(sap_context))) {
|
||||
@@ -4178,20 +4179,20 @@ void hdd_sap_destroy_ctx_all(struct hdd_context *hdd_ctx, bool is_ssr)
|
||||
static void
|
||||
hdd_indicate_peers_deleted(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||
{
|
||||
struct hdd_adapter *adapter;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
|
||||
if (!psoc) {
|
||||
hdd_err("psoc obj is NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
if (hdd_validate_adapter(adapter)) {
|
||||
hdd_err("invalid adapter");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info || hdd_validate_adapter(link_info->adapter)) {
|
||||
hdd_err("invalid vdev or adapter");
|
||||
return;
|
||||
}
|
||||
|
||||
hdd_sap_indicate_disconnect_for_sta(adapter);
|
||||
hdd_sap_indicate_disconnect_for_sta(link_info->adapter);
|
||||
}
|
||||
|
||||
QDF_STATUS hdd_init_ap_mode(struct hdd_adapter *adapter, bool reinit)
|
||||
|
@@ -492,12 +492,14 @@ QDF_STATUS hdd_common_roam_callback(struct wlan_objmgr_psoc *psoc,
|
||||
{
|
||||
struct hdd_context *hdd_ctx;
|
||||
struct hdd_adapter *adapter;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
|
||||
adapter = wlan_hdd_get_adapter_from_vdev(psoc, session_id);
|
||||
if (!adapter)
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, session_id);
|
||||
if (!link_info)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
|
||||
adapter = link_info->adapter;
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
if (!hdd_ctx)
|
||||
return QDF_STATUS_E_INVAL;
|
||||
@@ -512,8 +514,10 @@ QDF_STATUS hdd_common_roam_callback(struct wlan_objmgr_psoc *psoc,
|
||||
break;
|
||||
case QDF_SAP_MODE:
|
||||
case QDF_P2P_GO_MODE:
|
||||
status = wlansap_roam_callback(adapter->deflink->session.ap.sap_context,
|
||||
roam_info, roam_status, roam_result);
|
||||
status =
|
||||
wlansap_roam_callback(link_info->session.ap.sap_context,
|
||||
roam_info, roam_status,
|
||||
roam_result);
|
||||
break;
|
||||
default:
|
||||
hdd_err("Wrong device mode");
|
||||
@@ -1549,17 +1553,19 @@ static int hdd_update_tdls_config(struct hdd_context *hdd_ctx)
|
||||
void hdd_indicate_active_ndp_cnt(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id, uint8_t cnt)
|
||||
{
|
||||
struct hdd_adapter *adapter = NULL;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
|
||||
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
if (adapter && cfg_nan_is_roam_config_disabled(psoc)) {
|
||||
hdd_debug("vdev_id:%d%s active ndp sessions present", vdev_id,
|
||||
cnt ? "" : " no more");
|
||||
if (!cnt)
|
||||
wlan_hdd_enable_roaming(adapter, RSO_NDP_CON_ON_NDI);
|
||||
else
|
||||
wlan_hdd_disable_roaming(adapter, RSO_NDP_CON_ON_NDI);
|
||||
}
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info || !cfg_nan_is_roam_config_disabled(psoc))
|
||||
return;
|
||||
|
||||
hdd_debug("vdev_id:%d%s active ndp sessions present", vdev_id,
|
||||
cnt ? "" : " no more");
|
||||
if (!cnt)
|
||||
wlan_hdd_enable_roaming(link_info->adapter, RSO_NDP_CON_ON_NDI);
|
||||
else
|
||||
wlan_hdd_disable_roaming(link_info->adapter,
|
||||
RSO_NDP_CON_ON_NDI);
|
||||
}
|
||||
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
@@ -20079,8 +20085,8 @@ int wlan_hdd_send_mcc_latency(struct hdd_adapter *adapter, int set_value)
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct hdd_adapter *
|
||||
wlan_hdd_get_adapter_from_vdev(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||
struct wlan_hdd_link_info *
|
||||
wlan_hdd_get_link_info_from_vdev(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||
{
|
||||
struct hdd_context *hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD);
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
@@ -20097,7 +20103,7 @@ wlan_hdd_get_adapter_from_vdev(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return link_info->adapter;
|
||||
return link_info;
|
||||
}
|
||||
|
||||
int hdd_get_rssi_snr_by_bssid(struct hdd_adapter *adapter, const uint8_t *bssid,
|
||||
|
@@ -515,16 +515,18 @@ wlan_hdd_pre_cac_conditional_freq_switch_ind(struct wlan_objmgr_vdev *vdev,
|
||||
struct wlan_objmgr_psoc *psoc = wlan_vdev_get_psoc(vdev);
|
||||
uint8_t vdev_id = vdev->vdev_objmgr.vdev_id;
|
||||
struct hdd_adapter *adapter;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct hdd_ap_ctx *ap_ctx;
|
||||
|
||||
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
if (!adapter) {
|
||||
hdd_err("Invalid adapter");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return;
|
||||
}
|
||||
|
||||
adapter = link_info->adapter;
|
||||
if (completed) {
|
||||
ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(adapter->deflink);
|
||||
ap_ctx = WLAN_HDD_GET_AP_CTX_PTR(link_info);
|
||||
ap_ctx->dfs_cac_block_tx = false;
|
||||
ucfg_ipa_set_dfs_cac_tx(adapter->hdd_ctx->pdev,
|
||||
ap_ctx->dfs_cac_block_tx);
|
||||
@@ -543,18 +545,18 @@ wlan_hdd_pre_cac_complete(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id,
|
||||
QDF_STATUS status)
|
||||
{
|
||||
struct hdd_adapter *adapter;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
|
||||
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
if (!adapter) {
|
||||
hdd_err("Invalid adapter vdev %d", vdev_id);
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev %d", vdev_id);
|
||||
return;
|
||||
}
|
||||
|
||||
if (QDF_IS_STATUS_SUCCESS(status))
|
||||
wlan_hdd_pre_cac_success(adapter);
|
||||
wlan_hdd_pre_cac_success(link_info->adapter);
|
||||
else
|
||||
wlan_hdd_pre_cac_failure(adapter);
|
||||
wlan_hdd_pre_cac_failure(link_info->adapter);
|
||||
}
|
||||
|
||||
struct osif_pre_cac_legacy_ops pre_cac_legacy_ops = {
|
||||
|
@@ -653,7 +653,7 @@ hdd_check_and_set_tdls_conn_params(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
uint8_t vdev_id;
|
||||
enum hdd_dot11_mode selfdot11mode;
|
||||
struct hdd_adapter *adapter;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
struct hdd_context *hdd_ctx;
|
||||
|
||||
@@ -661,18 +661,15 @@ hdd_check_and_set_tdls_conn_params(struct wlan_objmgr_vdev *vdev)
|
||||
if (!psoc)
|
||||
return;
|
||||
|
||||
vdev_id = wlan_vdev_get_id(vdev);
|
||||
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
if (!adapter)
|
||||
return;
|
||||
|
||||
/*
|
||||
* Only need to set this if STA link is in legacy mode
|
||||
*/
|
||||
if (!hdd_is_sta_legacy(adapter->deflink))
|
||||
vdev_id = wlan_vdev_get_id(vdev);
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info || !hdd_is_sta_legacy(link_info))
|
||||
return;
|
||||
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
|
||||
if (!hdd_ctx)
|
||||
return;
|
||||
|
||||
@@ -692,32 +689,29 @@ hdd_check_and_set_tdls_conn_params(struct wlan_objmgr_vdev *vdev)
|
||||
selfdot11mode == eHDD_DOT11_MODE_11ac ||
|
||||
selfdot11mode == eHDD_DOT11_MODE_11n ||
|
||||
selfdot11mode == eHDD_DOT11_MODE_11n_ONLY)
|
||||
hdd_cm_netif_queue_enable(adapter);
|
||||
hdd_cm_netif_queue_enable(link_info->adapter);
|
||||
}
|
||||
|
||||
void
|
||||
hdd_check_and_set_tdls_disconn_params(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct hdd_adapter *adapter;
|
||||
uint8_t vdev_id;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
|
||||
psoc = wlan_vdev_get_psoc(vdev);
|
||||
if (!psoc)
|
||||
return;
|
||||
|
||||
vdev_id = wlan_vdev_get_id(vdev);
|
||||
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
if (!adapter)
|
||||
return;
|
||||
|
||||
/*
|
||||
* Only need to set this if STA link is in legacy mode
|
||||
*/
|
||||
if (!hdd_is_sta_legacy(adapter->deflink))
|
||||
vdev_id = wlan_vdev_get_id(vdev);
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info || !hdd_is_sta_legacy(link_info))
|
||||
return;
|
||||
|
||||
hdd_cm_netif_queue_enable(adapter);
|
||||
hdd_cm_netif_queue_enable(link_info->adapter);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -1914,14 +1914,16 @@ hdd_twt_add_dialog_comp_cb(struct wlan_objmgr_psoc *psoc,
|
||||
bool renego_fail)
|
||||
{
|
||||
struct hdd_adapter *adapter;
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
uint8_t vdev_id = add_dialog_event->params.vdev_id;
|
||||
|
||||
adapter = wlan_hdd_get_adapter_from_vdev(psoc, vdev_id);
|
||||
if (!adapter) {
|
||||
hdd_err("adapter is NULL");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return;
|
||||
}
|
||||
|
||||
adapter = link_info->adapter;
|
||||
hdd_debug("TWT: add dialog_id:%d, status:%d vdev_id:%d renego_fail:%d peer mac_addr "
|
||||
QDF_MAC_ADDR_FMT, add_dialog_event->params.dialog_id,
|
||||
add_dialog_event->params.status, vdev_id, renego_fail,
|
||||
@@ -2334,8 +2336,7 @@ static void
|
||||
hdd_twt_del_dialog_comp_cb(struct wlan_objmgr_psoc *psoc,
|
||||
struct wmi_twt_del_dialog_complete_event_param *params)
|
||||
{
|
||||
struct hdd_adapter *adapter =
|
||||
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct wireless_dev *wdev;
|
||||
struct hdd_context *hdd_ctx;
|
||||
struct sk_buff *twt_vendor_event;
|
||||
@@ -2344,16 +2345,17 @@ hdd_twt_del_dialog_comp_cb(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
hdd_enter();
|
||||
|
||||
if (!adapter) {
|
||||
hdd_err("adapter is NULL");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return;
|
||||
}
|
||||
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
|
||||
if (!hdd_ctx || cds_is_load_or_unload_in_progress())
|
||||
return;
|
||||
|
||||
wdev = adapter->dev->ieee80211_ptr;
|
||||
wdev = &link_info->adapter->wdev;
|
||||
|
||||
data_len = hdd_get_twt_event_len() + nla_total_size(sizeof(u8));
|
||||
data_len += NLA_HDRLEN;
|
||||
@@ -2798,8 +2800,7 @@ static void hdd_twt_nudge_dialog_comp_cb(
|
||||
struct wmi_twt_nudge_dialog_complete_event_param *params)
|
||||
{
|
||||
|
||||
struct hdd_adapter *adapter =
|
||||
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct wireless_dev *wdev;
|
||||
struct hdd_context *hdd_ctx;
|
||||
struct sk_buff *twt_vendor_event;
|
||||
@@ -2807,12 +2808,14 @@ static void hdd_twt_nudge_dialog_comp_cb(
|
||||
QDF_STATUS status;
|
||||
|
||||
hdd_enter();
|
||||
if (hdd_validate_adapter(adapter))
|
||||
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
|
||||
if (!link_info || hdd_validate_adapter(link_info->adapter))
|
||||
return;
|
||||
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
|
||||
|
||||
wdev = adapter->dev->ieee80211_ptr;
|
||||
wdev = &link_info->adapter->wdev;
|
||||
|
||||
hdd_debug("Nudge dialog_id:%d, status:%d vdev_id %d peer mac_addr "
|
||||
QDF_MAC_ADDR_FMT, params->dialog_id,
|
||||
@@ -2911,8 +2914,7 @@ hdd_twt_pause_dialog_comp_cb(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct wmi_twt_pause_dialog_complete_event_param *params)
|
||||
{
|
||||
struct hdd_adapter *adapter =
|
||||
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct wireless_dev *wdev;
|
||||
struct hdd_context *hdd_ctx;
|
||||
struct sk_buff *twt_vendor_event;
|
||||
@@ -2921,17 +2923,18 @@ hdd_twt_pause_dialog_comp_cb(
|
||||
|
||||
hdd_enter();
|
||||
|
||||
if (!adapter) {
|
||||
hdd_err("adapter is NULL");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return;
|
||||
}
|
||||
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
|
||||
status = wlan_hdd_validate_context(hdd_ctx);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
return;
|
||||
|
||||
wdev = adapter->dev->ieee80211_ptr;
|
||||
wdev = &link_info->adapter->wdev;
|
||||
|
||||
hdd_debug("pause dialog_id:%d, status:%d vdev_id %d peer mac_addr "
|
||||
QDF_MAC_ADDR_FMT, params->dialog_id,
|
||||
@@ -3373,8 +3376,7 @@ static void hdd_twt_resume_dialog_comp_cb(
|
||||
struct wlan_objmgr_psoc *psoc,
|
||||
struct wmi_twt_resume_dialog_complete_event_param *params)
|
||||
{
|
||||
struct hdd_adapter *adapter =
|
||||
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct hdd_context *hdd_ctx;
|
||||
struct wireless_dev *wdev;
|
||||
struct sk_buff *twt_vendor_event;
|
||||
@@ -3383,17 +3385,18 @@ static void hdd_twt_resume_dialog_comp_cb(
|
||||
|
||||
hdd_enter();
|
||||
|
||||
if (!adapter) {
|
||||
hdd_err("adapter is NULL");
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
|
||||
if (!link_info) {
|
||||
hdd_err("Invalid vdev");
|
||||
return;
|
||||
}
|
||||
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
hdd_ctx = WLAN_HDD_GET_CTX(link_info->adapter);
|
||||
status = wlan_hdd_validate_context(hdd_ctx);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
return;
|
||||
|
||||
wdev = adapter->dev->ieee80211_ptr;
|
||||
wdev = &link_info->adapter->wdev;
|
||||
|
||||
hdd_debug("TWT: resume dialog_id:%d status:%d vdev_id %d peer mac_addr "
|
||||
QDF_MAC_ADDR_FMT, params->dialog_id,
|
||||
@@ -4156,8 +4159,7 @@ static void
|
||||
hdd_twt_notify_cb(struct wlan_objmgr_psoc *psoc,
|
||||
struct wmi_twt_notify_event_param *params)
|
||||
{
|
||||
struct hdd_adapter *adapter =
|
||||
wlan_hdd_get_adapter_from_vdev(psoc, params->vdev_id);
|
||||
struct wlan_hdd_link_info *link_info;
|
||||
struct wireless_dev *wdev;
|
||||
struct sk_buff *twt_vendor_event;
|
||||
size_t data_len;
|
||||
@@ -4165,16 +4167,17 @@ hdd_twt_notify_cb(struct wlan_objmgr_psoc *psoc,
|
||||
|
||||
hdd_enter();
|
||||
|
||||
if (hdd_validate_adapter(adapter))
|
||||
link_info = wlan_hdd_get_link_info_from_vdev(psoc, params->vdev_id);
|
||||
if (!link_info || hdd_validate_adapter(link_info->adapter))
|
||||
return;
|
||||
|
||||
wdev = adapter->dev->ieee80211_ptr;
|
||||
wdev = &link_info->adapter->wdev;
|
||||
|
||||
data_len = NLA_HDRLEN;
|
||||
data_len += nla_total_size(sizeof(u8));
|
||||
|
||||
twt_vendor_event = wlan_cfg80211_vendor_event_alloc(
|
||||
adapter->wdev.wiphy, wdev,
|
||||
wdev->wiphy, wdev,
|
||||
data_len,
|
||||
QCA_NL80211_VENDOR_SUBCMD_CONFIG_TWT_INDEX,
|
||||
GFP_KERNEL);
|
||||
|
Verwijs in nieuw issue
Block a user