Lines Matching refs:mci
219 static int set_scrub_rate(struct mem_ctl_info *mci, u32 bw) in set_scrub_rate() argument
221 struct amd64_pvt *pvt = mci->pvt_info; in set_scrub_rate()
238 static int get_scrub_rate(struct mem_ctl_info *mci) in get_scrub_rate() argument
240 struct amd64_pvt *pvt = mci->pvt_info; in get_scrub_rate()
291 static struct mem_ctl_info *find_mc_by_sys_addr(struct mem_ctl_info *mci, in find_mc_by_sys_addr() argument
302 pvt = mci->pvt_info; in find_mc_by_sys_addr()
427 static int input_addr_to_csrow(struct mem_ctl_info *mci, u64 input_addr) in input_addr_to_csrow() argument
433 pvt = mci->pvt_info; in input_addr_to_csrow()
473 int amd64_get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base, in amd64_get_dram_hole_info() argument
476 struct amd64_pvt *pvt = mci->pvt_info; in amd64_get_dram_hole_info()
558 static u64 sys_addr_to_dram_addr(struct mem_ctl_info *mci, u64 sys_addr) in sys_addr_to_dram_addr() argument
560 struct amd64_pvt *pvt = mci->pvt_info; in sys_addr_to_dram_addr()
566 ret = amd64_get_dram_hole_info(mci, &hole_base, &hole_offset, in sys_addr_to_dram_addr()
614 static u64 dram_addr_to_input_addr(struct mem_ctl_info *mci, u64 dram_addr) in dram_addr_to_input_addr() argument
620 pvt = mci->pvt_info; in dram_addr_to_input_addr()
641 static u64 sys_addr_to_input_addr(struct mem_ctl_info *mci, u64 sys_addr) in sys_addr_to_input_addr() argument
646 dram_addr_to_input_addr(mci, sys_addr_to_dram_addr(mci, sys_addr)); in sys_addr_to_input_addr()
670 static int sys_addr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr) in sys_addr_to_csrow() argument
674 csrow = input_addr_to_csrow(mci, sys_addr_to_input_addr(mci, sys_addr)); in sys_addr_to_csrow()
677 amd64_mc_err(mci, "Failed to translate InputAddr to csrow for " in sys_addr_to_csrow()
921 struct mem_ctl_info *mci; in get_error_address() local
926 mci = edac_mc_find(mce_nid); in get_error_address()
927 if (!mci) in get_error_address()
930 pvt = mci->pvt_info; in get_error_address()
1053 static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, in k8_map_sysaddr_to_csrow() argument
1056 struct amd64_pvt *pvt = mci->pvt_info; in k8_map_sysaddr_to_csrow()
1064 err->src_mci = find_mc_by_sys_addr(mci, sys_addr); in k8_map_sysaddr_to_csrow()
1066 amd64_mc_err(mci, "failed to map error addr 0x%lx to a node\n", in k8_map_sysaddr_to_csrow()
1081 err->channel = get_channel_from_ecc_syndrome(mci, err->syndrome); in k8_map_sysaddr_to_csrow()
1526 struct mem_ctl_info *mci; in f1x_lookup_addr_in_dct() local
1532 mci = edac_mc_find(nid); in f1x_lookup_addr_in_dct()
1533 if (!mci) in f1x_lookup_addr_in_dct()
1536 pvt = mci->pvt_info; in f1x_lookup_addr_in_dct()
1836 static void f1x_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, in f1x_map_sysaddr_to_csrow() argument
1839 struct amd64_pvt *pvt = mci->pvt_info; in f1x_map_sysaddr_to_csrow()
1855 err->channel = get_channel_from_ecc_syndrome(mci, err->syndrome); in f1x_map_sysaddr_to_csrow()
2133 static int get_channel_from_ecc_syndrome(struct mem_ctl_info *mci, u16 syndrome) in get_channel_from_ecc_syndrome() argument
2135 struct amd64_pvt *pvt = mci->pvt_info; in get_channel_from_ecc_syndrome()
2154 static void __log_bus_error(struct mem_ctl_info *mci, struct err_info *err, in __log_bus_error() argument
2187 edac_mc_handle_error(err_type, mci, 1, in __log_bus_error()
2195 struct mem_ctl_info *mci; in decode_bus_error() local
2203 mci = edac_mc_find(node_id); in decode_bus_error()
2204 if (!mci) in decode_bus_error()
2207 pvt = mci->pvt_info; in decode_bus_error()
2224 pvt->ops->map_sysaddr_to_csrow(mci, sys_addr, &err); in decode_bus_error()
2226 __log_bus_error(mci, &err, ecc_type); in decode_bus_error()
2416 static int init_csrows(struct mem_ctl_info *mci) in init_csrows() argument
2418 struct amd64_pvt *pvt = mci->pvt_info; in init_csrows()
2447 csrow = mci->csrows[i]; in init_csrows()
2684 static void setup_mci_misc_attrs(struct mem_ctl_info *mci, in setup_mci_misc_attrs() argument
2687 struct amd64_pvt *pvt = mci->pvt_info; in setup_mci_misc_attrs()
2689 mci->mtype_cap = MEM_FLAG_DDR2 | MEM_FLAG_RDDR2; in setup_mci_misc_attrs()
2690 mci->edac_ctl_cap = EDAC_FLAG_NONE; in setup_mci_misc_attrs()
2693 mci->edac_ctl_cap |= EDAC_FLAG_SECDED; in setup_mci_misc_attrs()
2696 mci->edac_ctl_cap |= EDAC_FLAG_S4ECD4ED; in setup_mci_misc_attrs()
2698 mci->edac_cap = determine_edac_cap(pvt); in setup_mci_misc_attrs()
2699 mci->mod_name = EDAC_MOD_STR; in setup_mci_misc_attrs()
2700 mci->mod_ver = EDAC_AMD64_VERSION; in setup_mci_misc_attrs()
2701 mci->ctl_name = fam->ctl_name; in setup_mci_misc_attrs()
2702 mci->dev_name = pci_name(pvt->F2); in setup_mci_misc_attrs()
2703 mci->ctl_page_to_phys = NULL; in setup_mci_misc_attrs()
2706 mci->set_sdram_scrub_rate = set_scrub_rate; in setup_mci_misc_attrs()
2707 mci->get_sdram_scrub_rate = get_scrub_rate; in setup_mci_misc_attrs()
2785 struct mem_ctl_info *mci = NULL; in init_one_instance() local
2834 mci = edac_mc_alloc(nid, ARRAY_SIZE(layers), layers, 0); in init_one_instance()
2835 if (!mci) in init_one_instance()
2838 mci->pvt_info = pvt; in init_one_instance()
2839 mci->pdev = &pvt->F2->dev; in init_one_instance()
2841 setup_mci_misc_attrs(mci, fam_type); in init_one_instance()
2843 if (init_csrows(mci)) in init_one_instance()
2844 mci->edac_cap = EDAC_FLAG_NONE; in init_one_instance()
2847 if (edac_mc_add_mc_with_groups(mci, amd64_edac_attr_groups)) { in init_one_instance()
2863 edac_mc_free(mci); in init_one_instance()
2926 struct mem_ctl_info *mci; in remove_one_instance() local
2932 mci = find_mci_by_dev(&pdev->dev); in remove_one_instance()
2933 WARN_ON(!mci); in remove_one_instance()
2936 mci = edac_mc_del_mc(&pdev->dev); in remove_one_instance()
2937 if (!mci) in remove_one_instance()
2940 pvt = mci->pvt_info; in remove_one_instance()
2954 mci->pvt_info = NULL; in remove_one_instance()
2957 edac_mc_free(mci); in remove_one_instance()
2987 struct mem_ctl_info *mci; in setup_pci_device() local
2993 mci = edac_mc_find(0); in setup_pci_device()
2994 if (!mci) in setup_pci_device()
2997 pvt = mci->pvt_info; in setup_pci_device()