qcacmn: Replace reg_is_disable_for_freq
As part of upgrading legacy code with 6 GHz power APIs, replace reg_is_disable_for_freq, wlan_reg_is_disable_for_freq and reg_set_5g_channel_params_for_freq APIs with reg_is_disable_for_pwrmode, wlan_reg_is_disable_for_pwrmode and reg_set_5g_channel_params_for_pwrmode APIs respectively. Change-Id: I70089b02fd3698dcd83d5418993f7ca238ad0e0b CRs-Fixed: 3145785
Cette révision appartient à :

révisé par
Madan Koyyalamudi

Parent
136869a4c0
révision
7da3869958
@@ -5590,171 +5590,6 @@ reg_get_5g_bonded_channel_for_pwrmode(struct wlan_objmgr_pdev *pdev,
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* reg_set_5g_channel_params_for_freq()- Set channel parameters like center
|
||||
* frequency for a bonded channel state. Also return the maximum bandwidth
|
||||
* supported by the channel.
|
||||
* @pdev: Pointer to pdev.
|
||||
* @freq: Channel center frequency.
|
||||
* ch_params: Pointer to ch_params.
|
||||
* @treat_nol_chan_as_disabled: Flag to consider nol chan as enabled/disabled
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static void reg_set_5g_channel_params_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||
uint16_t freq,
|
||||
struct ch_params *ch_params,
|
||||
bool treat_nol_chan_as_disabled)
|
||||
{
|
||||
/*
|
||||
* Set channel parameters like center frequency for a bonded channel
|
||||
* state. Also return the maximum bandwidth supported by the channel.
|
||||
*/
|
||||
|
||||
enum channel_state chan_state = CHANNEL_STATE_ENABLE;
|
||||
enum channel_state chan_state2 = CHANNEL_STATE_ENABLE;
|
||||
const struct bonded_channel_freq *bonded_chan_ptr = NULL;
|
||||
struct wlan_regulatory_pdev_priv_obj *pdev_priv_obj;
|
||||
enum channel_enum chan_enum, sec_5g_chan_enum;
|
||||
uint16_t max_bw, bw_80, sec_5g_freq_max_bw = 0;
|
||||
|
||||
if (!ch_params) {
|
||||
reg_err("ch_params is NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
chan_enum = reg_get_chan_enum_for_freq(freq);
|
||||
if (reg_is_chan_enum_invalid(chan_enum)) {
|
||||
reg_err("chan freq is not valid");
|
||||
return;
|
||||
}
|
||||
|
||||
pdev_priv_obj = reg_get_pdev_obj(pdev);
|
||||
if (!IS_VALID_PDEV_REG_OBJ(pdev_priv_obj)) {
|
||||
reg_err("reg pdev priv obj is NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
if (ch_params->ch_width >= CH_WIDTH_MAX) {
|
||||
if (ch_params->mhz_freq_seg1 != 0)
|
||||
ch_params->ch_width = CH_WIDTH_80P80MHZ;
|
||||
else
|
||||
ch_params->ch_width = CH_WIDTH_160MHZ;
|
||||
}
|
||||
|
||||
max_bw = pdev_priv_obj->cur_chan_list[chan_enum].max_bw;
|
||||
bw_80 = reg_get_bw_value(CH_WIDTH_80MHZ);
|
||||
|
||||
if (ch_params->ch_width == CH_WIDTH_80P80MHZ) {
|
||||
sec_5g_chan_enum =
|
||||
reg_get_chan_enum_for_freq(ch_params->mhz_freq_seg1 -
|
||||
NEAREST_20MHZ_CHAN_FREQ_OFFSET);
|
||||
if (reg_is_chan_enum_invalid(sec_5g_chan_enum)) {
|
||||
reg_err("secondary channel freq is not valid");
|
||||
return;
|
||||
}
|
||||
|
||||
sec_5g_freq_max_bw =
|
||||
pdev_priv_obj->cur_chan_list[sec_5g_chan_enum].max_bw;
|
||||
}
|
||||
|
||||
while (ch_params->ch_width != CH_WIDTH_INVALID) {
|
||||
if (ch_params->ch_width == CH_WIDTH_80P80MHZ) {
|
||||
if ((max_bw < bw_80) || (sec_5g_freq_max_bw < bw_80))
|
||||
goto update_bw;
|
||||
} else if (max_bw < reg_get_bw_value(ch_params->ch_width)) {
|
||||
goto update_bw;
|
||||
}
|
||||
|
||||
bonded_chan_ptr = NULL;
|
||||
chan_state = reg_get_5g_bonded_channel_for_freq(
|
||||
pdev, freq, ch_params->ch_width,
|
||||
&bonded_chan_ptr);
|
||||
|
||||
chan_state = reg_get_ch_state_based_on_nol_flag(pdev, freq,
|
||||
ch_params,
|
||||
REG_CURRENT_PWR_MODE,
|
||||
treat_nol_chan_as_disabled);
|
||||
|
||||
if (ch_params->ch_width == CH_WIDTH_80P80MHZ) {
|
||||
struct ch_params temp_ch_params = {0};
|
||||
|
||||
temp_ch_params.ch_width = CH_WIDTH_80MHZ;
|
||||
/* Puncturing patter is not needed for 80+80 */
|
||||
reg_set_create_punc_bitmap(&temp_ch_params, false);
|
||||
chan_state2 =
|
||||
reg_get_ch_state_based_on_nol_flag(pdev,
|
||||
ch_params->mhz_freq_seg1 -
|
||||
NEAREST_20MHZ_CHAN_FREQ_OFFSET,
|
||||
&temp_ch_params, REG_CURRENT_PWR_MODE,
|
||||
treat_nol_chan_as_disabled);
|
||||
chan_state = reg_combine_channel_states(
|
||||
chan_state, chan_state2);
|
||||
}
|
||||
|
||||
if ((chan_state != CHANNEL_STATE_ENABLE) &&
|
||||
(chan_state != CHANNEL_STATE_DFS))
|
||||
goto update_bw;
|
||||
if (ch_params->ch_width <= CH_WIDTH_20MHZ) {
|
||||
ch_params->sec_ch_offset = NO_SEC_CH;
|
||||
ch_params->mhz_freq_seg0 = freq;
|
||||
ch_params->center_freq_seg0 =
|
||||
reg_freq_to_chan(pdev,
|
||||
ch_params->mhz_freq_seg0);
|
||||
break;
|
||||
} else if (ch_params->ch_width >= CH_WIDTH_40MHZ) {
|
||||
const struct bonded_channel_freq *bonded_chan_ptr2;
|
||||
|
||||
bonded_chan_ptr2 =
|
||||
reg_get_bonded_chan_entry(freq,
|
||||
CH_WIDTH_40MHZ, 0);
|
||||
|
||||
if (!bonded_chan_ptr || !bonded_chan_ptr2)
|
||||
goto update_bw;
|
||||
if (freq == bonded_chan_ptr2->start_freq)
|
||||
ch_params->sec_ch_offset = LOW_PRIMARY_CH;
|
||||
else
|
||||
ch_params->sec_ch_offset = HIGH_PRIMARY_CH;
|
||||
|
||||
ch_params->mhz_freq_seg0 =
|
||||
(bonded_chan_ptr->start_freq +
|
||||
bonded_chan_ptr->end_freq) / 2;
|
||||
ch_params->center_freq_seg0 =
|
||||
reg_freq_to_chan(pdev,
|
||||
ch_params->mhz_freq_seg0);
|
||||
break;
|
||||
}
|
||||
update_bw:
|
||||
ch_params->ch_width =
|
||||
get_next_lower_bandwidth(ch_params->ch_width);
|
||||
}
|
||||
|
||||
if (ch_params->ch_width == CH_WIDTH_160MHZ) {
|
||||
ch_params->mhz_freq_seg1 = ch_params->mhz_freq_seg0;
|
||||
ch_params->center_freq_seg1 =
|
||||
reg_freq_to_chan(pdev,
|
||||
ch_params->mhz_freq_seg1);
|
||||
|
||||
chan_state = reg_get_5g_bonded_channel_for_freq(
|
||||
pdev, freq, CH_WIDTH_80MHZ, &bonded_chan_ptr);
|
||||
if (bonded_chan_ptr) {
|
||||
ch_params->mhz_freq_seg0 =
|
||||
(bonded_chan_ptr->start_freq +
|
||||
bonded_chan_ptr->end_freq) / 2;
|
||||
ch_params->center_freq_seg0 =
|
||||
reg_freq_to_chan(pdev,
|
||||
ch_params->mhz_freq_seg0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Overwrite mhz_freq_seg1 to 0 for non 160 and 80+80 width */
|
||||
if (!(ch_params->ch_width == CH_WIDTH_160MHZ ||
|
||||
ch_params->ch_width == CH_WIDTH_80P80MHZ)) {
|
||||
ch_params->mhz_freq_seg1 = 0;
|
||||
ch_params->center_freq_seg1 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_REG_6G_PWRMODE
|
||||
/**
|
||||
* reg_set_5g_channel_params_for_pwrmode()- Set channel parameters like center
|
||||
@@ -6080,9 +5915,11 @@ void reg_set_channel_params_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||
treat_nol_chan_as_disabled);
|
||||
reg_copy_ch_params(ch_params, chan_list);
|
||||
} else {
|
||||
reg_set_5g_channel_params_for_freq(pdev, freq,
|
||||
ch_params,
|
||||
treat_nol_chan_as_disabled);
|
||||
reg_set_5g_channel_params_for_pwrmode(
|
||||
pdev, freq,
|
||||
ch_params,
|
||||
REG_CURRENT_PWR_MODE,
|
||||
treat_nol_chan_as_disabled);
|
||||
}
|
||||
} else if (reg_is_24ghz_ch_freq(freq)) {
|
||||
reg_set_2g_channel_params_for_freq(pdev, freq, ch_params,
|
||||
@@ -6097,8 +5934,10 @@ void reg_set_channel_params_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||
bool treat_nol_chan_as_disabled)
|
||||
{
|
||||
if (reg_is_5ghz_ch_freq(freq) || reg_is_6ghz_chan_freq(freq))
|
||||
reg_set_5g_channel_params_for_freq(pdev, freq, ch_params,
|
||||
treat_nol_chan_as_disabled);
|
||||
reg_set_5g_channel_params_for_pwrmode(
|
||||
pdev, freq, ch_params,
|
||||
REG_CURRENT_PWR_MODE,
|
||||
treat_nol_chan_as_disabled);
|
||||
else if (reg_is_24ghz_ch_freq(freq))
|
||||
reg_set_2g_channel_params_for_freq(pdev, freq, ch_params,
|
||||
sec_ch_2g_freq);
|
||||
@@ -6364,15 +6203,6 @@ enum reg_wifi_band reg_freq_to_band(qdf_freq_t freq)
|
||||
return REG_BAND_UNKNOWN;
|
||||
}
|
||||
|
||||
bool reg_is_disable_for_freq(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq)
|
||||
{
|
||||
enum channel_state ch_state;
|
||||
|
||||
ch_state = reg_get_channel_state_for_freq(pdev, freq);
|
||||
|
||||
return ch_state == CHANNEL_STATE_DISABLE;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_REG_6G_PWRMODE
|
||||
bool reg_is_disable_for_pwrmode(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq,
|
||||
enum supported_6g_pwr_types in_6g_pwr_mode)
|
||||
|
@@ -1329,17 +1329,6 @@ reg_get_5g_bonded_channel_for_pwrmode(struct wlan_objmgr_pdev *pdev,
|
||||
in_6g_pwr_mode);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* reg_is_disable_for_freq() - Check if the given channel frequency in
|
||||
* disable state
|
||||
* @pdev: Pointer to pdev
|
||||
* @freq: Channel frequency
|
||||
* @in_6g_pwr_type: 6g power type which decides 6G channel list lookup.
|
||||
*
|
||||
* Return: True if channel state is disabled, else false
|
||||
*/
|
||||
bool reg_is_disable_for_freq(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq);
|
||||
|
||||
#ifdef CONFIG_REG_6G_PWRMODE
|
||||
/**
|
||||
* reg_is_disable_for_pwrmode() - Check if the given channel frequency in
|
||||
|
@@ -1743,15 +1743,6 @@ bool wlan_reg_is_dsrc_freq(qdf_freq_t freq);
|
||||
bool wlan_reg_is_passive_or_disable_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||
qdf_freq_t freq);
|
||||
|
||||
/**
|
||||
* wlan_reg_is_disable_for_freq() - Checks chan state for disabled
|
||||
* @pdev: pdev ptr
|
||||
* @freq: Channel center frequency
|
||||
*
|
||||
* Return: true or false
|
||||
*/
|
||||
bool wlan_reg_is_disable_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||
qdf_freq_t freq);
|
||||
#ifdef CONFIG_REG_6G_PWRMODE
|
||||
/**
|
||||
* wlan_reg_is_disable_for_pwrmode() - Checks chan state for disabled
|
||||
|
@@ -1096,12 +1096,6 @@ bool wlan_reg_is_passive_or_disable_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||
return reg_is_passive_or_disable_for_freq(pdev, freq);
|
||||
}
|
||||
|
||||
bool wlan_reg_is_disable_for_freq(struct wlan_objmgr_pdev *pdev,
|
||||
qdf_freq_t freq)
|
||||
{
|
||||
return reg_is_disable_for_freq(pdev, freq);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_REG_6G_PWRMODE
|
||||
bool wlan_reg_is_disable_for_pwrmode(struct wlan_objmgr_pdev *pdev,
|
||||
qdf_freq_t freq,
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur