qcacmn: Process the negative AFC standard EIRP power values
When we receive a negative EIRP value from AFC APP with UINT, we treat it as a positive value. See the following reasons why EIRP power value was changed when we received it as a UINT. 1. In the reg_find_eirp_in_afc_eirp_obj function, the afc 'eirp_power' (16-bit) value is in units of 0.01, and it is an unsigned integer. For example, if the negative value is "-1400" then it becomes "64136". With this value, when we try to get the original EIRP value using division (eirp_obj->eirp_power / EIRP_PWR_SCALE(100)), it returns "641", but the expected EIRP value is -14. 2. In the reg_get_sp_eirp function, both the variables 'afc_eirp_pwr' (8-bit) and 'reg_sp_eirp_pwr'(16-bit) are declared as unsigned integers. For example, when "-14," is assigned to "afc_eirp_pwr", it becomes "242". And assuming 'reg_sp_eirp_pwr' is "36", the minimum of the two variables, using QDF_MIN(afc_eirp_pwr, reg_sp_eirp_pwr), becomes "36", but the expected minimum is "-14 or 242". Process the positive or negative EIRP values that are received from AFC application. Receive it as an int instead of an unint and typecast it to int when we check for minimum value from afc power and standard power. Change-Id: I255225e1f68ab897d36f3d4fbd5e5815a862460b CRs-Fixed: 3398501
This commit is contained in:

committed by
Madan Koyyalamudi

父節點
711fb71599
當前提交
3a915602b8
@@ -202,7 +202,7 @@ struct wlan_afc_resp_opclass_info {
|
||||
*/
|
||||
struct wlan_afc_resp_eirp_info {
|
||||
uint32_t channel_cfi;
|
||||
uint32_t max_eirp_pwr;
|
||||
int32_t max_eirp_pwr;
|
||||
} qdf_packed;
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user