Lines Matching +full:data +full:- +full:out
1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
3 * Copyright(c) 2021-2024 Intel Corporation
6 #include "iwl-drv.h"
8 #include "iwl-prph.h"
9 #include "iwl-io.h"
26 const u8 data[]; member
33 void *data; in iwl_uefi_get_variable() local
36 return ERR_PTR(-EINVAL); in iwl_uefi_get_variable()
39 return ERR_PTR(-ENODEV); in iwl_uefi_get_variable()
41 /* first call with NULL data to get the exact entry size */ in iwl_uefi_get_variable()
45 return ERR_PTR(-EIO); in iwl_uefi_get_variable()
47 data = kmalloc(*data_size, GFP_KERNEL); in iwl_uefi_get_variable()
48 if (!data) in iwl_uefi_get_variable()
49 return ERR_PTR(-ENOMEM); in iwl_uefi_get_variable()
51 status = efi.get_variable(name, guid, NULL, data_size, data); in iwl_uefi_get_variable()
53 kfree(data); in iwl_uefi_get_variable()
54 return ERR_PTR(-ENOENT); in iwl_uefi_get_variable()
57 return data; in iwl_uefi_get_variable()
63 void *data; in iwl_uefi_get_pnvm() local
67 data = iwl_uefi_get_variable(IWL_UEFI_OEM_PNVM_NAME, &IWL_EFI_WIFI_GUID, in iwl_uefi_get_pnvm()
69 if (IS_ERR(data)) { in iwl_uefi_get_pnvm()
72 PTR_ERR(data), package_size); in iwl_uefi_get_pnvm()
73 return data; in iwl_uefi_get_pnvm()
79 return data; in iwl_uefi_get_pnvm()
107 return ERR_PTR(-EINVAL); in iwl_uefi_get_verified_variable_guid()
130 int iwl_uefi_handle_tlv_mem_desc(struct iwl_trans *trans, const u8 *data, in iwl_uefi_handle_tlv_mem_desc() argument
133 const struct iwl_uefi_pnvm_mem_desc *desc = (const void *)data; in iwl_uefi_handle_tlv_mem_desc()
138 return -EINVAL; in iwl_uefi_handle_tlv_mem_desc()
141 data_len = tlv_len - sizeof(*desc); in iwl_uefi_handle_tlv_mem_desc()
147 if (le32_to_cpu(desc->size) != data_len) { in iwl_uefi_handle_tlv_mem_desc()
148 IWL_DEBUG_FW(trans, "invalid mem desc size %d\n", desc->size); in iwl_uefi_handle_tlv_mem_desc()
149 return -EINVAL; in iwl_uefi_handle_tlv_mem_desc()
152 if (pnvm_data->n_chunks == IPC_DRAM_MAP_ENTRY_NUM_MAX) { in iwl_uefi_handle_tlv_mem_desc()
154 return -EINVAL; in iwl_uefi_handle_tlv_mem_desc()
157 IWL_DEBUG_FW(trans, "Adding data (size %d)\n", data_len); in iwl_uefi_handle_tlv_mem_desc()
159 pnvm_data->chunks[pnvm_data->n_chunks].data = desc->data; in iwl_uefi_handle_tlv_mem_desc()
160 pnvm_data->chunks[pnvm_data->n_chunks].len = data_len; in iwl_uefi_handle_tlv_mem_desc()
161 pnvm_data->n_chunks++; in iwl_uefi_handle_tlv_mem_desc()
167 const u8 *data, size_t len, in iwl_uefi_reduce_power_section() argument
178 len -= sizeof(*tlv); in iwl_uefi_reduce_power_section()
179 tlv = (const void *)data; in iwl_uefi_reduce_power_section()
181 tlv_len = le32_to_cpu(tlv->length); in iwl_uefi_reduce_power_section()
182 tlv_type = le32_to_cpu(tlv->type); in iwl_uefi_reduce_power_section()
187 return -EINVAL; in iwl_uefi_reduce_power_section()
190 data += sizeof(*tlv); in iwl_uefi_reduce_power_section()
194 if (iwl_uefi_handle_tlv_mem_desc(trans, data, tlv_len, in iwl_uefi_reduce_power_section()
196 return -EINVAL; in iwl_uefi_reduce_power_section()
208 len -= ALIGN(tlv_len, 4); in iwl_uefi_reduce_power_section()
209 data += ALIGN(tlv_len, 4); in iwl_uefi_reduce_power_section()
213 if (!pnvm_data->n_chunks) { in iwl_uefi_reduce_power_section()
215 return -ENOENT; in iwl_uefi_reduce_power_section()
221 const u8 *data, size_t len, in iwl_uefi_reduce_power_parse() argument
226 IWL_DEBUG_FW(trans, "Parsing REDUCE_POWER data\n"); in iwl_uefi_reduce_power_parse()
231 len -= sizeof(*tlv); in iwl_uefi_reduce_power_parse()
232 tlv = (const void *)data; in iwl_uefi_reduce_power_parse()
234 tlv_len = le32_to_cpu(tlv->length); in iwl_uefi_reduce_power_parse()
235 tlv_type = le32_to_cpu(tlv->type); in iwl_uefi_reduce_power_parse()
240 return -EINVAL; in iwl_uefi_reduce_power_parse()
245 (const void *)(data + sizeof(*tlv)); in iwl_uefi_reduce_power_parse()
251 le32_to_cpu(sku_id->data[0]), in iwl_uefi_reduce_power_parse()
252 le32_to_cpu(sku_id->data[1]), in iwl_uefi_reduce_power_parse()
253 le32_to_cpu(sku_id->data[2])); in iwl_uefi_reduce_power_parse()
255 data += sizeof(*tlv) + ALIGN(tlv_len, 4); in iwl_uefi_reduce_power_parse()
256 len -= ALIGN(tlv_len, 4); in iwl_uefi_reduce_power_parse()
258 if (trans->sku_id[0] == le32_to_cpu(sku_id->data[0]) && in iwl_uefi_reduce_power_parse()
259 trans->sku_id[1] == le32_to_cpu(sku_id->data[1]) && in iwl_uefi_reduce_power_parse()
260 trans->sku_id[2] == le32_to_cpu(sku_id->data[2])) { in iwl_uefi_reduce_power_parse()
262 data, len, in iwl_uefi_reduce_power_parse()
270 data += sizeof(*tlv) + ALIGN(tlv_len, 4); in iwl_uefi_reduce_power_parse()
271 len -= ALIGN(tlv_len, 4); in iwl_uefi_reduce_power_parse()
275 return -ENOENT; in iwl_uefi_reduce_power_parse()
282 u8 *data; in iwl_uefi_get_reduced_power() local
293 package->rev, package->total_size, package->n_skus); in iwl_uefi_get_reduced_power()
295 *len = package_size - sizeof(*package); in iwl_uefi_get_reduced_power()
296 data = kmemdup(package->data, *len, GFP_KERNEL); in iwl_uefi_get_reduced_power()
297 if (!data) { in iwl_uefi_get_reduced_power()
299 return ERR_PTR(-ENOMEM); in iwl_uefi_get_reduced_power()
304 return data; in iwl_uefi_get_reduced_power()
310 if (common_step_data->revision != 1) in iwl_uefi_step_parse()
311 return -EINVAL; in iwl_uefi_step_parse()
313 trans->mbx_addr_0_step = (u32)common_step_data->revision | in iwl_uefi_step_parse()
314 (u32)common_step_data->cnvi_eq_channel << 8 | in iwl_uefi_step_parse()
315 (u32)common_step_data->cnvr_eq_channel << 16 | in iwl_uefi_step_parse()
316 (u32)common_step_data->radio1 << 24; in iwl_uefi_step_parse()
317 trans->mbx_addr_1_step = (u32)common_step_data->radio2; in iwl_uefi_step_parse()
323 struct uefi_cnv_common_step_data *data; in iwl_uefi_get_step_table() local
326 if (trans->trans_cfg->device_family < IWL_DEVICE_FAMILY_AX210) in iwl_uefi_get_step_table()
329 data = iwl_uefi_get_verified_variable_guid(trans, &IWL_EFI_WIFI_BT_GUID, in iwl_uefi_get_step_table()
331 "STEP", sizeof(*data), NULL); in iwl_uefi_get_step_table()
332 if (IS_ERR(data)) in iwl_uefi_get_step_table()
335 ret = iwl_uefi_step_parse(data, trans); in iwl_uefi_get_step_table()
339 kfree(data); in iwl_uefi_get_step_table()
348 if (sgom_data->revision != 1) in iwl_uefi_sgom_parse()
349 return -EINVAL; in iwl_uefi_sgom_parse()
351 memcpy(fwrt->sgom_table.offset_map, sgom_data->offset_map, in iwl_uefi_sgom_parse()
352 sizeof(fwrt->sgom_table.offset_map)); in iwl_uefi_sgom_parse()
359 u8 value = fwrt->sgom_table.offset_map[i][j]; in iwl_uefi_sgom_parse()
363 if (high > fwrt->geo_num_profiles) in iwl_uefi_sgom_parse()
365 if (low > fwrt->geo_num_profiles) in iwl_uefi_sgom_parse()
367 fwrt->sgom_table.offset_map[i][j] = (high << 4) | low; in iwl_uefi_sgom_parse()
371 fwrt->sgom_enabled = true; in iwl_uefi_sgom_parse()
378 struct uefi_cnv_wlan_sgom_data *data; in iwl_uefi_get_sgom_table() local
381 if (!fwrt->geo_enabled) in iwl_uefi_get_sgom_table()
384 data = iwl_uefi_get_verified_variable(trans, IWL_UEFI_SGOM_NAME, in iwl_uefi_get_sgom_table()
385 "SGOM", sizeof(*data), NULL); in iwl_uefi_get_sgom_table()
386 if (IS_ERR(data)) in iwl_uefi_get_sgom_table()
389 ret = iwl_uefi_sgom_parse(data, fwrt); in iwl_uefi_get_sgom_table()
393 kfree(data); in iwl_uefi_get_sgom_table()
400 if (uats_data->revision != 1) in iwl_uefi_uats_parse()
401 return -EINVAL; in iwl_uefi_uats_parse()
403 memcpy(fwrt->uats_table.offset_map, uats_data->offset_map, in iwl_uefi_uats_parse()
404 sizeof(fwrt->uats_table.offset_map)); in iwl_uefi_uats_parse()
411 struct uefi_cnv_wlan_uats_data *data; in iwl_uefi_get_uats_table() local
414 data = iwl_uefi_get_verified_variable(trans, IWL_UEFI_UATS_NAME, in iwl_uefi_get_uats_table()
415 "UATS", sizeof(*data), NULL); in iwl_uefi_get_uats_table()
416 if (IS_ERR(data)) in iwl_uefi_get_uats_table()
417 return -EINVAL; in iwl_uefi_get_uats_table()
419 ret = iwl_uefi_uats_parse(data, fwrt); in iwl_uefi_get_uats_table()
422 kfree(data); in iwl_uefi_get_uats_table()
426 kfree(data); in iwl_uefi_get_uats_table()
435 memcpy(&fwrt->sar_profiles[prof_index].chains, uefi_sar_prof, in iwl_uefi_set_sar_profile()
438 fwrt->sar_profiles[prof_index].enabled = enabled & IWL_SAR_ENABLE_MSK; in iwl_uefi_set_sar_profile()
443 struct uefi_cnv_var_wrds *data; in iwl_uefi_get_wrds_table() local
446 data = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_WRDS_NAME, in iwl_uefi_get_wrds_table()
447 "WRDS", sizeof(*data), NULL); in iwl_uefi_get_wrds_table()
448 if (IS_ERR(data)) in iwl_uefi_get_wrds_table()
449 return -EINVAL; in iwl_uefi_get_wrds_table()
451 if (data->revision != IWL_UEFI_WRDS_REVISION) { in iwl_uefi_get_wrds_table()
452 ret = -EINVAL; in iwl_uefi_get_wrds_table()
454 data->revision); in iwl_uefi_get_wrds_table()
455 goto out; in iwl_uefi_get_wrds_table()
461 iwl_uefi_set_sar_profile(fwrt, &data->sar_profile, 0, data->mode); in iwl_uefi_get_wrds_table()
462 out: in iwl_uefi_get_wrds_table()
463 kfree(data); in iwl_uefi_get_wrds_table()
469 struct uefi_cnv_var_ewrd *data; in iwl_uefi_get_ewrd_table() local
472 data = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_EWRD_NAME, in iwl_uefi_get_ewrd_table()
473 "EWRD", sizeof(*data), NULL); in iwl_uefi_get_ewrd_table()
474 if (IS_ERR(data)) in iwl_uefi_get_ewrd_table()
475 return -EINVAL; in iwl_uefi_get_ewrd_table()
477 if (data->revision != IWL_UEFI_EWRD_REVISION) { in iwl_uefi_get_ewrd_table()
478 ret = -EINVAL; in iwl_uefi_get_ewrd_table()
480 data->revision); in iwl_uefi_get_ewrd_table()
481 goto out; in iwl_uefi_get_ewrd_table()
484 if (data->num_profiles >= BIOS_SAR_MAX_PROFILE_NUM) { in iwl_uefi_get_ewrd_table()
485 ret = -EINVAL; in iwl_uefi_get_ewrd_table()
486 goto out; in iwl_uefi_get_ewrd_table()
489 for (i = 0; i < data->num_profiles; i++) in iwl_uefi_get_ewrd_table()
491 * save them in sar_profiles[1-3] (because we don't in iwl_uefi_get_ewrd_table()
494 iwl_uefi_set_sar_profile(fwrt, &data->sar_profiles[i], i + 1, in iwl_uefi_get_ewrd_table()
495 data->mode); in iwl_uefi_get_ewrd_table()
497 out: in iwl_uefi_get_ewrd_table()
498 kfree(data); in iwl_uefi_get_ewrd_table()
504 struct uefi_cnv_var_wgds *data; in iwl_uefi_get_wgds_table() local
507 data = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_WGDS_NAME, in iwl_uefi_get_wgds_table()
508 "WGDS", sizeof(*data), NULL); in iwl_uefi_get_wgds_table()
509 if (IS_ERR(data)) in iwl_uefi_get_wgds_table()
510 return -EINVAL; in iwl_uefi_get_wgds_table()
512 if (data->revision != IWL_UEFI_WGDS_REVISION) { in iwl_uefi_get_wgds_table()
513 ret = -EINVAL; in iwl_uefi_get_wgds_table()
515 data->revision); in iwl_uefi_get_wgds_table()
516 goto out; in iwl_uefi_get_wgds_table()
519 if (data->num_profiles < BIOS_GEO_MIN_PROFILE_NUM || in iwl_uefi_get_wgds_table()
520 data->num_profiles > BIOS_GEO_MAX_PROFILE_NUM) { in iwl_uefi_get_wgds_table()
521 ret = -EINVAL; in iwl_uefi_get_wgds_table()
523 data->num_profiles); in iwl_uefi_get_wgds_table()
524 goto out; in iwl_uefi_get_wgds_table()
527 fwrt->geo_rev = data->revision; in iwl_uefi_get_wgds_table()
528 for (i = 0; i < data->num_profiles; i++) in iwl_uefi_get_wgds_table()
529 memcpy(&fwrt->geo_profiles[i], &data->geo_profiles[i], in iwl_uefi_get_wgds_table()
532 fwrt->geo_num_profiles = data->num_profiles; in iwl_uefi_get_wgds_table()
533 fwrt->geo_enabled = true; in iwl_uefi_get_wgds_table()
534 out: in iwl_uefi_get_wgds_table()
535 kfree(data); in iwl_uefi_get_wgds_table()
541 struct uefi_cnv_var_ppag *data; in iwl_uefi_get_ppag_table() local
544 data = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_PPAG_NAME, in iwl_uefi_get_ppag_table()
545 "PPAG", sizeof(*data), NULL); in iwl_uefi_get_ppag_table()
546 if (IS_ERR(data)) in iwl_uefi_get_ppag_table()
547 return -EINVAL; in iwl_uefi_get_ppag_table()
549 if (data->revision < IWL_UEFI_MIN_PPAG_REV || in iwl_uefi_get_ppag_table()
550 data->revision > IWL_UEFI_MAX_PPAG_REV) { in iwl_uefi_get_ppag_table()
551 ret = -EINVAL; in iwl_uefi_get_ppag_table()
553 data->revision); in iwl_uefi_get_ppag_table()
554 goto out; in iwl_uefi_get_ppag_table()
557 fwrt->ppag_ver = data->revision; in iwl_uefi_get_ppag_table()
558 fwrt->ppag_flags = iwl_bios_get_ppag_flags(data->ppag_modes, in iwl_uefi_get_ppag_table()
559 fwrt->ppag_ver); in iwl_uefi_get_ppag_table()
561 BUILD_BUG_ON(sizeof(fwrt->ppag_chains) != sizeof(data->ppag_chains)); in iwl_uefi_get_ppag_table()
562 memcpy(&fwrt->ppag_chains, &data->ppag_chains, in iwl_uefi_get_ppag_table()
563 sizeof(data->ppag_chains)); in iwl_uefi_get_ppag_table()
564 out: in iwl_uefi_get_ppag_table()
565 kfree(data); in iwl_uefi_get_ppag_table()
575 uefi_tas = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_WTAS_NAME, in iwl_uefi_get_tas_table()
578 return -EINVAL; in iwl_uefi_get_tas_table()
580 if (uefi_tas->revision < IWL_UEFI_MIN_WTAS_REVISION || in iwl_uefi_get_tas_table()
581 uefi_tas->revision > IWL_UEFI_MAX_WTAS_REVISION) { in iwl_uefi_get_tas_table()
582 ret = -EINVAL; in iwl_uefi_get_tas_table()
584 uefi_tas->revision); in iwl_uefi_get_tas_table()
585 goto out; in iwl_uefi_get_tas_table()
589 uefi_tas->tas_selection); in iwl_uefi_get_tas_table()
591 enabled = uefi_tas->tas_selection & IWL_WTAS_ENABLED_MSK; in iwl_uefi_get_tas_table()
592 tas_data->table_source = BIOS_SOURCE_UEFI; in iwl_uefi_get_tas_table()
593 tas_data->table_revision = uefi_tas->revision; in iwl_uefi_get_tas_table()
594 tas_data->tas_selection = uefi_tas->tas_selection; in iwl_uefi_get_tas_table()
600 uefi_tas->revision); in iwl_uefi_get_tas_table()
601 if (uefi_tas->black_list_size > IWL_WTAS_BLACK_LIST_MAX) { in iwl_uefi_get_tas_table()
603 uefi_tas->black_list_size); in iwl_uefi_get_tas_table()
604 ret = -EINVAL; in iwl_uefi_get_tas_table()
605 goto out; in iwl_uefi_get_tas_table()
608 tas_data->block_list_size = uefi_tas->black_list_size; in iwl_uefi_get_tas_table()
609 IWL_DEBUG_RADIO(fwrt, "TAS array size %u\n", uefi_tas->black_list_size); in iwl_uefi_get_tas_table()
611 for (u8 i = 0; i < uefi_tas->black_list_size; i++) { in iwl_uefi_get_tas_table()
612 tas_data->block_list_array[i] = uefi_tas->black_list[i]; in iwl_uefi_get_tas_table()
614 uefi_tas->black_list[i]); in iwl_uefi_get_tas_table()
617 out: in iwl_uefi_get_tas_table()
625 struct uefi_cnv_var_splc *data; in iwl_uefi_get_pwr_limit() local
628 data = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_SPLC_NAME, in iwl_uefi_get_pwr_limit()
629 "SPLC", sizeof(*data), NULL); in iwl_uefi_get_pwr_limit()
630 if (IS_ERR(data)) in iwl_uefi_get_pwr_limit()
631 return -EINVAL; in iwl_uefi_get_pwr_limit()
633 if (data->revision != IWL_UEFI_SPLC_REVISION) { in iwl_uefi_get_pwr_limit()
634 ret = -EINVAL; in iwl_uefi_get_pwr_limit()
636 data->revision); in iwl_uefi_get_pwr_limit()
637 goto out; in iwl_uefi_get_pwr_limit()
639 *dflt_pwr_limit = data->default_pwr_limit; in iwl_uefi_get_pwr_limit()
640 out: in iwl_uefi_get_pwr_limit()
641 kfree(data); in iwl_uefi_get_pwr_limit()
647 struct uefi_cnv_var_wrdd *data; in iwl_uefi_get_mcc() local
650 data = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_WRDD_NAME, in iwl_uefi_get_mcc()
651 "WRDD", sizeof(*data), NULL); in iwl_uefi_get_mcc()
652 if (IS_ERR(data)) in iwl_uefi_get_mcc()
653 return -EINVAL; in iwl_uefi_get_mcc()
655 if (data->revision != IWL_UEFI_WRDD_REVISION) { in iwl_uefi_get_mcc()
656 ret = -EINVAL; in iwl_uefi_get_mcc()
658 data->revision); in iwl_uefi_get_mcc()
659 goto out; in iwl_uefi_get_mcc()
662 if (data->mcc != BIOS_MCC_CHINA) { in iwl_uefi_get_mcc()
663 ret = -EINVAL; in iwl_uefi_get_mcc()
665 goto out; in iwl_uefi_get_mcc()
668 mcc[0] = (data->mcc >> 8) & 0xff; in iwl_uefi_get_mcc()
669 mcc[1] = data->mcc & 0xff; in iwl_uefi_get_mcc()
671 out: in iwl_uefi_get_mcc()
672 kfree(data); in iwl_uefi_get_mcc()
678 struct uefi_cnv_var_eckv *data; in iwl_uefi_get_eckv() local
681 data = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_ECKV_NAME, in iwl_uefi_get_eckv()
682 "ECKV", sizeof(*data), NULL); in iwl_uefi_get_eckv()
683 if (IS_ERR(data)) in iwl_uefi_get_eckv()
684 return -EINVAL; in iwl_uefi_get_eckv()
686 if (data->revision != IWL_UEFI_ECKV_REVISION) { in iwl_uefi_get_eckv()
687 ret = -EINVAL; in iwl_uefi_get_eckv()
689 data->revision); in iwl_uefi_get_eckv()
690 goto out; in iwl_uefi_get_eckv()
692 *extl_clk = data->ext_clock_valid; in iwl_uefi_get_eckv()
693 out: in iwl_uefi_get_eckv()
694 kfree(data); in iwl_uefi_get_eckv()
700 struct uefi_cnv_wlan_wbem_data *data; in iwl_uefi_get_wbem() local
703 data = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_WBEM_NAME, in iwl_uefi_get_wbem()
704 "WBEM", sizeof(*data), NULL); in iwl_uefi_get_wbem()
705 if (IS_ERR(data)) in iwl_uefi_get_wbem()
706 return -EINVAL; in iwl_uefi_get_wbem()
708 if (data->revision != IWL_UEFI_WBEM_REVISION) { in iwl_uefi_get_wbem()
709 ret = -EINVAL; in iwl_uefi_get_wbem()
711 data->revision); in iwl_uefi_get_wbem()
712 goto out; in iwl_uefi_get_wbem()
714 *value = data->wbem_320mhz_per_mcc & IWL_UEFI_WBEM_REV0_MASK; in iwl_uefi_get_wbem()
716 out: in iwl_uefi_get_wbem()
717 kfree(data); in iwl_uefi_get_wbem()
724 struct uefi_cnv_var_general_cfg *data; in iwl_uefi_get_dsm() local
725 int ret = -EINVAL; in iwl_uefi_get_dsm()
729 return -EOPNOTSUPP; in iwl_uefi_get_dsm()
731 data = iwl_uefi_get_verified_variable(fwrt->trans, IWL_UEFI_DSM_NAME, in iwl_uefi_get_dsm()
732 "DSM", sizeof(*data), NULL); in iwl_uefi_get_dsm()
733 if (IS_ERR(data)) in iwl_uefi_get_dsm()
734 return -EINVAL; in iwl_uefi_get_dsm()
736 if (data->revision != IWL_UEFI_DSM_REVISION) { in iwl_uefi_get_dsm()
738 data->revision); in iwl_uefi_get_dsm()
739 goto out; in iwl_uefi_get_dsm()
742 if (ARRAY_SIZE(data->functions) != UEFI_MAX_DSM_FUNCS) { in iwl_uefi_get_dsm()
744 goto out; in iwl_uefi_get_dsm()
747 *value = data->functions[func]; in iwl_uefi_get_dsm()
749 out: in iwl_uefi_get_dsm()
750 kfree(data); in iwl_uefi_get_dsm()
756 struct uefi_cnv_var_puncturing_data *data; in iwl_uefi_get_puncturing() local
762 data = iwl_uefi_get_verified_variable(fwrt->trans, in iwl_uefi_get_puncturing()
765 sizeof(*data), NULL); in iwl_uefi_get_puncturing()
766 if (IS_ERR(data)) in iwl_uefi_get_puncturing()
769 if (data->revision != IWL_UEFI_PUNCTURING_REVISION) { in iwl_uefi_get_puncturing()
771 data->revision); in iwl_uefi_get_puncturing()
773 puncturing = data->puncturing & IWL_UEFI_PUNCTURING_REV0_MASK; in iwl_uefi_get_puncturing()
778 kfree(data); in iwl_uefi_get_puncturing()
785 struct uefi_cnv_wlan_dsbr_data *data; in iwl_uefi_get_dsbr() local
788 data = iwl_uefi_get_verified_variable_guid(fwrt->trans, in iwl_uefi_get_dsbr()
791 sizeof(*data), NULL); in iwl_uefi_get_dsbr()
792 if (IS_ERR(data)) in iwl_uefi_get_dsbr()
793 return -EINVAL; in iwl_uefi_get_dsbr()
795 if (data->revision != IWL_UEFI_DSBR_REVISION) { in iwl_uefi_get_dsbr()
796 ret = -EINVAL; in iwl_uefi_get_dsbr()
798 data->revision); in iwl_uefi_get_dsbr()
799 goto out; in iwl_uefi_get_dsbr()
801 *value = data->config; in iwl_uefi_get_dsbr()
804 out: in iwl_uefi_get_dsbr()
805 kfree(data); in iwl_uefi_get_dsbr()