Lines Matching refs:mci
46 #define sbridge_mc_printk(mci, level, fmt, arg...) \ argument
47 edac_mc_chipset_printk(mci, level, "sbridge", fmt, ##arg)
310 struct mem_ctl_info *mci; member
849 static int get_dimm_config(struct mem_ctl_info *mci) in get_dimm_config() argument
851 struct sbridge_pvt *pvt = mci->pvt_info; in get_dimm_config()
916 dimm = EDAC_DIMM_PTR(mci->layers, mci->dimms, mci->n_layers, in get_dimm_config()
961 static void get_memory_layout(const struct mem_ctl_info *mci) in get_memory_layout() argument
963 struct sbridge_pvt *pvt = mci->pvt_info; in get_memory_layout()
1127 return sbridge_dev->mci; in get_mci_for_node_id()
1132 static int get_memory_error_data(struct mem_ctl_info *mci, in get_memory_error_data() argument
1140 struct sbridge_pvt *pvt = mci->pvt_info; in get_memory_error_data()
1290 mci = new_mci; in get_memory_error_data()
1291 pvt = mci->pvt_info; in get_memory_error_data()
1603 static int sbridge_mci_bind_devs(struct mem_ctl_info *mci, in sbridge_mci_bind_devs() argument
1606 struct sbridge_pvt *pvt = mci->pvt_info; in sbridge_mci_bind_devs()
1677 static int ibridge_mci_bind_devs(struct mem_ctl_info *mci, in ibridge_mci_bind_devs() argument
1680 struct sbridge_pvt *pvt = mci->pvt_info; in ibridge_mci_bind_devs()
1783 static int haswell_mci_bind_devs(struct mem_ctl_info *mci, in haswell_mci_bind_devs() argument
1786 struct sbridge_pvt *pvt = mci->pvt_info; in haswell_mci_bind_devs()
1883 static int broadwell_mci_bind_devs(struct mem_ctl_info *mci, in broadwell_mci_bind_devs() argument
1886 struct sbridge_pvt *pvt = mci->pvt_info; in broadwell_mci_bind_devs()
1969 static void sbridge_mce_output_error(struct mem_ctl_info *mci, in sbridge_mce_output_error() argument
1973 struct sbridge_pvt *pvt = mci->pvt_info; in sbridge_mce_output_error()
2048 rc = get_memory_error_data(mci, m->addr, &socket, in sbridge_mce_output_error()
2057 mci = new_mci; in sbridge_mce_output_error()
2058 pvt = mci->pvt_info; in sbridge_mce_output_error()
2097 edac_mc_handle_error(tp_event, mci, core_err_cnt, in sbridge_mce_output_error()
2103 edac_mc_handle_error(tp_event, mci, core_err_cnt, 0, 0, 0, in sbridge_mce_output_error()
2113 static void sbridge_check_error(struct mem_ctl_info *mci) in sbridge_check_error() argument
2115 struct sbridge_pvt *pvt = mci->pvt_info; in sbridge_check_error()
2157 sbridge_mce_output_error(mci, &pvt->mce_outentry[i]); in sbridge_check_error()
2172 struct mem_ctl_info *mci; in sbridge_mce_check_error() local
2179 mci = get_mci_for_node_id(mce->socketid); in sbridge_mce_check_error()
2180 if (!mci) in sbridge_mce_check_error()
2182 pvt = mci->pvt_info; in sbridge_mce_check_error()
2198 sbridge_mc_printk(mci, KERN_DEBUG, "HANDLING MCE MEMORY ERROR\n"); in sbridge_mce_check_error()
2200 sbridge_mc_printk(mci, KERN_DEBUG, "CPU %d: Machine Check %s: %Lx " in sbridge_mce_check_error()
2203 sbridge_mc_printk(mci, KERN_DEBUG, "TSC %llx ", mce->tsc); in sbridge_mce_check_error()
2204 sbridge_mc_printk(mci, KERN_DEBUG, "ADDR %llx ", mce->addr); in sbridge_mce_check_error()
2205 sbridge_mc_printk(mci, KERN_DEBUG, "MISC %llx ", mce->misc); in sbridge_mce_check_error()
2207 sbridge_mc_printk(mci, KERN_DEBUG, "PROCESSOR %u:%x TIME %llu SOCKET " in sbridge_mce_check_error()
2225 sbridge_check_error(mci); in sbridge_mce_check_error()
2241 struct mem_ctl_info *mci = sbridge_dev->mci; in sbridge_unregister_mci() local
2244 if (unlikely(!mci || !mci->pvt_info)) { in sbridge_unregister_mci()
2251 pvt = mci->pvt_info; in sbridge_unregister_mci()
2254 mci, &sbridge_dev->pdev[0]->dev); in sbridge_unregister_mci()
2257 edac_mc_del_mc(mci->pdev); in sbridge_unregister_mci()
2259 edac_dbg(1, "%s: free mci struct\n", mci->ctl_name); in sbridge_unregister_mci()
2260 kfree(mci->ctl_name); in sbridge_unregister_mci()
2261 edac_mc_free(mci); in sbridge_unregister_mci()
2262 sbridge_dev->mci = NULL; in sbridge_unregister_mci()
2267 struct mem_ctl_info *mci; in sbridge_register_mci() local
2285 mci = edac_mc_alloc(sbridge_dev->mc, ARRAY_SIZE(layers), layers, in sbridge_register_mci()
2288 if (unlikely(!mci)) in sbridge_register_mci()
2292 mci, &pdev->dev); in sbridge_register_mci()
2294 pvt = mci->pvt_info; in sbridge_register_mci()
2299 sbridge_dev->mci = mci; in sbridge_register_mci()
2301 mci->mtype_cap = MEM_FLAG_DDR3; in sbridge_register_mci()
2302 mci->edac_ctl_cap = EDAC_FLAG_NONE; in sbridge_register_mci()
2303 mci->edac_cap = EDAC_FLAG_NONE; in sbridge_register_mci()
2304 mci->mod_name = "sbridge_edac.c"; in sbridge_register_mci()
2305 mci->mod_ver = SBRIDGE_REVISION; in sbridge_register_mci()
2306 mci->dev_name = pci_name(pdev); in sbridge_register_mci()
2307 mci->ctl_page_to_phys = NULL; in sbridge_register_mci()
2310 mci->edac_check = sbridge_check_error; in sbridge_register_mci()
2326 mci->ctl_name = kasprintf(GFP_KERNEL, "Ivy Bridge Socket#%d", mci->mc_idx); in sbridge_register_mci()
2329 rc = ibridge_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2345 mci->ctl_name = kasprintf(GFP_KERNEL, "Sandy Bridge Socket#%d", mci->mc_idx); in sbridge_register_mci()
2348 rc = sbridge_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2364 mci->ctl_name = kasprintf(GFP_KERNEL, "Haswell Socket#%d", mci->mc_idx); in sbridge_register_mci()
2367 rc = haswell_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2383 mci->ctl_name = kasprintf(GFP_KERNEL, "Broadwell Socket#%d", mci->mc_idx); in sbridge_register_mci()
2386 rc = broadwell_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2393 get_dimm_config(mci); in sbridge_register_mci()
2394 get_memory_layout(mci); in sbridge_register_mci()
2397 mci->pdev = &pdev->dev; in sbridge_register_mci()
2400 if (unlikely(edac_mc_add_mc(mci))) { in sbridge_register_mci()
2409 kfree(mci->ctl_name); in sbridge_register_mci()
2410 edac_mc_free(mci); in sbridge_register_mci()
2411 sbridge_dev->mci = NULL; in sbridge_register_mci()