qcacmn: Update 11AX wireless modes in reg psoc structure

FW advertises the 11AX wireless modes in service ready ext2 event.
Add a regulatory API to update these modes in regulatory  psoc
private object.

Change-Id: I51e781f6819dabf2b98e129a996213a7eecbf8b2
CRs-Fixed: 2650136
This commit is contained in:
Shashikala Prabhu 2020-05-13 20:57:08 +05:30 • committed by nshrivas
commit 4a452b5de6
4 changed files with 53 additions and 1 deletions

View file

@ -2268,6 +2268,28 @@ QDF_STATUS reg_set_hal_reg_cap(
return QDF_STATUS_SUCCESS;
}
QDF_STATUS reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
uint32_t wireless_modes, uint8_t phy_id)
{
struct wlan_regulatory_psoc_priv_obj *psoc_priv_obj;
if (!psoc) {
reg_err("psoc is null");
return QDF_STATUS_E_FAILURE;
}
psoc_priv_obj = reg_get_psoc_obj(psoc);
if (!IS_VALID_PSOC_REG_OBJ(psoc_priv_obj)) {
reg_err("psoc reg component is NULL");
return QDF_STATUS_E_FAILURE;
}
psoc_priv_obj->reg_cap[phy_id].wireless_modes |= wireless_modes;
return QDF_STATUS_SUCCESS;
}
bool reg_chan_in_range(struct regulatory_channel *chan_list,
qdf_freq_t low_freq_2g, qdf_freq_t high_freq_2g,
qdf_freq_t low_freq_5g, qdf_freq_t high_freq_5g,

View file

@ -462,6 +462,17 @@ QDF_STATUS reg_set_hal_reg_cap(
struct wlan_psoc_host_hal_reg_capabilities_ext *reg_cap,
uint16_t phy_cnt);
/**
* reg_update_hal_reg_cap() - Update HAL REG capabilities
* @psoc: psoc pointer
* @wireless_modes: 11AX wireless modes
* @phy_id: phy id
*
* Return: QDF_STATUS
*/
QDF_STATUS reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
uint32_t wireless_modes, uint8_t phy_id);
/**
* reg_chan_in_range() - Check if the given channel is in pdev's channel range
* @chan_list: Pointer to regulatory channel list.

View file

@ -374,6 +374,17 @@ QDF_STATUS ucfg_reg_set_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
struct wlan_psoc_host_hal_reg_capabilities_ext *reg_cap,
uint16_t phy_cnt);
/**
* ucfg_reg_update_hal_reg_cap() - update hal reg cap
* @psoc: psoc ptr
* @wireless_modes: 11AX wireless modes
* @phy_id: phy id
*
* Return: QDF_STATUS
*/
QDF_STATUS ucfg_reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
uint32_t wireless_modes, uint8_t phy_id);
/**
* ucfg_set_ignore_fw_reg_offload_ind() - API to set ignore regdb offload ind
* @psoc: psoc ptr

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
*
*
* Permission to use, copy, modify, and/or distribute this software for
@ -286,6 +286,14 @@ QDF_STATUS ucfg_reg_set_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
}
qdf_export_symbol(ucfg_reg_set_hal_reg_cap);
QDF_STATUS ucfg_reg_update_hal_reg_cap(struct wlan_objmgr_psoc *psoc,
uint32_t wireless_modes, uint8_t phy_id)
{
return reg_update_hal_reg_cap(psoc, wireless_modes, phy_id);
}
qdf_export_symbol(ucfg_reg_update_hal_reg_cap);
#ifdef DISABLE_CHANNEL_LIST
#ifdef CONFIG_CHAN_FREQ_API
/**