|
@@ -1,5 +1,6 @@
|
|
/*
|
|
/*
|
|
* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
|
|
* Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
|
|
|
|
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
|
*
|
|
*
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
@@ -299,25 +300,13 @@ QDF_STATUS reg_11d_vdev_created_update(struct wlan_objmgr_vdev *vdev)
|
|
return QDF_STATUS_SUCCESS;
|
|
return QDF_STATUS_SUCCESS;
|
|
}
|
|
}
|
|
|
|
|
|
-QDF_STATUS reg_11d_vdev_delete_update(struct wlan_objmgr_vdev *vdev)
|
|
|
|
|
|
+QDF_STATUS reg_11d_vdev_delete_update(struct wlan_objmgr_psoc *psoc,
|
|
|
|
+ enum QDF_OPMODE op_mode, uint32_t vdev_id)
|
|
{
|
|
{
|
|
struct wlan_regulatory_psoc_priv_obj *psoc_priv_obj;
|
|
struct wlan_regulatory_psoc_priv_obj *psoc_priv_obj;
|
|
- struct wlan_objmgr_pdev *parent_pdev;
|
|
|
|
- struct wlan_objmgr_psoc *parent_psoc;
|
|
|
|
- enum QDF_OPMODE op_mode;
|
|
|
|
- uint32_t vdev_id;
|
|
|
|
uint8_t i;
|
|
uint8_t i;
|
|
|
|
|
|
- if (!vdev) {
|
|
|
|
- reg_err("NULL vdev");
|
|
|
|
- return QDF_STATUS_E_INVAL;
|
|
|
|
- }
|
|
|
|
- op_mode = wlan_vdev_mlme_get_opmode(vdev);
|
|
|
|
-
|
|
|
|
- parent_pdev = wlan_vdev_get_pdev(vdev);
|
|
|
|
- parent_psoc = wlan_pdev_get_psoc(parent_pdev);
|
|
|
|
-
|
|
|
|
- psoc_priv_obj = reg_get_psoc_obj(parent_psoc);
|
|
|
|
|
|
+ psoc_priv_obj = reg_get_psoc_obj(psoc);
|
|
if (!psoc_priv_obj) {
|
|
if (!psoc_priv_obj) {
|
|
reg_err("NULL reg psoc private obj");
|
|
reg_err("NULL reg psoc private obj");
|
|
return QDF_STATUS_E_FAULT;
|
|
return QDF_STATUS_E_FAULT;
|
|
@@ -327,13 +316,12 @@ QDF_STATUS reg_11d_vdev_delete_update(struct wlan_objmgr_vdev *vdev)
|
|
psoc_priv_obj->master_vdev_cnt--;
|
|
psoc_priv_obj->master_vdev_cnt--;
|
|
reg_debug("run 11d state machine, deleted opmode %d",
|
|
reg_debug("run 11d state machine, deleted opmode %d",
|
|
op_mode);
|
|
op_mode);
|
|
- reg_run_11d_state_machine(parent_psoc);
|
|
|
|
|
|
+ reg_run_11d_state_machine(psoc);
|
|
return QDF_STATUS_SUCCESS;
|
|
return QDF_STATUS_SUCCESS;
|
|
}
|
|
}
|
|
|
|
|
|
if ((op_mode == QDF_STA_MODE) || (op_mode == QDF_P2P_DEVICE_MODE) ||
|
|
if ((op_mode == QDF_STA_MODE) || (op_mode == QDF_P2P_DEVICE_MODE) ||
|
|
(op_mode == QDF_P2P_CLIENT_MODE)) {
|
|
(op_mode == QDF_P2P_CLIENT_MODE)) {
|
|
- vdev_id = wlan_vdev_get_id(vdev);
|
|
|
|
for (i = 0; i < MAX_STA_VDEV_CNT; i++) {
|
|
for (i = 0; i < MAX_STA_VDEV_CNT; i++) {
|
|
if (psoc_priv_obj->vdev_ids_11d[i] == vdev_id) {
|
|
if (psoc_priv_obj->vdev_ids_11d[i] == vdev_id) {
|
|
psoc_priv_obj->vdev_ids_11d[i] =
|
|
psoc_priv_obj->vdev_ids_11d[i] =
|
|
@@ -360,7 +348,7 @@ QDF_STATUS reg_11d_vdev_delete_update(struct wlan_objmgr_vdev *vdev)
|
|
psoc_priv_obj->enable_11d_supp = false;
|
|
psoc_priv_obj->enable_11d_supp = false;
|
|
reg_debug("running 11d state machine, vdev %d",
|
|
reg_debug("running 11d state machine, vdev %d",
|
|
psoc_priv_obj->vdev_id_for_11d_scan);
|
|
psoc_priv_obj->vdev_id_for_11d_scan);
|
|
- reg_run_11d_state_machine(parent_psoc);
|
|
|
|
|
|
+ reg_run_11d_state_machine(psoc);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|