qcacmn: Add API reg_is_supr_entry_mode_disabled to check AFC_NOT_DONE flag

Add an API reg_is_supr_entry_mode_disabled to check if
REGULATORY_CHAN_AFC_NOT_DONE is cleared for a given frequency and
input power mode.

Change-Id: I6ca851bbe89e6003d8084856eb30b4796d01616e
CRs-Fixed: 3230917
This commit is contained in:
Amith A
2022-07-06 10:28:28 +05:30
committed by Madan Koyyalamudi
orang tua 788ca7bb89
melakukan 5bb1139116
4 mengubah file dengan 90 tambahan dan 0 penghapusan

Melihat File

@@ -9240,3 +9240,31 @@ bool reg_is_offload_enabled(struct wlan_objmgr_pdev *pdev)
}
return soc_reg->offload_enabled;
}
#if defined(CONFIG_AFC_SUPPORT) && defined(CONFIG_BAND_6GHZ)
bool
reg_is_sup_chan_entry_afc_done(struct wlan_objmgr_pdev *pdev,
enum channel_enum chan_idx,
enum supported_6g_pwr_types in_6g_pwr_mode)
{
const struct super_chan_info *super_chan_ent;
QDF_STATUS status;
status = reg_get_superchan_entry(pdev, chan_idx,
&super_chan_ent);
if (QDF_IS_STATUS_ERROR(status)) {
reg_debug("Failed to get super channel entry for chan_idx %d",
chan_idx);
return false;
}
if (in_6g_pwr_mode == REG_BEST_PWR_MODE)
in_6g_pwr_mode = super_chan_ent->best_power_mode;
if (in_6g_pwr_mode != REG_AP_SP)
return false;
return !(super_chan_ent->chan_flags_arr[in_6g_pwr_mode] &
REGULATORY_CHAN_AFC_NOT_DONE);
}
#endif

Melihat File

@@ -2565,6 +2565,31 @@ reg_get_chan_state_for_320(struct wlan_objmgr_pdev *pdev,
*/
QDF_STATUS reg_get_regd_rules(struct wlan_objmgr_pdev *pdev,
struct reg_rule_info *reg_rules);
#if defined(CONFIG_AFC_SUPPORT) && defined(CONFIG_BAND_6GHZ)
/**
* reg_is_sup_chan_entry_afc_done() - Checks if the super chan entry of given
* channel idx and power mode has REGULATORY_CHAN_AFC_NOT_DONE flag cleared.
*
* @pdev: pdev pointer.
* @freq: input channel idx.
* @in_6g_pwr_mode: input power mode
*
* Return: True if REGULATORY_CHAN_AFC_NOT_DONE flag is clear for the super
* chan entry.
*/
bool reg_is_sup_chan_entry_afc_done(struct wlan_objmgr_pdev *pdev,
enum channel_enum chan_idx,
enum supported_6g_pwr_types in_6g_pwr_mode);
#else
static inline bool
reg_is_sup_chan_entry_afc_done(struct wlan_objmgr_pdev *pdev,
enum channel_enum chan_idx,
enum supported_6g_pwr_types in_6g_pwr_mode)
{
return false;
}
#endif
#endif
/**

Melihat File

@@ -2520,4 +2520,30 @@ wlan_reg_get_chan_state_for_320(struct wlan_objmgr_pdev *pdev,
return CHANNEL_STATE_INVALID;
}
#endif
/**
* wlan_is_sup_chan_entry_afc_done() - Checks if the super chan entry of given
* channel idx and power mode has REGULATORY_CHAN_AFC_NOT_DONE flag cleared.
*
* @pdev: pdev pointer
* @freq: input channel idx
* @in_6g_pwr_mode: input power mode
*
* Return: True if REGULATORY_CHAN_AFC_NOT_DONE flag is clear for the super
* chan entry.
*/
#ifdef CONFIG_BAND_6GHZ
bool
wlan_is_sup_chan_entry_afc_done(struct wlan_objmgr_pdev *pdev,
enum channel_enum chan_idx,
enum supported_6g_pwr_types in_6g_pwr_mode);
#else
static inline bool
wlan_is_sup_chan_entry_afc_done(struct wlan_objmgr_pdev *pdev,
enum channel_enum chan_idx,
enum supported_6g_pwr_types in_6g_pwr_mode)
{
return false;
}
#endif
#endif

Melihat File

@@ -1877,3 +1877,14 @@ wlan_reg_get_chan_state_for_320(struct wlan_objmgr_pdev *pdev,
treat_nol_chan_as_disabled);
}
#endif
#ifdef CONFIG_BAND_6GHZ
bool wlan_is_sup_chan_entry_afc_done(struct wlan_objmgr_pdev *pdev,
enum channel_enum chan_idx,
enum supported_6g_pwr_types in_6g_pwr_mode)
{
return reg_is_sup_chan_entry_afc_done(pdev, chan_idx, in_6g_pwr_mode);
}
qdf_export_symbol(wlan_is_sup_chan_entry_afc_done);
#endif