qcacld-3.0: Add handling to disable vdev for miracast
Add handling to disable second vdev of mac if miracast is set for one vdev. In case high throughput or low latency is required for particular vdev then another vdev on same mac should be disabled, if present in MCC. Change-Id: I36cc19f442130b098c4a02ec0ebcf69b89dd2a3c CRs-Fixed: 3219512
This commit is contained in:

committed by
Madan Koyyalamudi

parent
f18f044e74
commit
56cde67530
@@ -1113,28 +1113,6 @@ QDF_STATUS mlme_get_cfg_wlm_reset(struct wlan_objmgr_psoc *psoc,
|
||||
void mlme_reinit_control_config_lfr_params(struct wlan_objmgr_psoc *psoc,
|
||||
struct wlan_mlme_lfr_cfg *lfr);
|
||||
|
||||
/**
|
||||
* wlan_mlme_mlo_sta_mlo_concurency_set_link() - Set links for MLO STA
|
||||
*
|
||||
* @vdev: vdev object
|
||||
* @reason: Reason for which link is forced
|
||||
* @mode: Force reason
|
||||
* @num_mlo_vdev: number of mlo vdev
|
||||
* @mlo_vdev_lst: MLO STA vdev list
|
||||
|
||||
* Interface manager Set links for MLO STA
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
void
|
||||
wlan_mlo_sta_mlo_concurency_set_link(struct wlan_objmgr_vdev *vdev,
|
||||
enum mlo_link_force_reason reason,
|
||||
enum mlo_link_force_mode mode,
|
||||
uint8_t num_mlo_vdev,
|
||||
uint8_t *mlo_vdev_lst);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* wlan_mlme_get_mac_vdev_id() - get vdev self mac address using vdev id
|
||||
* @pdev: pdev
|
||||
|
@@ -3943,79 +3943,6 @@ QDF_STATUS mlme_get_fw_scan_channels(struct wlan_objmgr_psoc *psoc,
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_11BE_MLO
|
||||
static void
|
||||
wlan_mlo_fill_active_link_vdev_bitmap(struct mlo_link_set_active_req *req,
|
||||
uint8_t *mlo_vdev_lst,
|
||||
uint32_t num_mlo_vdev)
|
||||
{
|
||||
uint32_t entry_idx, entry_offset, vdev_idx;
|
||||
uint8_t vdev_id;
|
||||
|
||||
for (vdev_idx = 0; vdev_idx < num_mlo_vdev; vdev_idx++) {
|
||||
vdev_id = mlo_vdev_lst[vdev_idx];
|
||||
entry_idx = vdev_id / 32;
|
||||
entry_offset = vdev_id % 32;
|
||||
if (entry_idx >= MLO_LINK_NUM_SZ) {
|
||||
mlme_err("Invalid entry_idx %d num_mlo_vdev %d vdev %d",
|
||||
entry_idx, num_mlo_vdev, vdev_id);
|
||||
continue;
|
||||
}
|
||||
req->param.vdev_bitmap[entry_idx] |= (1 << entry_offset);
|
||||
/* update entry number if entry index changed */
|
||||
if (req->param.num_vdev_bitmap < entry_idx + 1)
|
||||
req->param.num_vdev_bitmap = entry_idx + 1;
|
||||
}
|
||||
|
||||
mlme_debug("num_vdev_bitmap %d vdev_bitmap[0] = 0x%x, vdev_bitmap[1] = 0x%x",
|
||||
req->param.num_vdev_bitmap, req->param.vdev_bitmap[0],
|
||||
req->param.vdev_bitmap[1]);
|
||||
}
|
||||
|
||||
void
|
||||
wlan_mlo_sta_mlo_concurency_set_link(struct wlan_objmgr_vdev *vdev,
|
||||
enum mlo_link_force_reason reason,
|
||||
enum mlo_link_force_mode mode,
|
||||
uint8_t num_mlo_vdev,
|
||||
uint8_t *mlo_vdev_lst)
|
||||
{
|
||||
struct mlo_link_set_active_req *req;
|
||||
QDF_STATUS status;
|
||||
|
||||
req = qdf_mem_malloc(sizeof(*req));
|
||||
if (!req)
|
||||
return;
|
||||
|
||||
mlme_debug("vdev %d: mode %d num_mlo_vdev %d reason %d",
|
||||
wlan_vdev_get_id(vdev), mode, num_mlo_vdev, reason);
|
||||
|
||||
req->ctx.vdev = vdev;
|
||||
req->param.reason = reason;
|
||||
req->param.force_mode = mode;
|
||||
req->ctx.set_mlo_link_cb = policy_mgr_handle_link_enable_disable_resp;
|
||||
req->ctx.cb_arg = req;
|
||||
|
||||
/* set MLO vdev bit mask for all case */
|
||||
wlan_mlo_fill_active_link_vdev_bitmap(req, mlo_vdev_lst, num_mlo_vdev);
|
||||
|
||||
/* fill num of links for MLO_LINK_FORCE_MODE_ACTIVE_NUM */
|
||||
if (mode == MLO_LINK_FORCE_MODE_ACTIVE_NUM) {
|
||||
req->param.force_mode = MLO_LINK_FORCE_MODE_ACTIVE_NUM;
|
||||
req->param.num_link_entry = 1;
|
||||
req->param.link_num[0].num_of_link = num_mlo_vdev - 1;
|
||||
}
|
||||
|
||||
status = mlo_ser_set_link_req(req);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
mlme_err("vdev %d: Failed to set link mode %d num_mlo_vdev %d reason %d",
|
||||
wlan_vdev_get_id(vdev), mode, num_mlo_vdev,
|
||||
reason);
|
||||
qdf_mem_free(req);
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS wlan_mlme_get_mac_vdev_id(struct wlan_objmgr_pdev *pdev,
|
||||
uint8_t vdev_id,
|
||||
struct qdf_mac_addr *self_mac)
|
||||
|
Reference in New Issue
Block a user