Lines Matching full:ab
10 static int ath11k_fw_request_firmware_api_n(struct ath11k_base *ab, in ath11k_fw_request_firmware_api_n() argument
19 ab->fw.fw = ath11k_core_firmware_request(ab, name); in ath11k_fw_request_firmware_api_n()
20 if (IS_ERR(ab->fw.fw)) { in ath11k_fw_request_firmware_api_n()
21 ret = PTR_ERR(ab->fw.fw); in ath11k_fw_request_firmware_api_n()
22 ath11k_dbg(ab, ATH11K_DBG_BOOT, "failed to load %s: %d\n", name, ret); in ath11k_fw_request_firmware_api_n()
23 ab->fw.fw = NULL; in ath11k_fw_request_firmware_api_n()
27 data = ab->fw.fw->data; in ath11k_fw_request_firmware_api_n()
28 len = ab->fw.fw->size; in ath11k_fw_request_firmware_api_n()
34 ath11k_err(ab, "firmware image too small to contain magic: %zu\n", in ath11k_fw_request_firmware_api_n()
41 ath11k_err(ab, "Invalid firmware magic\n"); in ath11k_fw_request_firmware_api_n()
51 ath11k_err(ab, "No space for padding after magic\n"); in ath11k_fw_request_firmware_api_n()
70 ath11k_err(ab, "Invalid length for FW IE %d (%zu < %zu)\n", in ath11k_fw_request_firmware_api_n()
83 ath11k_dbg(ab, ATH11K_DBG_BOOT, "found fw timestamp %d\n", in ath11k_fw_request_firmware_api_n()
87 ath11k_dbg(ab, ATH11K_DBG_BOOT, in ath11k_fw_request_firmware_api_n()
99 __set_bit(i, ab->fw.fw_features); in ath11k_fw_request_firmware_api_n()
102 ath11k_dbg_dump(ab, ATH11K_DBG_BOOT, "features", "", in ath11k_fw_request_firmware_api_n()
103 ab->fw.fw_features, in ath11k_fw_request_firmware_api_n()
104 sizeof(ab->fw.fw_features)); in ath11k_fw_request_firmware_api_n()
107 ath11k_dbg(ab, ATH11K_DBG_BOOT, in ath11k_fw_request_firmware_api_n()
111 ab->fw.amss_data = data; in ath11k_fw_request_firmware_api_n()
112 ab->fw.amss_len = ie_len; in ath11k_fw_request_firmware_api_n()
115 ath11k_dbg(ab, ATH11K_DBG_BOOT, in ath11k_fw_request_firmware_api_n()
119 ab->fw.m3_data = data; in ath11k_fw_request_firmware_api_n()
120 ab->fw.m3_len = ie_len; in ath11k_fw_request_firmware_api_n()
123 ath11k_warn(ab, "Unknown FW IE: %u\n", ie_id); in ath11k_fw_request_firmware_api_n()
141 release_firmware(ab->fw.fw); in ath11k_fw_request_firmware_api_n()
142 ab->fw.fw = NULL; in ath11k_fw_request_firmware_api_n()
146 int ath11k_fw_pre_init(struct ath11k_base *ab) in ath11k_fw_pre_init() argument
150 ret = ath11k_fw_request_firmware_api_n(ab, ATH11K_FW_API2_FILE); in ath11k_fw_pre_init()
152 ab->fw.api_version = 2; in ath11k_fw_pre_init()
156 ab->fw.api_version = 1; in ath11k_fw_pre_init()
159 ath11k_dbg(ab, ATH11K_DBG_BOOT, "using fw api %d\n", in ath11k_fw_pre_init()
160 ab->fw.api_version); in ath11k_fw_pre_init()
165 void ath11k_fw_destroy(struct ath11k_base *ab) in ath11k_fw_destroy() argument
167 release_firmware(ab->fw.fw); in ath11k_fw_destroy()