|
Lines 1009-1014
int iwl_mvm_sar_select_profile(struct iwl_mvm *mvm, int prof_a, int prof_b)
Link Here
|
| 1009 |
return iwl_mvm_send_cmd_pdu(mvm, REDUCE_TX_POWER_CMD, 0, len, &cmd); |
1009 |
return iwl_mvm_send_cmd_pdu(mvm, REDUCE_TX_POWER_CMD, 0, len, &cmd); |
| 1010 |
} |
1010 |
} |
| 1011 |
|
1011 |
|
|
|
1012 |
static bool iwl_mvm_sar_geo_support(struct iwl_mvm *mvm) |
| 1013 |
{ |
| 1014 |
/* |
| 1015 |
* The GEO_TX_POWER_LIMIT command is not supported on earlier |
| 1016 |
* firmware versions. Unfortunately, we don't have a TLV API |
| 1017 |
* flag to rely on, so rely on the major version which is in |
| 1018 |
* the first byte of ucode_ver. |
| 1019 |
*/ |
| 1020 |
return IWL_UCODE_SERIAL(mvm->fw->ucode_ver) >= 41; |
| 1021 |
} |
| 1022 |
|
| 1012 |
int iwl_mvm_get_sar_geo_profile(struct iwl_mvm *mvm) |
1023 |
int iwl_mvm_get_sar_geo_profile(struct iwl_mvm *mvm) |
| 1013 |
{ |
1024 |
{ |
| 1014 |
struct iwl_geo_tx_power_profiles_resp *resp; |
1025 |
struct iwl_geo_tx_power_profiles_resp *resp; |
|
Lines 1038-1043
int iwl_mvm_get_sar_geo_profile(struct iwl_mvm *mvm)
Link Here
|
| 1038 |
.data = { data }, |
1049 |
.data = { data }, |
| 1039 |
}; |
1050 |
}; |
| 1040 |
|
1051 |
|
|
|
1052 |
if (!iwl_mvm_sar_geo_support(mvm)) |
| 1053 |
return -EOPNOTSUPP; |
| 1054 |
|
| 1041 |
ret = iwl_mvm_send_cmd(mvm, &cmd); |
1055 |
ret = iwl_mvm_send_cmd(mvm, &cmd); |
| 1042 |
if (ret) { |
1056 |
if (ret) { |
| 1043 |
IWL_ERR(mvm, "Failed to get geographic profile info %d\n", ret); |
1057 |
IWL_ERR(mvm, "Failed to get geographic profile info %d\n", ret); |
|
Lines 1063-1075
static int iwl_mvm_sar_geo_init(struct iwl_mvm *mvm)
Link Here
|
| 1063 |
int ret, i, j; |
1077 |
int ret, i, j; |
| 1064 |
u16 cmd_wide_id = WIDE_ID(PHY_OPS_GROUP, GEO_TX_POWER_LIMIT); |
1078 |
u16 cmd_wide_id = WIDE_ID(PHY_OPS_GROUP, GEO_TX_POWER_LIMIT); |
| 1065 |
|
1079 |
|
| 1066 |
/* |
1080 |
if (!iwl_mvm_sar_geo_support(mvm)) |
| 1067 |
* This command is not supported on earlier firmware versions. |
|
|
| 1068 |
* Unfortunately, we don't have a TLV API flag to rely on, so |
| 1069 |
* rely on the major version which is in the first byte of |
| 1070 |
* ucode_ver. |
| 1071 |
*/ |
| 1072 |
if (IWL_UCODE_SERIAL(mvm->fw->ucode_ver) < 41) |
| 1073 |
return 0; |
1081 |
return 0; |
| 1074 |
|
1082 |
|
| 1075 |
ret = iwl_mvm_sar_get_wgds_table(mvm); |
1083 |
ret = iwl_mvm_sar_get_wgds_table(mvm); |
| 1076 |
- |
|
|