Lines Matching refs:imc
136 res->imc = (adxl_nm_bitmap & BIT_NM_MEMCTRL) ? in skx_adxl_decode()
143 res->imc = (int)adxl_values[component_indices[INDEX_MEMCTRL]]; in skx_adxl_decode()
148 if (res->imc > NUM_IMC - 1 || res->imc < 0) { in skx_adxl_decode()
149 skx_printk(KERN_ERR, "Bad imc %d\n", res->imc); in skx_adxl_decode()
154 if (d->imc[0].src_id == res->socket) { in skx_adxl_decode()
162 res->socket, res->imc); in skx_adxl_decode()
337 struct skx_imc *imc, int chan, int dimmno, in skx_get_dimm_info() argument
346 cols = imc->hbm_mc ? 6 : numcol(mtr); in skx_get_dimm_info()
348 if (imc->hbm_mc) { in skx_get_dimm_info()
366 imc->mc, chan, dimmno, size, npages, in skx_get_dimm_info()
369 imc->chan[chan].dimms[dimmno].close_pg = GET_BITFIELD(mcmtr, 0, 0); in skx_get_dimm_info()
370 imc->chan[chan].dimms[dimmno].bank_xor_enable = GET_BITFIELD(mcmtr, 9, 9); in skx_get_dimm_info()
371 imc->chan[chan].dimms[dimmno].fine_grain_bank = GET_BITFIELD(amap, 0, 0); in skx_get_dimm_info()
372 imc->chan[chan].dimms[dimmno].rowbits = rows; in skx_get_dimm_info()
373 imc->chan[chan].dimms[dimmno].colbits = cols; in skx_get_dimm_info()
381 if (imc->hbm_mc) in skx_get_dimm_info()
383 imc->src_id, imc->lmc, chan); in skx_get_dimm_info()
386 imc->src_id, imc->lmc, chan, dimmno); in skx_get_dimm_info()
391 int skx_get_nvdimm_info(struct dimm_info *dimm, struct skx_imc *imc, in skx_get_nvdimm_info() argument
399 dev_handle = ACPI_NFIT_BUILD_DEVICE_HANDLE(dimmno, chan, imc->lmc, in skx_get_nvdimm_info()
400 imc->src_id, 0); in skx_get_nvdimm_info()
431 imc->mc, chan, dimmno, size >> 20, dimm->nr_pages); in skx_get_nvdimm_info()
434 imc->src_id, imc->lmc, chan, dimmno); in skx_get_nvdimm_info()
439 int skx_register_mci(struct skx_imc *imc, struct pci_dev *pdev, in skx_register_mci() argument
456 mci = edac_mc_alloc(imc->mc, ARRAY_SIZE(layers), layers, in skx_register_mci()
462 edac_dbg(0, "MC#%d: mci = %p\n", imc->mc, mci); in skx_register_mci()
465 imc->mci = mci; in skx_register_mci()
467 pvt->imc = imc; in skx_register_mci()
470 imc->node_id, imc->lmc); in skx_register_mci()
505 imc->mci = NULL; in skx_register_mci()
509 static void skx_unregister_mci(struct skx_imc *imc) in skx_unregister_mci() argument
511 struct mem_ctl_info *mci = imc->mci; in skx_unregister_mci()
516 edac_dbg(0, "MC%d: mci = %p\n", imc->mc, mci); in skx_unregister_mci()
605 res->socket, res->imc, res->rank, in skx_mce_output_error()
661 mci = res.dev->imc[res.imc].mci; in skx_mce_check_error()
700 if (d->imc[i].mci) in skx_remove()
701 skx_unregister_mci(&d->imc[i]); in skx_remove()
703 if (d->imc[i].mdev) in skx_remove()
704 pci_dev_put(d->imc[i].mdev); in skx_remove()
706 if (d->imc[i].mbase) in skx_remove()
707 iounmap(d->imc[i].mbase); in skx_remove()
710 if (d->imc[i].chan[j].cdev) in skx_remove()
711 pci_dev_put(d->imc[i].chan[j].cdev); in skx_remove()