Lines Matching defs:iwl_trans

1167 static void get_crf_id(struct iwl_trans *iwl_trans)
1173 if (iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
1179 val = iwl_read_umac_prph_no_grab(iwl_trans, WFPM_CTRL_REG);
1181 iwl_write_umac_prph_no_grab(iwl_trans, WFPM_CTRL_REG, val);
1184 iwl_trans->hw_crf_id = iwl_read_prph_no_grab(iwl_trans, sd_reg_ver_addr);
1187 iwl_trans->hw_cnv_id =
1188 iwl_read_prph_no_grab(iwl_trans, CNVI_AUX_MISC_CHIP);
1191 if (CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_BZ_W)
1195 if (CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_BZ) {
1196 step = CNVI_AUX_MISC_CHIP_MAC_STEP(iwl_trans->hw_cnv_id);
1199 if ((CNVI_AUX_MISC_CHIP_PROD_TYPE(iwl_trans->hw_cnv_id) ==
1205 if (CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_BZ ||
1206 CSR_HW_REV_TYPE(iwl_trans->hw_rev) == IWL_CFG_MAC_TYPE_BZ_W) {
1207 iwl_trans->hw_rev_step = step;
1208 iwl_trans->hw_rev |= step;
1212 iwl_trans->hw_wfpm_id =
1213 iwl_read_umac_prph_no_grab(iwl_trans, WFPM_OTP_CFG1_ADDR);
1214 IWL_INFO(iwl_trans, "Detected crf-id 0x%x, cnv-id 0x%x wfpm id 0x%x\n",
1215 iwl_trans->hw_crf_id, iwl_trans->hw_cnv_id,
1216 iwl_trans->hw_wfpm_id);
1223 static int map_crf_id(struct iwl_trans *iwl_trans)
1226 u32 val = iwl_trans->hw_crf_id;
1229 u32 jacket_id_cnv = REG_CRF_ID_SLAVE(iwl_trans->hw_cnv_id);
1230 u32 jacket_id_wfpm = WFPM_OTP_CFG1_IS_JACKET(iwl_trans->hw_wfpm_id);
1231 u32 cdb_id_wfpm = WFPM_OTP_CFG1_IS_CDB(iwl_trans->hw_wfpm_id);
1236 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_JF1 << 12);
1239 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_JF2 << 12);
1242 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR1 << 12);
1245 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR2 << 12);
1248 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR2 << 12);
1251 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_GF << 12);
1254 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_FM << 12);
1257 iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_WH << 12);
1261 IWL_ERR(iwl_trans,
1269 iwl_trans->hw_rf_id |= (step_id << 8);
1273 iwl_trans->hw_rf_id += BIT(28);
1274 IWL_INFO(iwl_trans, "Adding cdb to rf id\n");
1279 iwl_trans->hw_rf_id += BIT(29);
1280 IWL_INFO(iwl_trans, "Adding jacket to rf id\n");
1283 IWL_INFO(iwl_trans,
1285 REG_CRF_ID_TYPE(val), step_id, slave_id, iwl_trans->hw_rf_id);
1286 IWL_INFO(iwl_trans,
1288 cdb_id_wfpm, jacket_id_wfpm, iwl_trans->hw_wfpm_id);
1289 IWL_INFO(iwl_trans, "Detected jacket-id 0x%x from cnvi id 0x%x\n",
1290 jacket_id_cnv, iwl_trans->hw_cnv_id);
1369 struct iwl_trans *iwl_trans;
1387 iwl_trans = iwl_trans_pcie_alloc(pdev, ent, trans);
1388 if (IS_ERR(iwl_trans))
1389 return PTR_ERR(iwl_trans);
1391 trans_pcie = IWL_TRANS_GET_PCIE_TRANS(iwl_trans);
1400 ret = iwl_pcie_prepare_card_hw(iwl_trans);
1402 ret = iwl_finish_nic_init(iwl_trans);
1405 if (iwl_trans_grab_nic_access(iwl_trans)) {
1406 get_crf_id(iwl_trans);
1408 iwl_trans_release_nic_access(iwl_trans);
1415 iwl_trans->hw_rf_id = iwl_read32(iwl_trans, CSR_HW_RF_ID);
1422 if (iwl_trans->trans_cfg->rf_id &&
1423 iwl_trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_9000 &&
1424 !CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id) && map_crf_id(iwl_trans)) {
1429 IWL_INFO(iwl_trans, "PCI dev %04x/%04x, rev=0x%x, rfid=0x%x\n",
1431 iwl_trans->hw_rev, iwl_trans->hw_rf_id);
1434 CSR_HW_REV_TYPE(iwl_trans->hw_rev),
1435 iwl_trans->hw_rev_step,
1436 CSR_HW_RFID_TYPE(iwl_trans->hw_rf_id),
1437 CSR_HW_RFID_IS_CDB(iwl_trans->hw_rf_id),
1438 CSR_HW_RFID_IS_JACKET(iwl_trans->hw_rf_id),
1442 CSR_HW_RFID_STEP(iwl_trans->hw_rf_id));
1444 iwl_trans->cfg = dev_info->cfg;
1445 iwl_trans->name = dev_info->name;
1446 iwl_trans->no_160 = dev_info->no_160 == IWL_CFG_NO_160;
1464 (iwl_trans->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_7265D)
1465 iwl_trans->cfg = cfg_7265d;
1473 if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QU_C0) {
1474 if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr)
1475 iwl_trans->cfg = &iwl_ax201_cfg_qu_c0_hr_b0;
1476 else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
1477 iwl_trans->cfg = &killer1650s_2ax_cfg_qu_c0_hr_b0;
1478 else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
1479 iwl_trans->cfg = &killer1650i_2ax_cfg_qu_c0_hr_b0;
1483 if (iwl_trans->hw_rev == CSR_HW_REV_TYPE_QUZ) {
1484 if (iwl_trans->cfg == &iwl_ax201_cfg_qu_hr)
1485 iwl_trans->cfg = &iwl_ax201_cfg_quz_hr;
1486 else if (iwl_trans->cfg == &killer1650s_2ax_cfg_qu_b0_hr_b0)
1487 iwl_trans->cfg = &iwl_ax1650s_cfg_quz_hr;
1488 else if (iwl_trans->cfg == &killer1650i_2ax_cfg_qu_b0_hr_b0)
1489 iwl_trans->cfg = &iwl_ax1650i_cfg_quz_hr;
1497 if (!iwl_trans->cfg) {
1501 iwl_trans->hw_rev, iwl_trans->hw_rf_id);
1505 iwl_trans->cfg = cfg;
1509 if (!iwl_trans->name)
1510 iwl_trans->name = iwl_trans->cfg->name;
1512 IWL_INFO(iwl_trans, "Detected %s\n", iwl_trans->name);
1514 if (iwl_trans->trans_cfg->mq_rx_supported) {
1515 if (WARN_ON(!iwl_trans->cfg->num_rbds)) {
1519 trans_pcie->num_rx_bufs = iwl_trans->cfg->num_rbds;
1524 if (!iwl_trans->trans_cfg->integrated) {
1529 iwl_trans->pcie_link_speed =
1533 ret = iwl_trans_init(iwl_trans);
1537 pci_set_drvdata(pdev, iwl_trans);
1540 iwl_pcie_prepare_card_hw(iwl_trans);
1542 iwl_trans->drv = iwl_drv_start(iwl_trans);
1544 if (IS_ERR(iwl_trans->drv)) {
1545 ret = PTR_ERR(iwl_trans->drv);
1550 iwl_trans_pcie_dbgfs_register(iwl_trans);
1555 iwl_trans_pcie_free(iwl_trans);
1561 struct iwl_trans *trans = pci_get_drvdata(pdev);
1586 struct iwl_trans *trans = pci_get_drvdata(pdev);