Lines Matching refs:iwl_trans
1124 static int get_crf_id(struct iwl_trans *iwl_trans) in get_crf_id() argument
1130 if (iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) in get_crf_id()
1136 val = iwl_read_umac_prph_no_grab(iwl_trans, WFPM_CTRL_REG); in get_crf_id()
1138 iwl_write_umac_prph_no_grab(iwl_trans, WFPM_CTRL_REG, val); in get_crf_id()
1141 iwl_trans->hw_crf_id = iwl_read_prph_no_grab(iwl_trans, sd_reg_ver_addr); in get_crf_id()
1144 iwl_trans->hw_cnv_id = in get_crf_id()
1145 iwl_read_prph_no_grab(iwl_trans, CNVI_AUX_MISC_CHIP); in get_crf_id()
1148 iwl_trans->hw_wfpm_id = in get_crf_id()
1149 iwl_read_umac_prph_no_grab(iwl_trans, WFPM_OTP_CFG1_ADDR); in get_crf_id()
1150 IWL_INFO(iwl_trans, "Detected crf-id 0x%x, cnv-id 0x%x wfpm id 0x%x\n", in get_crf_id()
1151 iwl_trans->hw_crf_id, iwl_trans->hw_cnv_id, in get_crf_id()
1152 iwl_trans->hw_wfpm_id); in get_crf_id()
1161 static int map_crf_id(struct iwl_trans *iwl_trans) in map_crf_id() argument
1164 u32 val = iwl_trans->hw_crf_id; in map_crf_id()
1167 u32 jacket_id_cnv = REG_CRF_ID_SLAVE(iwl_trans->hw_cnv_id); in map_crf_id()
1168 u32 jacket_id_wfpm = WFPM_OTP_CFG1_IS_JACKET(iwl_trans->hw_wfpm_id); in map_crf_id()
1169 u32 cdb_id_wfpm = WFPM_OTP_CFG1_IS_CDB(iwl_trans->hw_wfpm_id); in map_crf_id()
1174 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_JF1 << 12); in map_crf_id()
1177 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_JF2 << 12); in map_crf_id()
1180 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR1 << 12); in map_crf_id()
1183 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR2 << 12); in map_crf_id()
1186 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR2 << 12); in map_crf_id()
1189 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_GF << 12); in map_crf_id()
1192 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_MR << 12); in map_crf_id()
1197 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_FM << 12); in map_crf_id()
1201 IWL_ERR(iwl_trans, in map_crf_id()
1209 iwl_trans->hw_rf_id |= (step_id << 8); in map_crf_id()
1213 iwl_trans->hw_rf_id += BIT(28); in map_crf_id()
1214 IWL_INFO(iwl_trans, "Adding cdb to rf id\n"); in map_crf_id()
1219 iwl_trans->hw_rf_id += BIT(29); in map_crf_id()
1220 IWL_INFO(iwl_trans, "Adding jacket to rf id\n"); in map_crf_id()
1223 IWL_INFO(iwl_trans, in map_crf_id()
1225 REG_CRF_ID_TYPE(val), step_id, slave_id, iwl_trans->hw_rf_id); in map_crf_id()
1226 IWL_INFO(iwl_trans, in map_crf_id()
1228 cdb_id_wfpm, jacket_id_wfpm, iwl_trans->hw_wfpm_id); in map_crf_id()
1229 IWL_INFO(iwl_trans, "Detected jacket-id 0x%x from cnvi id 0x%x\n", in map_crf_id()
1230 jacket_id_cnv, iwl_trans->hw_cnv_id); in map_crf_id()
1308 struct iwl_trans *iwl_trans; in iwl_pci_probe() local
1326 iwl_trans = iwl_trans_pcie_alloc(pdev, ent, trans); in iwl_pci_probe()
1327 if (IS_ERR(iwl_trans)) in iwl_pci_probe()
1328 return PTR_ERR(iwl_trans); in iwl_pci_probe()
1330 trans_pcie = IWL_TRANS_GET_PCIE_TRANS(iwl_trans); in iwl_pci_probe()
1339 ret = iwl_pcie_prepare_card_hw(iwl_trans); in iwl_pci_probe()
1341 ret = iwl_finish_nic_init(iwl_trans); in iwl_pci_probe()
1344 if (iwl_trans_grab_nic_access(iwl_trans)) { in iwl_pci_probe()
1345 get_crf_id(iwl_trans); in iwl_pci_probe()
1347 iwl_trans_release_nic_access(iwl_trans); in iwl_pci_probe()
1354 iwl_trans->hw_rf_id = iwl_read32(iwl_trans, CSR_HW_RF_ID); in iwl_pci_probe()
1361 if (iwl_trans->trans_cfg->rf_id && in iwl_pci_probe()
1362 iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_9000 && in iwl_pci_probe()
1363 !CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id) && map_crf_id(iwl_trans)) { in iwl_pci_probe()
1368 IWL_INFO(iwl_trans, "PCI dev %04x/%04x, rev=0x%x, rfid=0x%x\n", in iwl_pci_probe()
1370 iwl_trans->hw_rev, iwl_trans->hw_rf_id); in iwl_pci_probe()
1373 CSR_HW_REV_TYPE(iwl_trans->hw_rev), in iwl_pci_probe()
1374 iwl_trans->hw_rev_step, in iwl_pci_probe()
1375 CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id), in iwl_pci_probe()
1376 CSR_HW_RFID_IS_CDB(iwl_trans->hw_rf_id), in iwl_pci_probe()
1377 CSR_HW_RFID_IS_JACKET(iwl_trans->hw_rf_id), in iwl_pci_probe()
1381 CSR_HW_RFID_STEP(iwl_trans->hw_rf_id)); in iwl_pci_probe()
1383 iwl_trans->cfg = dev_info->cfg; in iwl_pci_probe()
1384 iwl_trans->name = dev_info->name; in iwl_pci_probe()
1402 (iwl_trans->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_7265D) in iwl_pci_probe()
1403 iwl_trans->cfg = cfg_7265d; in iwl_pci_probe()
1411 if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QU_C0) { in iwl_pci_probe()
1412 if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr) in iwl_pci_probe()
1413 iwl_trans->cfg = &iwl_ax201_cfg_qu_c0_hr_b0; in iwl_pci_probe()
1414 else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0) in iwl_pci_probe()
1415 iwl_trans->cfg = &killer1650s_2ax_cfg_qu_c0_hr_b0; in iwl_pci_probe()
1416 else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0) in iwl_pci_probe()
1417 iwl_trans->cfg = &killer1650i_2ax_cfg_qu_c0_hr_b0; in iwl_pci_probe()
1421 if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QUZ) { in iwl_pci_probe()
1422 if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr) in iwl_pci_probe()
1423 iwl_trans->cfg = &iwl_ax201_cfg_quz_hr; in iwl_pci_probe()
1424 else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0) in iwl_pci_probe()
1425 iwl_trans->cfg = &iwl_ax1650s_cfg_quz_hr; in iwl_pci_probe()
1426 else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0) in iwl_pci_probe()
1427 iwl_trans->cfg = &iwl_ax1650i_cfg_quz_hr; in iwl_pci_probe()
1435 if (!iwl_trans->cfg) { in iwl_pci_probe()
1439 iwl_trans->hw_rev, iwl_trans->hw_rf_id); in iwl_pci_probe()
1443 iwl_trans->cfg = cfg; in iwl_pci_probe()
1447 if (!iwl_trans->name) in iwl_pci_probe()
1448 iwl_trans->name = iwl_trans->cfg->name; in iwl_pci_probe()
1450 if (iwl_trans->trans_cfg->mq_rx_supported) { in iwl_pci_probe()
1451 if (WARN_ON(!iwl_trans->cfg->num_rbds)) { in iwl_pci_probe()
1455 trans_pcie->num_rx_bufs = iwl_trans->cfg->num_rbds; in iwl_pci_probe()
1460 if (!iwl_trans->trans_cfg->integrated) { in iwl_pci_probe()
1465 iwl_trans->pcie_link_speed = in iwl_pci_probe()
1469 ret = iwl_trans_init(iwl_trans); in iwl_pci_probe()
1473 pci_set_drvdata(pdev, iwl_trans); in iwl_pci_probe()
1476 iwl_pcie_prepare_card_hw(iwl_trans); in iwl_pci_probe()
1478 iwl_trans->drv = iwl_drv_start(iwl_trans); in iwl_pci_probe()
1480 if (IS_ERR(iwl_trans->drv)) { in iwl_pci_probe()
1481 ret = PTR_ERR(iwl_trans->drv); in iwl_pci_probe()
1486 iwl_trans_pcie_dbgfs_register(iwl_trans); in iwl_pci_probe()
1491 iwl_trans_pcie_free(iwl_trans); in iwl_pci_probe()
1497 struct iwl_trans *trans = pci_get_drvdata(pdev); in iwl_pci_remove()
1522 struct iwl_trans *trans = pci_get_drvdata(pdev); in iwl_pci_resume()