Lines Matching refs:mci

46 #define sbridge_mc_printk(mci, level, fmt, arg...)		\  argument
47 edac_mc_chipset_printk(mci, level, "sbridge", fmt, ##arg)
308 struct mem_ctl_info *mci; member
928 static int get_dimm_config(struct mem_ctl_info *mci) in get_dimm_config() argument
930 struct sbridge_pvt *pvt = mci->pvt_info; in get_dimm_config()
997 dimm = EDAC_DIMM_PTR(mci->layers, mci->dimms, mci->n_layers, in get_dimm_config()
1032 static void get_memory_layout(const struct mem_ctl_info *mci) in get_memory_layout() argument
1034 struct sbridge_pvt *pvt = mci->pvt_info; in get_memory_layout()
1198 return sbridge_dev->mci; in get_mci_for_node_id()
1203 static int get_memory_error_data(struct mem_ctl_info *mci, in get_memory_error_data() argument
1211 struct sbridge_pvt *pvt = mci->pvt_info; in get_memory_error_data()
1367 mci = new_mci; in get_memory_error_data()
1368 pvt = mci->pvt_info; in get_memory_error_data()
1680 static int sbridge_mci_bind_devs(struct mem_ctl_info *mci, in sbridge_mci_bind_devs() argument
1683 struct sbridge_pvt *pvt = mci->pvt_info; in sbridge_mci_bind_devs()
1754 static int ibridge_mci_bind_devs(struct mem_ctl_info *mci, in ibridge_mci_bind_devs() argument
1757 struct sbridge_pvt *pvt = mci->pvt_info; in ibridge_mci_bind_devs()
1847 static int haswell_mci_bind_devs(struct mem_ctl_info *mci, in haswell_mci_bind_devs() argument
1850 struct sbridge_pvt *pvt = mci->pvt_info; in haswell_mci_bind_devs()
1944 static int broadwell_mci_bind_devs(struct mem_ctl_info *mci, in broadwell_mci_bind_devs() argument
1947 struct sbridge_pvt *pvt = mci->pvt_info; in broadwell_mci_bind_devs()
2045 static void sbridge_mce_output_error(struct mem_ctl_info *mci, in sbridge_mce_output_error() argument
2049 struct sbridge_pvt *pvt = mci->pvt_info; in sbridge_mce_output_error()
2124 rc = get_memory_error_data(mci, m->addr, &socket, &ha, in sbridge_mce_output_error()
2133 mci = new_mci; in sbridge_mce_output_error()
2134 pvt = mci->pvt_info; in sbridge_mce_output_error()
2173 edac_mc_handle_error(tp_event, mci, core_err_cnt, in sbridge_mce_output_error()
2179 edac_mc_handle_error(tp_event, mci, core_err_cnt, 0, 0, 0, in sbridge_mce_output_error()
2189 static void sbridge_check_error(struct mem_ctl_info *mci) in sbridge_check_error() argument
2191 struct sbridge_pvt *pvt = mci->pvt_info; in sbridge_check_error()
2233 sbridge_mce_output_error(mci, &pvt->mce_outentry[i]); in sbridge_check_error()
2248 struct mem_ctl_info *mci; in sbridge_mce_check_error() local
2255 mci = get_mci_for_node_id(mce->socketid); in sbridge_mce_check_error()
2256 if (!mci) in sbridge_mce_check_error()
2258 pvt = mci->pvt_info; in sbridge_mce_check_error()
2274 sbridge_mc_printk(mci, KERN_DEBUG, "HANDLING MCE MEMORY ERROR\n"); in sbridge_mce_check_error()
2276 sbridge_mc_printk(mci, KERN_DEBUG, "CPU %d: Machine Check %s: %Lx " in sbridge_mce_check_error()
2279 sbridge_mc_printk(mci, KERN_DEBUG, "TSC %llx ", mce->tsc); in sbridge_mce_check_error()
2280 sbridge_mc_printk(mci, KERN_DEBUG, "ADDR %llx ", mce->addr); in sbridge_mce_check_error()
2281 sbridge_mc_printk(mci, KERN_DEBUG, "MISC %llx ", mce->misc); in sbridge_mce_check_error()
2283 sbridge_mc_printk(mci, KERN_DEBUG, "PROCESSOR %u:%x TIME %llu SOCKET " in sbridge_mce_check_error()
2301 sbridge_check_error(mci); in sbridge_mce_check_error()
2317 struct mem_ctl_info *mci = sbridge_dev->mci; in sbridge_unregister_mci() local
2320 if (unlikely(!mci || !mci->pvt_info)) { in sbridge_unregister_mci()
2327 pvt = mci->pvt_info; in sbridge_unregister_mci()
2330 mci, &sbridge_dev->pdev[0]->dev); in sbridge_unregister_mci()
2333 edac_mc_del_mc(mci->pdev); in sbridge_unregister_mci()
2335 edac_dbg(1, "%s: free mci struct\n", mci->ctl_name); in sbridge_unregister_mci()
2336 kfree(mci->ctl_name); in sbridge_unregister_mci()
2337 edac_mc_free(mci); in sbridge_unregister_mci()
2338 sbridge_dev->mci = NULL; in sbridge_unregister_mci()
2343 struct mem_ctl_info *mci; in sbridge_register_mci() local
2361 mci = edac_mc_alloc(sbridge_dev->mc, ARRAY_SIZE(layers), layers, in sbridge_register_mci()
2364 if (unlikely(!mci)) in sbridge_register_mci()
2368 mci, &pdev->dev); in sbridge_register_mci()
2370 pvt = mci->pvt_info; in sbridge_register_mci()
2375 sbridge_dev->mci = mci; in sbridge_register_mci()
2377 mci->mtype_cap = MEM_FLAG_DDR3; in sbridge_register_mci()
2378 mci->edac_ctl_cap = EDAC_FLAG_NONE; in sbridge_register_mci()
2379 mci->edac_cap = EDAC_FLAG_NONE; in sbridge_register_mci()
2380 mci->mod_name = "sbridge_edac.c"; in sbridge_register_mci()
2381 mci->mod_ver = SBRIDGE_REVISION; in sbridge_register_mci()
2382 mci->dev_name = pci_name(pdev); in sbridge_register_mci()
2383 mci->ctl_page_to_phys = NULL; in sbridge_register_mci()
2386 mci->edac_check = sbridge_check_error; in sbridge_register_mci()
2403 mci->ctl_name = kasprintf(GFP_KERNEL, "Ivy Bridge Socket#%d", mci->mc_idx); in sbridge_register_mci()
2406 rc = ibridge_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2423 mci->ctl_name = kasprintf(GFP_KERNEL, "Sandy Bridge Socket#%d", mci->mc_idx); in sbridge_register_mci()
2426 rc = sbridge_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2443 mci->ctl_name = kasprintf(GFP_KERNEL, "Haswell Socket#%d", mci->mc_idx); in sbridge_register_mci()
2446 rc = haswell_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2463 mci->ctl_name = kasprintf(GFP_KERNEL, "Broadwell Socket#%d", mci->mc_idx); in sbridge_register_mci()
2466 rc = broadwell_mci_bind_devs(mci, sbridge_dev); in sbridge_register_mci()
2473 get_dimm_config(mci); in sbridge_register_mci()
2474 get_memory_layout(mci); in sbridge_register_mci()
2477 mci->pdev = &pdev->dev; in sbridge_register_mci()
2480 if (unlikely(edac_mc_add_mc(mci))) { in sbridge_register_mci()
2489 kfree(mci->ctl_name); in sbridge_register_mci()
2490 edac_mc_free(mci); in sbridge_register_mci()
2491 sbridge_dev->mci = NULL; in sbridge_register_mci()