qcacmn: Modify EIRP and PSD data types to int from uint

ACS fetches EIRP powers of channels from the regulatory module using API
wlan_reg_get_eirp_pwr. The type returned by this API is unsigned and
hence any negative value is received as very high positive value. This
results in incorrect calculation of puncture bitmap and any other APIs
that use these power values.

To resolve this issue, modify the data type of EIRP and PSD variables
from uint to int in APIs used for calculating the best power mode.

Change-Id: I3af8e8bcda7cb872f8e295a78c579243a5469ab5
CRs-Fixed: 3515926
Dieser Commit ist enthalten in:
Amith A
2023-06-12 16:13:46 +05:30
committet von Rahul Choudhary
Ursprung 01da59899e
Commit d4415c7efe
5 geänderte Dateien mit 63 neuen und 61 gelöschten Zeilen

Datei anzeigen

@@ -99,6 +99,8 @@
/* no subchannels punctured */
#define NO_SCHANS_PUNC 0x0000
#define REG_MIN_POWER -128
/**
* enum dfs_reg - DFS region
* @DFS_UNINIT_REGION: un-initialized region

Datei anzeigen

@@ -2697,12 +2697,12 @@ wlan_reg_get_best_pwr_mode(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq,
*
* Return: EIRP power
*/
uint8_t wlan_reg_get_eirp_pwr(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq,
qdf_freq_t cen320, uint16_t bw,
enum reg_6g_ap_type ap_pwr_type,
uint16_t in_punc_pattern,
bool is_client_list_lookup_needed,
enum reg_6g_client_type client_type);
int8_t wlan_reg_get_eirp_pwr(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq,
qdf_freq_t cen320, uint16_t bw,
enum reg_6g_ap_type ap_pwr_type,
uint16_t in_punc_pattern,
bool is_client_list_lookup_needed,
enum reg_6g_client_type client_type);
#else
static inline
qdf_freq_t wlan_reg_get_thresh_priority_freq(struct wlan_objmgr_pdev *pdev)
@@ -2735,7 +2735,7 @@ static inline QDF_STATUS wlan_reg_eirp_2_psd(struct wlan_objmgr_pdev *pdev,
return QDF_STATUS_E_FAILURE;
}
static inline uint8_t
static inline int8_t
wlan_reg_get_eirp_pwr(struct wlan_objmgr_pdev *pdev,
qdf_freq_t freq,
qdf_freq_t cen320, uint16_t bw,

Datei anzeigen

@@ -1845,12 +1845,12 @@ wlan_reg_get_best_pwr_mode(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq,
qdf_export_symbol(wlan_reg_get_best_pwr_mode);
uint8_t wlan_reg_get_eirp_pwr(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq,
qdf_freq_t cen320, uint16_t bw,
enum reg_6g_ap_type ap_pwr_type,
uint16_t in_punc_pattern,
bool is_client_list_lookup_needed,
enum reg_6g_client_type client_type)
int8_t wlan_reg_get_eirp_pwr(struct wlan_objmgr_pdev *pdev, qdf_freq_t freq,
qdf_freq_t cen320, uint16_t bw,
enum reg_6g_ap_type ap_pwr_type,
uint16_t in_punc_pattern,
bool is_client_list_lookup_needed,
enum reg_6g_client_type client_type)
{
return reg_get_eirp_pwr(pdev, freq, cen320, bw, ap_pwr_type,
in_punc_pattern, is_client_list_lookup_needed,