wlan: add set_power_index for iwpriv tool
This will enable setting regulatory mode by iwpriv for
CLPC txpower adjustment. Before that,it only can be set
by QRCT.
Change-Id: I84f1153de90546d1e02ae689682904562be721fd
CRs-Fixed: 1013477
diff --git a/CORE/HDD/src/wlan_hdd_ftm.c b/CORE/HDD/src/wlan_hdd_ftm.c
index 87fc7ff..a753398 100644
--- a/CORE/HDD/src/wlan_hdd_ftm.c
+++ b/CORE/HDD/src/wlan_hdd_ftm.c
@@ -475,6 +475,7 @@
v_U16_t rxmode;
v_U16_t chainSelect;
ePhyChanBondState cbmode;
+ ePowerTempIndexSource powerIndex;
} FTM_STATUS ;
static FTM_STATUS ftm_status;
@@ -508,6 +509,7 @@
ftm_status.rxmode = RXMODE_ENABLE_ALL; /* macStart() enables all receive pkt types */
ftm_status.chainSelect = FTM_CHAIN_SEL_R0_T0_ON;
ftm_status.cbmode = 0 ; //none channel bonding
+ ftm_status.powerIndex = FIXED_POWER_DBM;
return;
}
@@ -3996,7 +3998,7 @@
if (pwr_source > 3)
{
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
- "%s:invalid power index source. valid mode is 0 , 1, 2. ",
+ "%s:invalid power index source. valid mode is 0, 1, 2, 3. ",
__func__);
return VOS_STATUS_E_FAILURE;
}
@@ -4029,6 +4031,7 @@
goto done;
}
+ ftm_status.powerIndex = pwr_source;
done:
return status;
@@ -4118,7 +4121,8 @@
if (ftm_status.powerCtlMode == 2) //only for CLPC mode
{
- status = wlan_ftm_priv_set_power_index(pAdapter, FIXED_POWER_DBM) != VOS_STATUS_SUCCESS; //power index source set to Fixed
+ status = wlan_ftm_priv_set_power_index(pAdapter,
+ ftm_status.powerIndex);
if(status != VOS_STATUS_SUCCESS)
{
goto done;
@@ -5232,6 +5236,18 @@
break;
}
+ case WE_SET_POWER_INDEX:
+ {
+ status = wlan_ftm_priv_set_power_index(pAdapter, set_value);
+ if (status != VOS_STATUS_SUCCESS)
+ {
+ hddLog(VOS_TRACE_LEVEL_ERROR, "set power index failed = %d",
+ status);
+ ret = -EINVAL;
+ }
+ break;
+ }
+
default:
{
hddLog(LOGE, "Invalid IOCTL setvalue command %d value %d",
@@ -5775,6 +5791,11 @@
0,
"set_cb" },
+ { WE_SET_POWER_INDEX,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "set_power_index" },
+
/* handlers for main ioctl */
{ WLAN_FTM_PRIV_SET_NONE_GET_INT,
0,