qcacmn: Add reg_get_pwrmode_chan_list API

Add reg_get_pwrmode_chan_list() which will take an input 6G power mode
and will use super channel list to build the 6G power mode based channel
list.

The 2G and 5G portion of this channel list will be same as the current
channel list and if the input power mode is REG_CURRENT_PWR_MODE, then
also the current channel list is copied to the given buffer.

If the input 6G power mode is REG_BEST_PWR_MODE then all the 6G frequencies
supported by the current country will be present and will indicate the
power values of the best power mode possible for that entry.

For other 6G power types only the 6G portion of the channel list is
modified as per the input 6g power mode.

Change-Id: Ib22399ac950af87ee64ecdb78089bb2ff5221f69
This commit is contained in:
Vignesh U
2021-12-29 11:29:32 +05:30
committed by Madan Koyyalamudi
szülő 839558bc01
commit 2806fac2c3
4 fájl változott, egészen pontosan 153 új sor hozzáadva és 5 régi sor törölve

Fájl megtekintése

@@ -639,6 +639,24 @@ bool wlan_reg_is_freq_idx_enabled(struct wlan_objmgr_pdev *pdev,
enum channel_enum freq_idx,
enum supported_6g_pwr_types in_6g_pwr_mode);
/**
* wlan_reg_get_pwrmode_chan_list() - Get the modified channel list. A modified
* current channel list consists of 2G and 5G portions of the current channel
* list and the 6G portion of the current channel list is derived from the input
* 6g power type.
* @pdev: Pointer to pdev
* @chan_list: Pointer to buffer which stores list of regulatory_channels.
* @in_6g_pwr_mode: 6GHz power type
*
* Return:
* QDF_STATUS_SUCCESS: Success
* QDF_STATUS_E_INVAL: Failed to get channel list
*/
QDF_STATUS wlan_reg_get_pwrmode_chan_list(struct wlan_objmgr_pdev *pdev,
struct regulatory_channel *chan_list,
enum supported_6g_pwr_types
in_6g_pwr_mode);
#ifdef CONFIG_REG_CLIENT
/**
* wlan_reg_get_secondary_current_chan_list() - provide the pdev secondary

Fájl megtekintése

@@ -89,6 +89,16 @@ QDF_STATUS wlan_reg_get_max_5g_bw_from_regdomain(
return reg_get_max_5g_bw_from_regdomain(pdev, regdmn, max_bw_5g);
}
QDF_STATUS wlan_reg_get_pwrmode_chan_list(struct wlan_objmgr_pdev *pdev,
struct regulatory_channel *chan_list,
enum supported_6g_pwr_types
in_6g_pwr_mode)
{
return reg_get_pwrmode_chan_list(pdev, chan_list, in_6g_pwr_mode);
}
qdf_export_symbol(wlan_reg_get_pwrmode_chan_list);
#ifdef CONFIG_REG_CLIENT
QDF_STATUS
wlan_reg_get_6g_power_type_for_ctry(struct wlan_objmgr_psoc *psoc,