Lines Matching +full:data +full:- +full:path

1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2 /* Copyright(c) 2021-2023 Realtek Corporation
24 switch (obj->type) { in rtw89_acpi_traversal_object()
27 pos[len] = obj->integer.value; in rtw89_acpi_traversal_object()
32 if (unlikely(obj->buffer.length == 0)) { in rtw89_acpi_traversal_object()
39 memcpy(pos, obj->buffer.pointer, obj->buffer.length); in rtw89_acpi_traversal_object()
41 len += obj->buffer.length; in rtw89_acpi_traversal_object()
44 if (unlikely(obj->package.count == 0)) { in rtw89_acpi_traversal_object()
50 for (i = 0; i < obj->package.count; i++) { in rtw89_acpi_traversal_object()
51 elm = &obj->package.elements[i]; in rtw89_acpi_traversal_object()
63 __func__, obj->type); in rtw89_acpi_traversal_object()
83 struct rtw89_acpi_data *data = NULL; in rtw89_acpi_evaluate_method() local
89 root = ACPI_HANDLE(rtwdev->dev); in rtw89_acpi_evaluate_method()
122 data = kzalloc(struct_size(data, buf, len), GFP_KERNEL); in rtw89_acpi_evaluate_method()
123 if (!data) in rtw89_acpi_evaluate_method()
126 data->len = len; in rtw89_acpi_evaluate_method()
127 rtw89_acpi_traversal_object(rtwdev, obj, data->buf); in rtw89_acpi_evaluate_method()
131 return data; in rtw89_acpi_evaluate_method()
138 if (obj->type != ACPI_TYPE_INTEGER) { in rtw89_acpi_dsm_get_value()
140 "acpi: expect integer but type: %d\n", obj->type); in rtw89_acpi_dsm_get_value()
141 return -EINVAL; in rtw89_acpi_dsm_get_value()
144 *value = (u8)obj->integer.value; in rtw89_acpi_dsm_get_value()
150 return p->signature[0] == 0x00 && in chk_acpi_policy_6ghz_sig()
151 p->signature[1] == 0xE0 && in chk_acpi_policy_6ghz_sig()
152 p->signature[2] == 0x4C; in chk_acpi_policy_6ghz_sig()
164 if (obj->type != ACPI_TYPE_BUFFER) { in rtw89_acpi_dsm_get_policy_6ghz()
166 "acpi: expect buffer but type: %d\n", obj->type); in rtw89_acpi_dsm_get_policy_6ghz()
167 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz()
170 len = obj->buffer.length; in rtw89_acpi_dsm_get_policy_6ghz()
174 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz()
177 ptr = (typeof(ptr))obj->buffer.pointer; in rtw89_acpi_dsm_get_policy_6ghz()
180 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz()
183 expect_len = struct_size(ptr, country_list, ptr->country_count); in rtw89_acpi_dsm_get_policy_6ghz()
187 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz()
192 return -ENOMEM; in rtw89_acpi_dsm_get_policy_6ghz()
201 return p->signature[0] == 0x52 && in chk_acpi_policy_6ghz_sp_sig()
202 p->signature[1] == 0x54 && in chk_acpi_policy_6ghz_sp_sig()
203 p->signature[2] == 0x4B && in chk_acpi_policy_6ghz_sp_sig()
204 p->signature[3] == 0x07; in chk_acpi_policy_6ghz_sp_sig()
215 if (obj->type != ACPI_TYPE_BUFFER) { in rtw89_acpi_dsm_get_policy_6ghz_sp()
217 "acpi: expect buffer but type: %d\n", obj->type); in rtw89_acpi_dsm_get_policy_6ghz_sp()
218 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz_sp()
221 buf_len = obj->buffer.length; in rtw89_acpi_dsm_get_policy_6ghz_sp()
225 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz_sp()
228 ptr = (typeof(ptr))obj->buffer.pointer; in rtw89_acpi_dsm_get_policy_6ghz_sp()
231 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz_sp()
236 return -ENOMEM; in rtw89_acpi_dsm_get_policy_6ghz_sp()
245 return p->signature[0] == 0x52 && in chk_acpi_policy_6ghz_vlp_sig()
246 p->signature[1] == 0x54 && in chk_acpi_policy_6ghz_vlp_sig()
247 p->signature[2] == 0x4B && in chk_acpi_policy_6ghz_vlp_sig()
248 p->signature[3] == 0x0B; in chk_acpi_policy_6ghz_vlp_sig()
259 if (obj->type != ACPI_TYPE_BUFFER) { in rtw89_acpi_dsm_get_policy_6ghz_vlp()
261 "acpi: expect buffer but type: %d\n", obj->type); in rtw89_acpi_dsm_get_policy_6ghz_vlp()
262 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz_vlp()
265 buf_len = obj->buffer.length; in rtw89_acpi_dsm_get_policy_6ghz_vlp()
269 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz_vlp()
272 ptr = (typeof(ptr))obj->buffer.pointer; in rtw89_acpi_dsm_get_policy_6ghz_vlp()
275 return -EINVAL; in rtw89_acpi_dsm_get_policy_6ghz_vlp()
280 return -ENOMEM; in rtw89_acpi_dsm_get_policy_6ghz_vlp()
289 return p->signature[0] == 0x52 && in chk_acpi_policy_tas_sig()
290 p->signature[1] == 0x54 && in chk_acpi_policy_tas_sig()
291 p->signature[2] == 0x4B && in chk_acpi_policy_tas_sig()
292 p->signature[3] == 0x05; in chk_acpi_policy_tas_sig()
302 if (obj->type != ACPI_TYPE_BUFFER) { in rtw89_acpi_dsm_get_policy_tas()
304 "acpi: expect buffer but type: %d\n", obj->type); in rtw89_acpi_dsm_get_policy_tas()
305 return -EINVAL; in rtw89_acpi_dsm_get_policy_tas()
308 buf_len = obj->buffer.length; in rtw89_acpi_dsm_get_policy_tas()
312 return -EINVAL; in rtw89_acpi_dsm_get_policy_tas()
315 ptr = (typeof(ptr))obj->buffer.pointer; in rtw89_acpi_dsm_get_policy_tas()
318 return -EINVAL; in rtw89_acpi_dsm_get_policy_tas()
323 return -ENOMEM; in rtw89_acpi_dsm_get_policy_tas()
333 return p->signature[0] == 0x52 && in chk_acpi_policy_reg_rules_sig()
334 p->signature[1] == 0x54 && in chk_acpi_policy_reg_rules_sig()
335 p->signature[2] == 0x4B && in chk_acpi_policy_reg_rules_sig()
336 p->signature[3] == 0x0A; in chk_acpi_policy_reg_rules_sig()
347 if (obj->type != ACPI_TYPE_BUFFER) { in rtw89_acpi_dsm_get_policy_reg_rules()
349 "acpi: expect buffer but type: %d\n", obj->type); in rtw89_acpi_dsm_get_policy_reg_rules()
350 return -EINVAL; in rtw89_acpi_dsm_get_policy_reg_rules()
353 buf_len = obj->buffer.length; in rtw89_acpi_dsm_get_policy_reg_rules()
357 return -EINVAL; in rtw89_acpi_dsm_get_policy_reg_rules()
360 ptr = (typeof(ptr))obj->buffer.pointer; in rtw89_acpi_dsm_get_policy_reg_rules()
363 return -EINVAL; in rtw89_acpi_dsm_get_policy_reg_rules()
368 return -ENOMEM; in rtw89_acpi_dsm_get_policy_reg_rules()
382 obj = acpi_evaluate_dsm(ACPI_HANDLE(rtwdev->dev), &rtw89_guid, in rtw89_acpi_evaluate_dsm()
387 return -ENOENT; in rtw89_acpi_evaluate_dsm()
392 &res->u.policy_6ghz); in rtw89_acpi_evaluate_dsm()
395 &res->u.policy_6ghz_sp); in rtw89_acpi_evaluate_dsm()
398 &res->u.policy_6ghz_vlp); in rtw89_acpi_evaluate_dsm()
400 ret = rtw89_acpi_dsm_get_policy_tas(rtwdev, obj, &res->u.policy_tas); in rtw89_acpi_evaluate_dsm()
403 &res->u.policy_reg_rules); in rtw89_acpi_evaluate_dsm()
405 ret = rtw89_acpi_dsm_get_value(rtwdev, obj, &res->u.value); in rtw89_acpi_evaluate_dsm()
415 const struct rtw89_acpi_data *data; in rtw89_acpi_evaluate_rtag() local
417 struct rtw89_acpi_data *data; in rtw89_acpi_evaluate_rtag()
422 data = rtw89_acpi_evaluate_method(rtwdev, "RTAG"); in rtw89_acpi_evaluate_rtag()
423 if (!data) in rtw89_acpi_evaluate_rtag()
424 return -EIO; in rtw89_acpi_evaluate_rtag()
426 buf_len = data->len; in rtw89_acpi_evaluate_rtag()
430 ret = -EINVAL; in rtw89_acpi_evaluate_rtag()
434 *res = *(struct rtw89_acpi_rtag_result *)data->buf; in rtw89_acpi_evaluate_rtag()
439 kfree(data); in rtw89_acpi_evaluate_rtag()
547 (v << (TXPWR_FACTOR_OF_RTW89_ACPI_SAR - fct)); in rtw89_acpi_sar_normalize_hp_val()
559 res = v << (TXPWR_FACTOR_OF_RTW89_ACPI_SAR - fct); in rtw89_acpi_sar_normalize_rt_val()
572 enum rtw89_rf_path path; in rtw89_acpi_sar_load_std_legacy() local
575 for (path = 0; path < NUM_OF_RTW89_ACPI_SAR_RF_PATH; path++) { in rtw89_acpi_sar_load_std_legacy()
576 u8 antidx = rec->rfpath_to_antidx(path); in rtw89_acpi_sar_load_std_legacy()
579 ent->v[subband][path] = in rtw89_acpi_sar_load_std_legacy()
580 rec->normalize(ptr->v[antidx][subband]); in rtw89_acpi_sar_load_std_legacy()
582 ent->v[subband][path] = MAX_VAL_OF_RTW89_ACPI_SAR; in rtw89_acpi_sar_load_std_legacy()
595 enum rtw89_rf_path path; in rtw89_acpi_sar_load_std_has_6ghz() local
600 for (path = 0; path < NUM_OF_RTW89_ACPI_SAR_RF_PATH; path++) { in rtw89_acpi_sar_load_std_has_6ghz()
601 u8 antidx = rec->rfpath_to_antidx(path); in rtw89_acpi_sar_load_std_has_6ghz()
603 ent->v[subband][path] = rec->normalize(ptr->v[antidx][subband]); in rtw89_acpi_sar_load_std_has_6ghz()
616 enum rtw89_rf_path path; in rtw89_acpi_sar_load_sml_legacy() local
619 for (path = 0; path < NUM_OF_RTW89_ACPI_SAR_RF_PATH; path++) { in rtw89_acpi_sar_load_sml_legacy()
620 u8 antidx = rec->rfpath_to_antidx(path); in rtw89_acpi_sar_load_sml_legacy()
623 ent->v[subband][path] = in rtw89_acpi_sar_load_sml_legacy()
624 rec->normalize(ptr->v[antidx][subband]); in rtw89_acpi_sar_load_sml_legacy()
626 ent->v[subband][path] = MAX_VAL_OF_RTW89_ACPI_SAR; in rtw89_acpi_sar_load_sml_legacy()
639 enum rtw89_rf_path path; in rtw89_acpi_sar_load_sml_has_6ghz() local
644 for (path = 0; path < NUM_OF_RTW89_ACPI_SAR_RF_PATH; path++) { in rtw89_acpi_sar_load_sml_has_6ghz()
645 u8 antidx = rec->rfpath_to_antidx(path); in rtw89_acpi_sar_load_sml_has_6ghz()
647 ent->v[subband][path] = rec->normalize(ptr->v[antidx][subband]); in rtw89_acpi_sar_load_sml_has_6ghz()
658 return delta << (TXPWR_FACTOR_OF_RTW89_ACPI_SAR - fct); in rtw89_acpi_geo_sar_normalize_delta()
711 enum rtw89_rf_path path, s16 *val) in rtw89_acpi_geo_sar_load_by_hp() argument
713 u8 antidx = rtw89_acpi_sar_rfpath_to_hp_antidx(path); in rtw89_acpi_geo_sar_load_by_hp()
714 s16 delta = rtw89_acpi_geo_sar_normalize_delta(ptr->delta[antidx]); in rtw89_acpi_geo_sar_load_by_hp()
715 s16 max = rtw89_acpi_sar_normalize_hp_val(ptr->max); in rtw89_acpi_geo_sar_load_by_hp()
725 s16 delta = rtw89_acpi_geo_sar_normalize_delta(ptr->delta); in rtw89_acpi_geo_sar_load_by_rt()
726 s16 max = rtw89_acpi_sar_normalize_rt_val(ptr->max); in rtw89_acpi_geo_sar_load_by_rt()
743 enum rtw89_rf_path path; in rtw89_acpi_geo_sar_load_hp_legacy() local
746 ptr_ent = &ptr->entries[geo_idx]; in rtw89_acpi_geo_sar_load_hp_legacy()
752 ptr_ent_val = &ptr_ent->val_2ghz; in rtw89_acpi_geo_sar_load_hp_legacy()
755 ptr_ent_val = &ptr_ent->val_5ghz; in rtw89_acpi_geo_sar_load_hp_legacy()
766 for (path = 0; path < NUM_OF_RTW89_ACPI_SAR_RF_PATH; path++) in rtw89_acpi_geo_sar_load_hp_legacy()
767 rtw89_acpi_geo_sar_load_by_hp(rtwdev, ptr_ent_val, path, in rtw89_acpi_geo_sar_load_hp_legacy()
768 &ent->v[subband][path]); in rtw89_acpi_geo_sar_load_hp_legacy()
784 enum rtw89_rf_path path; in rtw89_acpi_geo_sar_load_hp_has_6ghz() local
787 ptr_ent = &ptr->entries[geo_idx]; in rtw89_acpi_geo_sar_load_hp_has_6ghz()
793 ptr_ent_val = &ptr_ent->val_2ghz; in rtw89_acpi_geo_sar_load_hp_has_6ghz()
796 ptr_ent_val = &ptr_ent->val_5ghz; in rtw89_acpi_geo_sar_load_hp_has_6ghz()
799 ptr_ent_val = &ptr_ent->val_6ghz; in rtw89_acpi_geo_sar_load_hp_has_6ghz()
809 for (path = 0; path < NUM_OF_RTW89_ACPI_SAR_RF_PATH; path++) in rtw89_acpi_geo_sar_load_hp_has_6ghz()
810 rtw89_acpi_geo_sar_load_by_hp(rtwdev, ptr_ent_val, path, in rtw89_acpi_geo_sar_load_hp_has_6ghz()
811 &ent->v[subband][path]); in rtw89_acpi_geo_sar_load_hp_has_6ghz()
827 enum rtw89_rf_path path; in rtw89_acpi_geo_sar_load_rt_legacy() local
830 ptr_ent = &ptr->entries[geo_idx]; in rtw89_acpi_geo_sar_load_rt_legacy()
836 ptr_ent_val = &ptr_ent->val_2ghz; in rtw89_acpi_geo_sar_load_rt_legacy()
839 ptr_ent_val = &ptr_ent->val_5ghz; in rtw89_acpi_geo_sar_load_rt_legacy()
850 for (path = 0; path < NUM_OF_RTW89_ACPI_SAR_RF_PATH; path++) in rtw89_acpi_geo_sar_load_rt_legacy()
852 &ent->v[subband][path]); in rtw89_acpi_geo_sar_load_rt_legacy()
868 enum rtw89_rf_path path; in rtw89_acpi_geo_sar_load_rt_has_6ghz() local
871 ptr_ent = &ptr->entries[geo_idx]; in rtw89_acpi_geo_sar_load_rt_has_6ghz()
877 ptr_ent_val = &ptr_ent->val_2ghz; in rtw89_acpi_geo_sar_load_rt_has_6ghz()
880 ptr_ent_val = &ptr_ent->val_5ghz; in rtw89_acpi_geo_sar_load_rt_has_6ghz()
883 ptr_ent_val = &ptr_ent->val_6ghz; in rtw89_acpi_geo_sar_load_rt_has_6ghz()
893 for (path = 0; path < NUM_OF_RTW89_ACPI_SAR_RF_PATH; path++) in rtw89_acpi_geo_sar_load_rt_has_6ghz()
895 &ent->v[subband][path]); in rtw89_acpi_geo_sar_load_rt_has_6ghz()
997 const u32 tbl_len = parm->pld_len / parm->tbl_cnt; in rtw89_acpi_sar_recognize()
1003 __func__, parm->cid, parm->rev, tbl_len, parm->tbl_cnt); in rtw89_acpi_sar_recognize()
1005 if (unlikely(parm->pld_len % parm->tbl_cnt)) { in rtw89_acpi_sar_recognize()
1007 parm->pld_len); in rtw89_acpi_sar_recognize()
1017 if (unlikely(parm->tbl_cnt > MAX_NUM_OF_RTW89_ACPI_SAR_TBL)) { in rtw89_acpi_sar_recognize()
1019 parm->tbl_cnt); in rtw89_acpi_sar_recognize()
1023 switch (parm->cid) { in rtw89_acpi_sar_recognize()
1026 id.cid = parm->cid; in rtw89_acpi_sar_recognize()
1030 parm->cid); in rtw89_acpi_sar_recognize()
1034 switch (parm->rev) { in rtw89_acpi_sar_recognize()
1037 id.rev = parm->rev; in rtw89_acpi_sar_recognize()
1041 parm->rev); in rtw89_acpi_sar_recognize()
1048 if (memcmp(&rec->id, &id, sizeof(rec->id)) == 0) in rtw89_acpi_sar_recognize()
1065 const struct rtw89_acpi_data *data; in rtw89_acpi_evaluate_static_sar() local
1068 data = rtw89_acpi_evaluate_method(rtwdev, RTW89_ACPI_METHOD_STATIC_SAR); in rtw89_acpi_evaluate_static_sar()
1069 if (!data) in rtw89_acpi_evaluate_static_sar()
1074 len = data->len; in rtw89_acpi_evaluate_static_sar()
1080 hdr = (typeof(hdr))data->buf; in rtw89_acpi_evaluate_static_sar()
1082 parm.cid = le16_to_cpu(hdr->cid); in rtw89_acpi_evaluate_static_sar()
1083 parm.rev = hdr->rev; in rtw89_acpi_evaluate_static_sar()
1085 parm.pld_len = len - sizeof(*hdr); in rtw89_acpi_evaluate_static_sar()
1091 rec->load(rtwdev, rec, hdr->content, &tmp); in rtw89_acpi_evaluate_static_sar()
1093 tbl = &cfg->tables[0]; in rtw89_acpi_evaluate_static_sar()
1095 tbl->entries[regd] = tmp; in rtw89_acpi_evaluate_static_sar()
1097 cfg->valid_num = 1; in rtw89_acpi_evaluate_static_sar()
1100 kfree(data); in rtw89_acpi_evaluate_static_sar()
1112 const struct rtw89_acpi_data *data; in rtw89_acpi_evaluate_dynamic_sar() local
1115 data = rtw89_acpi_evaluate_method(rtwdev, RTW89_ACPI_METHOD_DYNAMIC_SAR); in rtw89_acpi_evaluate_dynamic_sar()
1116 if (!data) in rtw89_acpi_evaluate_dynamic_sar()
1121 len = data->len; in rtw89_acpi_evaluate_dynamic_sar()
1127 hdr = (typeof(hdr))data->buf; in rtw89_acpi_evaluate_dynamic_sar()
1129 parm.cid = le16_to_cpu(hdr->cid); in rtw89_acpi_evaluate_dynamic_sar()
1130 parm.rev = hdr->rev; in rtw89_acpi_evaluate_dynamic_sar()
1131 parm.tbl_cnt = hdr->cnt; in rtw89_acpi_evaluate_dynamic_sar()
1132 parm.pld_len = len - sizeof(*hdr); in rtw89_acpi_evaluate_dynamic_sar()
1138 for (unsigned int i = 0; i < hdr->cnt; i++) { in rtw89_acpi_evaluate_dynamic_sar()
1139 const u8 *content = hdr->content + rec->id.size * i; in rtw89_acpi_evaluate_dynamic_sar()
1142 rec->load(rtwdev, rec, content, &tmp); in rtw89_acpi_evaluate_dynamic_sar()
1144 tbl = &cfg->tables[i]; in rtw89_acpi_evaluate_dynamic_sar()
1146 tbl->entries[regd] = tmp; in rtw89_acpi_evaluate_dynamic_sar()
1149 cfg->valid_num = hdr->cnt; in rtw89_acpi_evaluate_dynamic_sar()
1152 kfree(data); in rtw89_acpi_evaluate_dynamic_sar()
1160 struct rtw89_sar_indicator_from_acpi *ind = &cfg->indicator; in rtw89_acpi_evaluate_dynamic_sar_indicator()
1162 const struct rtw89_acpi_data *data; in rtw89_acpi_evaluate_dynamic_sar_indicator() local
1164 enum rtw89_rf_path path; in rtw89_acpi_evaluate_dynamic_sar_indicator() local
1168 data = rtw89_acpi_evaluate_method(rtwdev, RTW89_ACPI_METHOD_DYNAMIC_SAR_INDICATOR); in rtw89_acpi_evaluate_dynamic_sar_indicator()
1169 if (!data) in rtw89_acpi_evaluate_dynamic_sar_indicator()
1170 return -EFAULT; in rtw89_acpi_evaluate_dynamic_sar_indicator()
1175 len = data->len; in rtw89_acpi_evaluate_dynamic_sar_indicator()
1176 if (len != ind->fields) { in rtw89_acpi_evaluate_dynamic_sar_indicator()
1178 ret = -EINVAL; in rtw89_acpi_evaluate_dynamic_sar_indicator()
1182 tbl_base1_by_ant = data->buf; in rtw89_acpi_evaluate_dynamic_sar_indicator()
1184 for (path = 0; path < NUM_OF_RTW89_ACPI_SAR_RF_PATH; path++) { in rtw89_acpi_evaluate_dynamic_sar_indicator()
1185 u8 antidx = ind->rfpath_to_antidx(path); in rtw89_acpi_evaluate_dynamic_sar_indicator()
1188 if (antidx >= ind->fields) in rtw89_acpi_evaluate_dynamic_sar_indicator()
1191 /* convert the table index from 1-based to 0-based */ in rtw89_acpi_evaluate_dynamic_sar_indicator()
1192 sel = tbl_base1_by_ant[antidx] - 1; in rtw89_acpi_evaluate_dynamic_sar_indicator()
1193 if (sel >= cfg->valid_num) in rtw89_acpi_evaluate_dynamic_sar_indicator()
1196 tmp.tblsel[path] = sel; in rtw89_acpi_evaluate_dynamic_sar_indicator()
1210 kfree(data); in rtw89_acpi_evaluate_dynamic_sar_indicator()
1219 const struct rtw89_acpi_data *data; in rtw89_acpi_evaluate_geo_sar() local
1222 data = rtw89_acpi_evaluate_method(rtwdev, RTW89_ACPI_METHOD_GEO_SAR); in rtw89_acpi_evaluate_geo_sar()
1223 if (!data) in rtw89_acpi_evaluate_geo_sar()
1228 len = data->len; in rtw89_acpi_evaluate_geo_sar()
1229 if (len != hdl->data_size) { in rtw89_acpi_evaluate_geo_sar()
1231 len, hdl->data_size); in rtw89_acpi_evaluate_geo_sar()
1235 for (unsigned int i = 0; i < cfg->valid_num; i++) in rtw89_acpi_evaluate_geo_sar()
1237 hdl->load(rtwdev, data->buf, regd, &cfg->tables[i].entries[regd]); in rtw89_acpi_evaluate_geo_sar()
1240 kfree(data); in rtw89_acpi_evaluate_geo_sar()
1246 struct rtw89_sar_indicator_from_acpi *ind = &cfg->indicator; in rtw89_acpi_evaluate_sar()
1257 return -ENOENT; in rtw89_acpi_evaluate_sar()
1262 rtw89_acpi_evaluate_geo_sar(rtwdev, rec->geo, cfg); in rtw89_acpi_evaluate_sar()
1264 switch (rec->id.cid) { in rtw89_acpi_evaluate_sar()
1266 cfg->downgrade_2tx = 3 << TXPWR_FACTOR_OF_RTW89_ACPI_SAR; in rtw89_acpi_evaluate_sar()
1267 ind->fields = RTW89_ACPI_SAR_ANT_NR_STD; in rtw89_acpi_evaluate_sar()
1270 cfg->downgrade_2tx = 0; in rtw89_acpi_evaluate_sar()
1271 ind->fields = 1; in rtw89_acpi_evaluate_sar()
1274 return -EFAULT; in rtw89_acpi_evaluate_sar()
1278 ind->rfpath_to_antidx = rec->rfpath_to_antidx; in rtw89_acpi_evaluate_sar()
1285 memset(ind->tblsel, 0, sizeof(ind->tblsel)); in rtw89_acpi_evaluate_sar()
1287 ind->enable_sync = fetch_indicator; in rtw89_acpi_evaluate_sar()