Lines Matching full:trans
404 static int iwl_init_channel_map(struct iwl_trans *trans, in iwl_init_channel_map() argument
410 const struct iwl_rf_cfg *cfg = trans->cfg; in iwl_init_channel_map()
411 struct device *dev = trans->dev; in iwl_init_channel_map()
506 static void iwl_init_vht_hw_capab(struct iwl_trans *trans, in iwl_init_vht_hw_capab() argument
511 const struct iwl_rf_cfg *cfg = trans->cfg; in iwl_init_vht_hw_capab()
524 if (!trans->cfg->ht_params.stbc) in iwl_init_vht_hw_capab()
542 if (trans->cfg->ht_params.stbc && num_tx_ants > 1) in iwl_init_vht_hw_capab()
555 if (trans->mac_cfg->mq_rx_supported && !fips_enabled) in iwl_init_vht_hw_capab()
562 if (trans->mac_cfg->mq_rx_supported && !fips_enabled) in iwl_init_vht_hw_capab()
860 static void iwl_init_he_6ghz_capa(struct iwl_trans *trans, in iwl_init_he_6ghz_capa() argument
876 iwl_init_ht_hw_capab(trans, data, &ht_cap, NL80211_BAND_5GHZ, in iwl_init_he_6ghz_capa()
879 iwl_init_vht_hw_capab(trans, data, &vht_cap, tx_chains, rx_chains); in iwl_init_he_6ghz_capa()
898 IWL_DEBUG_EEPROM(trans->dev, "he_6ghz_capa=0x%x\n", he_6ghz_capa); in iwl_init_he_6ghz_capa()
907 iwl_nvm_fixup_sband_iftd(struct iwl_trans *trans, in iwl_nvm_fixup_sband_iftd() argument
916 bool slow_pcie = (!trans->mac_cfg->integrated && in iwl_nvm_fixup_sband_iftd()
917 trans->info.pcie_link_speed < PCI_EXP_LNKSTA_CLS_8_0GB); in iwl_nvm_fixup_sband_iftd()
946 if (!trans->reduced_cap_sku && in iwl_nvm_fixup_sband_iftd()
947 (!trans->cfg->bw_limit || trans->cfg->bw_limit >= 320)) { in iwl_nvm_fixup_sband_iftd()
1035 if (CSR_HW_RFID_TYPE(trans->info.hw_rf_id) == IWL_CFG_RF_TYPE_HR1 || in iwl_nvm_fixup_sband_iftd()
1036 CSR_HW_RFID_TYPE(trans->info.hw_rf_id) == IWL_CFG_RF_TYPE_HR2) in iwl_nvm_fixup_sband_iftd()
1041 if (trans->mac_cfg->device_family >= IWL_DEVICE_FAMILY_AX210 && !is_ap) in iwl_nvm_fixup_sband_iftd()
1049 if (trans->mac_cfg->device_family == IWL_DEVICE_FAMILY_22000 && in iwl_nvm_fixup_sband_iftd()
1055 if (!trans->cfg->ht_params.stbc) { in iwl_nvm_fixup_sband_iftd()
1062 if (trans->step_urm) { in iwl_nvm_fixup_sband_iftd()
1067 if (trans->cfg->bw_limit && trans->cfg->bw_limit < 160) in iwl_nvm_fixup_sband_iftd()
1071 if ((trans->cfg->bw_limit && trans->cfg->bw_limit < 320) || in iwl_nvm_fixup_sband_iftd()
1072 trans->reduced_cap_sku) { in iwl_nvm_fixup_sband_iftd()
1079 if (trans->reduced_cap_sku) { in iwl_nvm_fixup_sband_iftd()
1087 static void iwl_init_he_hw_capab(struct iwl_trans *trans, in iwl_init_he_hw_capab() argument
1121 iwl_nvm_fixup_sband_iftd(trans, data, sband, &iftype_data[i], in iwl_init_he_hw_capab()
1124 iwl_init_he_6ghz_capa(trans, data, sband, tx_chains, rx_chains); in iwl_init_he_hw_capab()
1127 void iwl_reinit_cab(struct iwl_trans *trans, struct iwl_nvm_data *data, in iwl_reinit_cab() argument
1133 iwl_init_ht_hw_capab(trans, data, &sband->ht_cap, NL80211_BAND_2GHZ, in iwl_reinit_cab()
1137 iwl_init_he_hw_capab(trans, data, sband, tx_chains, rx_chains, in iwl_reinit_cab()
1141 iwl_init_ht_hw_capab(trans, data, &sband->ht_cap, NL80211_BAND_5GHZ, in iwl_reinit_cab()
1144 iwl_init_vht_hw_capab(trans, data, &sband->vht_cap, in iwl_reinit_cab()
1148 iwl_init_he_hw_capab(trans, data, sband, tx_chains, rx_chains, in iwl_reinit_cab()
1153 iwl_init_he_hw_capab(trans, data, sband, tx_chains, rx_chains, in iwl_reinit_cab()
1158 static void iwl_init_sbands(struct iwl_trans *trans, in iwl_init_sbands() argument
1164 struct device *dev = trans->dev; in iwl_init_sbands()
1169 n_channels = iwl_init_channel_map(trans, fw, data, nvm_ch_flags, in iwl_init_sbands()
1177 iwl_init_ht_hw_capab(trans, data, &sband->ht_cap, NL80211_BAND_2GHZ, in iwl_init_sbands()
1181 iwl_init_he_hw_capab(trans, data, sband, tx_chains, rx_chains, in iwl_init_sbands()
1190 iwl_init_ht_hw_capab(trans, data, &sband->ht_cap, NL80211_BAND_5GHZ, in iwl_init_sbands()
1193 iwl_init_vht_hw_capab(trans, data, &sband->vht_cap, in iwl_init_sbands()
1197 iwl_init_he_hw_capab(trans, data, sband, tx_chains, rx_chains, in iwl_init_sbands()
1217 iwl_init_he_hw_capab(trans, data, sband, tx_chains, rx_chains, in iwl_init_sbands()
1303 static void iwl_set_hw_address_from_csr(struct iwl_trans *trans, in iwl_set_hw_address_from_csr() argument
1306 __le32 mac_addr0 = cpu_to_le32(iwl_read32(trans, in iwl_set_hw_address_from_csr()
1307 CSR_MAC_ADDR0_STRAP(trans))); in iwl_set_hw_address_from_csr()
1308 __le32 mac_addr1 = cpu_to_le32(iwl_read32(trans, in iwl_set_hw_address_from_csr()
1309 CSR_MAC_ADDR1_STRAP(trans))); in iwl_set_hw_address_from_csr()
1319 mac_addr0 = cpu_to_le32(iwl_read32(trans, CSR_MAC_ADDR0_OTP(trans))); in iwl_set_hw_address_from_csr()
1320 mac_addr1 = cpu_to_le32(iwl_read32(trans, CSR_MAC_ADDR1_OTP(trans))); in iwl_set_hw_address_from_csr()
1325 static void iwl_set_hw_address_family_8000(struct iwl_trans *trans, in iwl_set_hw_address_family_8000() argument
1355 IWL_ERR(trans, in iwl_set_hw_address_family_8000()
1361 __le32 mac_addr0 = cpu_to_le32(iwl_trans_read_prph(trans, in iwl_set_hw_address_family_8000()
1363 __le32 mac_addr1 = cpu_to_le32(iwl_trans_read_prph(trans, in iwl_set_hw_address_family_8000()
1371 IWL_ERR(trans, "mac address is not found\n"); in iwl_set_hw_address_family_8000()
1374 static int iwl_set_hw_address(struct iwl_trans *trans, in iwl_set_hw_address() argument
1379 const struct iwl_mac_cfg *mac_cfg = trans->mac_cfg; in iwl_set_hw_address()
1381 iwl_set_hw_address_from_csr(trans, data); in iwl_set_hw_address()
1393 iwl_set_hw_address_family_8000(trans, cfg, data, in iwl_set_hw_address()
1398 IWL_ERR(trans, "no valid mac address was found\n"); in iwl_set_hw_address()
1402 if (!trans->csme_own) in iwl_set_hw_address()
1404 IWL_INFO(trans, "base HW address: %pM, OTP minor version: 0x%x\n", in iwl_set_hw_address()
1405 data->hw_addr, iwl_read_prph(trans, REG_OTP_MINOR)); in iwl_set_hw_address()
1407 IWL_INFO(trans, "base HW address: %6D, OTP minor version: 0x%x\n", in iwl_set_hw_address()
1408 data->hw_addr, ":", iwl_read_prph(trans, REG_OTP_MINOR)); in iwl_set_hw_address()
1415 iwl_nvm_no_wide_in_5ghz(struct iwl_trans *trans, const struct iwl_rf_cfg *cfg, in iwl_nvm_no_wide_in_5ghz() argument
1427 if (trans->mac_cfg->device_family == IWL_DEVICE_FAMILY_7000) { in iwl_nvm_no_wide_in_5ghz()
1436 IWL_DEBUG_EEPROM(trans->dev, in iwl_nvm_no_wide_in_5ghz()
1447 iwl_parse_mei_nvm_data(struct iwl_trans *trans, const struct iwl_rf_cfg *cfg, in iwl_parse_mei_nvm_data() argument
1494 if (iwl_set_hw_address(trans, cfg, data, NULL, NULL)) { in iwl_parse_mei_nvm_data()
1503 iwl_init_sbands(trans, data, mei_nvm->channels, tx_chains, rx_chains, in iwl_parse_mei_nvm_data()
1511 iwl_parse_nvm_data(struct iwl_trans *trans, const struct iwl_rf_cfg *cfg, in iwl_parse_nvm_data() argument
1564 IWL_ERR(trans, in iwl_parse_nvm_data()
1588 if (iwl_set_hw_address(trans, cfg, data, nvm_hw, mac_override)) { in iwl_parse_nvm_data()
1597 if (iwl_nvm_no_wide_in_5ghz(trans, cfg, nvm_hw)) in iwl_parse_nvm_data()
1600 iwl_init_sbands(trans, data, ch_section, tx_chains, rx_chains, in iwl_parse_nvm_data()
1727 iwl_parse_nvm_mcc_info(struct iwl_trans *trans, in iwl_parse_nvm_mcc_info() argument
1731 const struct iwl_rf_cfg *cfg = trans->cfg; in iwl_parse_nvm_mcc_info()
1732 struct device *dev = trans->dev; in iwl_parse_nvm_mcc_info()
1913 int iwl_read_external_nvm(struct iwl_trans *trans, in iwl_read_external_nvm() argument
1938 IWL_DEBUG_EEPROM(trans->dev, "Read from external NVM\n"); in iwl_read_external_nvm()
1941 if (trans->cfg->nvm_type != IWL_NVM_EXT) in iwl_read_external_nvm()
1952 ret = request_firmware(&fw_entry, nvm_file_name, trans->dev); in iwl_read_external_nvm()
1954 IWL_ERR(trans, "ERROR: %s isn't available %d\n", in iwl_read_external_nvm()
1959 IWL_INFO(trans, "Loaded NVM file %s (%zu bytes)\n", in iwl_read_external_nvm()
1963 IWL_ERR(trans, "NVM file too large\n"); in iwl_read_external_nvm()
1982 IWL_INFO(trans, "NVM Version %08X\n", le32_to_cpu(dword_buff[2])); in iwl_read_external_nvm()
1983 IWL_INFO(trans, "NVM Manufacturing date %08X\n", in iwl_read_external_nvm()
1987 if (trans->mac_cfg->device_family == IWL_DEVICE_FAMILY_8000 && in iwl_read_external_nvm()
1988 trans->info.hw_rev_step == SILICON_C_STEP && in iwl_read_external_nvm()
1999 IWL_ERR(trans, in iwl_read_external_nvm()
2011 if (trans->cfg->nvm_type != IWL_NVM_EXT) { in iwl_read_external_nvm()
2023 IWL_ERR(trans, "ERROR - section too large (%d)\n", in iwl_read_external_nvm()
2030 IWL_ERR(trans, "ERROR - section empty\n"); in iwl_read_external_nvm()
2036 IWL_ERR(trans, in iwl_read_external_nvm()
2055 iwl_nvm_fixups(trans->info.hw_id, section_id, temp, section_size); in iwl_read_external_nvm()
2070 struct iwl_nvm_data *iwl_get_nvm(struct iwl_trans *trans, in iwl_get_nvm() argument
2102 ret = iwl_trans_send_cmd(trans, &hcmd); in iwl_get_nvm()
2117 IWL_INFO(trans, "OTP is empty\n"); in iwl_get_nvm()
2125 iwl_set_hw_address_from_csr(trans, nvm); in iwl_get_nvm()
2129 IWL_ERR(trans, "no valid mac address was found\n"); in iwl_get_nvm()
2135 IWL_INFO(trans, "base HW address: %pM\n", nvm->hw_addr); in iwl_get_nvm()
2137 IWL_INFO(trans, "base HW address: %6D\n", nvm->hw_addr, ":"); in iwl_get_nvm()
2144 IWL_WARN(trans, in iwl_get_nvm()
2162 if (CSR_HW_RFID_TYPE(trans->info.hw_rf_id) >= IWL_CFG_RF_TYPE_FM) in iwl_get_nvm()
2188 iwl_init_sbands(trans, nvm, channel_profile, tx_ant, rx_ant, in iwl_get_nvm()