|
@@ -371,6 +371,27 @@ static QDF_STATUS mlo_ap_ctx_init(struct wlan_mlo_dev_context *ml_dev)
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_AP_PLATFORM
|
|
#ifdef CONFIG_AP_PLATFORM
|
|
|
|
+static inline
|
|
|
|
+QDF_STATUS wlan_mlo_check_grp_id(uint8_t ref_id,
|
|
|
|
+ struct wlan_objmgr_vdev *vdev)
|
|
|
|
+{
|
|
|
|
+ struct wlan_objmgr_psoc *psoc;
|
|
|
|
+ uint8_t grp_id = 0;
|
|
|
|
+
|
|
|
|
+ psoc = wlan_vdev_get_psoc(vdev);
|
|
|
|
+ if (!mlo_psoc_get_grp_id(psoc, &grp_id)) {
|
|
|
|
+ mlo_err("Unable to get mlo group id");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (grp_id != ref_id) {
|
|
|
|
+ mlo_err("Error : MLD VAP Configuration with different WSI/MLD Groups");
|
|
|
|
+ return QDF_STATUS_E_FAILURE;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return QDF_STATUS_SUCCESS;
|
|
|
|
+}
|
|
|
|
+
|
|
static inline
|
|
static inline
|
|
QDF_STATUS wlan_mlo_pdev_check(struct wlan_objmgr_pdev *ref_pdev,
|
|
QDF_STATUS wlan_mlo_pdev_check(struct wlan_objmgr_pdev *ref_pdev,
|
|
struct wlan_objmgr_vdev *vdev)
|
|
struct wlan_objmgr_vdev *vdev)
|
|
@@ -397,26 +418,8 @@ QDF_STATUS wlan_mlo_pdev_check(struct wlan_objmgr_pdev *ref_pdev,
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
}
|
|
}
|
|
|
|
|
|
- return QDF_STATUS_SUCCESS;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static inline
|
|
|
|
-QDF_STATUS wlan_mlo_check_grp_id(uint8_t ref_id,
|
|
|
|
- struct wlan_objmgr_vdev *vdev)
|
|
|
|
-{
|
|
|
|
- struct wlan_objmgr_psoc *psoc;
|
|
|
|
- uint8_t grp_id = 0;
|
|
|
|
-
|
|
|
|
- psoc = wlan_vdev_get_psoc(vdev);
|
|
|
|
- if (!mlo_psoc_get_grp_id(psoc, &grp_id)) {
|
|
|
|
- mlo_err("Unable to get mlo group id");
|
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (grp_id != ref_id) {
|
|
|
|
- mlo_err("Error : MLD VAP Configuration with different WSI/MLD Groups");
|
|
|
|
|
|
+ if (wlan_mlo_check_grp_id(grp_id, vdev))
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
- }
|
|
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
return QDF_STATUS_SUCCESS;
|
|
}
|
|
}
|
|
@@ -448,13 +451,6 @@ QDF_STATUS wlan_mlo_pdev_check(struct wlan_objmgr_pdev *ref_pdev,
|
|
{
|
|
{
|
|
return QDF_STATUS_SUCCESS;
|
|
return QDF_STATUS_SUCCESS;
|
|
}
|
|
}
|
|
-
|
|
|
|
-static inline
|
|
|
|
-QDF_STATUS wlan_mlo_check_grp_id(uint8_t ref_id,
|
|
|
|
- struct wlan_objmgr_vdev *vdev)
|
|
|
|
-{
|
|
|
|
- return QDF_STATUS_SUCCESS;
|
|
|
|
-}
|
|
|
|
#endif
|
|
#endif
|
|
|
|
|
|
QDF_STATUS wlan_mlo_check_valid_config(struct wlan_mlo_dev_context *ml_dev,
|
|
QDF_STATUS wlan_mlo_check_valid_config(struct wlan_mlo_dev_context *ml_dev,
|
|
@@ -462,9 +458,7 @@ QDF_STATUS wlan_mlo_check_valid_config(struct wlan_mlo_dev_context *ml_dev,
|
|
enum QDF_OPMODE opmode)
|
|
enum QDF_OPMODE opmode)
|
|
{
|
|
{
|
|
uint32_t id = 0;
|
|
uint32_t id = 0;
|
|
- uint8_t ref_id = 0;
|
|
|
|
struct wlan_objmgr_vdev *vdev;
|
|
struct wlan_objmgr_vdev *vdev;
|
|
- struct wlan_objmgr_psoc *psoc;
|
|
|
|
|
|
|
|
if (!ml_dev)
|
|
if (!ml_dev)
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
@@ -472,15 +466,6 @@ QDF_STATUS wlan_mlo_check_valid_config(struct wlan_mlo_dev_context *ml_dev,
|
|
if (!pdev)
|
|
if (!pdev)
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
|
|
|
|
- psoc = wlan_pdev_get_psoc(pdev);
|
|
|
|
- if (!psoc)
|
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
|
-
|
|
|
|
- if (!mlo_psoc_get_grp_id(psoc, &ref_id)) {
|
|
|
|
- mlo_err("Unable to get mlo group id");
|
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
mlo_dev_lock_acquire(ml_dev);
|
|
mlo_dev_lock_acquire(ml_dev);
|
|
while (id < WLAN_UMAC_MLO_MAX_VDEVS) {
|
|
while (id < WLAN_UMAC_MLO_MAX_VDEVS) {
|
|
vdev = ml_dev->wlan_vdev_list[id];
|
|
vdev = ml_dev->wlan_vdev_list[id];
|
|
@@ -497,11 +482,6 @@ QDF_STATUS wlan_mlo_check_valid_config(struct wlan_mlo_dev_context *ml_dev,
|
|
mlo_dev_lock_release(ml_dev);
|
|
mlo_dev_lock_release(ml_dev);
|
|
return QDF_STATUS_E_FAILURE;
|
|
return QDF_STATUS_E_FAILURE;
|
|
}
|
|
}
|
|
-
|
|
|
|
- if (wlan_mlo_check_grp_id(ref_id, vdev)) {
|
|
|
|
- mlo_dev_lock_release(ml_dev);
|
|
|
|
- return QDF_STATUS_E_FAILURE;
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
id++;
|
|
id++;
|
|
}
|
|
}
|