qcacld-3.0: Modify mlo supported bands based on roam_band_bitmap

roam_band_bitmap is updated based on the vendor command from
userspace, when NCHO band configuration is received.
Update the MLO support_link_band sent to firmware as part of the
RSO commands to intersect the user configured roam_band_bitmap
value.
This will restrict the firmware to advertise only those bands
sent in the WMI_ROAM_MLO_CONFIG_CMDID command, and firmware
will advertise only links corresponding to the configured
bands in the reassociation request.

WMI_ROAM_MLO_CONFIG_CMDID will be sent when
QCA_ATTR_ROAM_CONTROL_BAND_MASK attribute is received in roaming
subcmd: QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_SET as part of
NCHO set band, since RSO stop, followed by start is sent during
set band to update PCL to firmware

Change-Id: Iba34411956bdb09502623bac9a51fb4663c632a8
CRs-Fixed: 3580693
This commit is contained in:
Pragaspathi Thilagaraj
2023-08-06 23:35:35 +05:30
committad av Rahul Choudhary
förälder 7c16dc6296
incheckning bd699c287b
2 ändrade filer med 14 tillägg och 3 borttagningar

Visa fil

@@ -3032,6 +3032,7 @@ cm_roam_mlo_config(struct wlan_objmgr_psoc *psoc,
struct wlan_roam_start_config *start_req) struct wlan_roam_start_config *start_req)
{ {
struct wlan_roam_mlo_config *roam_mlo_params; struct wlan_roam_mlo_config *roam_mlo_params;
struct rso_config *rso_cfg;
roam_mlo_params = &start_req->roam_mlo_params; roam_mlo_params = &start_req->roam_mlo_params;
roam_mlo_params->vdev_id = wlan_vdev_get_id(vdev); roam_mlo_params->vdev_id = wlan_vdev_get_id(vdev);
@@ -3039,6 +3040,18 @@ cm_roam_mlo_config(struct wlan_objmgr_psoc *psoc,
wlan_mlme_get_sta_mlo_conn_max_num(psoc); wlan_mlme_get_sta_mlo_conn_max_num(psoc);
roam_mlo_params->support_link_band = roam_mlo_params->support_link_band =
wlan_mlme_get_sta_mlo_conn_band_bmp(psoc); wlan_mlme_get_sta_mlo_conn_band_bmp(psoc);
/*
* Update the supported link band based on roam_band_bitmap
* Roam band bitmap is modified during NCHO mode enable, disable and
* regulatory supported band changes.
*/
rso_cfg = wlan_cm_get_rso_config(vdev);
if (!rso_cfg)
return;
roam_mlo_params->support_link_band &=
rso_cfg->roam_band_bitmask;
} }
#else #else
static void static void

Visa fil

@@ -1943,9 +1943,7 @@ enum roam_rt_stats_params {
* @support_link_num: Configure max number of link mlo connection supports. * @support_link_num: Configure max number of link mlo connection supports.
* Invalid value or 0 will use max supported value by fw. * Invalid value or 0 will use max supported value by fw.
* @support_link_band: Configure the band bitmap of mlo connection supports * @support_link_band: Configure the band bitmap of mlo connection supports
* Bit 0: 2G band support if 1 * The bits of the bitmap are defined by the enum reg_wifi_band
* Bit 1: 5G band support if 1
* Bit 2: 6G band support if 1
*/ */
struct wlan_roam_mlo_config { struct wlan_roam_mlo_config {
uint8_t vdev_id; uint8_t vdev_id;