Lines Matching refs:mci

212 static int set_scrub_rate(struct mem_ctl_info *mci, u32 bw)  in set_scrub_rate()  argument
214 struct amd64_pvt *pvt = mci->pvt_info; in set_scrub_rate()
227 static int get_scrub_rate(struct mem_ctl_info *mci) in get_scrub_rate() argument
229 struct amd64_pvt *pvt = mci->pvt_info; in get_scrub_rate()
276 static struct mem_ctl_info *find_mc_by_sys_addr(struct mem_ctl_info *mci, in find_mc_by_sys_addr() argument
287 pvt = mci->pvt_info; in find_mc_by_sys_addr()
412 static int input_addr_to_csrow(struct mem_ctl_info *mci, u64 input_addr) in input_addr_to_csrow() argument
418 pvt = mci->pvt_info; in input_addr_to_csrow()
458 int amd64_get_dram_hole_info(struct mem_ctl_info *mci, u64 *hole_base, in amd64_get_dram_hole_info() argument
461 struct amd64_pvt *pvt = mci->pvt_info; in amd64_get_dram_hole_info()
543 static u64 sys_addr_to_dram_addr(struct mem_ctl_info *mci, u64 sys_addr) in sys_addr_to_dram_addr() argument
545 struct amd64_pvt *pvt = mci->pvt_info; in sys_addr_to_dram_addr()
551 ret = amd64_get_dram_hole_info(mci, &hole_base, &hole_offset, in sys_addr_to_dram_addr()
599 static u64 dram_addr_to_input_addr(struct mem_ctl_info *mci, u64 dram_addr) in dram_addr_to_input_addr() argument
605 pvt = mci->pvt_info; in dram_addr_to_input_addr()
626 static u64 sys_addr_to_input_addr(struct mem_ctl_info *mci, u64 sys_addr) in sys_addr_to_input_addr() argument
631 dram_addr_to_input_addr(mci, sys_addr_to_dram_addr(mci, sys_addr)); in sys_addr_to_input_addr()
655 static int sys_addr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr) in sys_addr_to_csrow() argument
659 csrow = input_addr_to_csrow(mci, sys_addr_to_input_addr(mci, sys_addr)); in sys_addr_to_csrow()
662 amd64_mc_err(mci, "Failed to translate InputAddr to csrow for " in sys_addr_to_csrow()
906 struct mem_ctl_info *mci; in get_error_address() local
911 mci = edac_mc_find(mce_nid); in get_error_address()
912 if (!mci) in get_error_address()
915 pvt = mci->pvt_info; in get_error_address()
1038 static void k8_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, in k8_map_sysaddr_to_csrow() argument
1041 struct amd64_pvt *pvt = mci->pvt_info; in k8_map_sysaddr_to_csrow()
1049 err->src_mci = find_mc_by_sys_addr(mci, sys_addr); in k8_map_sysaddr_to_csrow()
1051 amd64_mc_err(mci, "failed to map error addr 0x%lx to a node\n", in k8_map_sysaddr_to_csrow()
1066 err->channel = get_channel_from_ecc_syndrome(mci, err->syndrome); in k8_map_sysaddr_to_csrow()
1511 struct mem_ctl_info *mci; in f1x_lookup_addr_in_dct() local
1517 mci = edac_mc_find(nid); in f1x_lookup_addr_in_dct()
1518 if (!mci) in f1x_lookup_addr_in_dct()
1521 pvt = mci->pvt_info; in f1x_lookup_addr_in_dct()
1821 static void f1x_map_sysaddr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr, in f1x_map_sysaddr_to_csrow() argument
1824 struct amd64_pvt *pvt = mci->pvt_info; in f1x_map_sysaddr_to_csrow()
1840 err->channel = get_channel_from_ecc_syndrome(mci, err->syndrome); in f1x_map_sysaddr_to_csrow()
2118 static int get_channel_from_ecc_syndrome(struct mem_ctl_info *mci, u16 syndrome) in get_channel_from_ecc_syndrome() argument
2120 struct amd64_pvt *pvt = mci->pvt_info; in get_channel_from_ecc_syndrome()
2139 static void __log_bus_error(struct mem_ctl_info *mci, struct err_info *err, in __log_bus_error() argument
2172 edac_mc_handle_error(err_type, mci, 1, in __log_bus_error()
2180 struct mem_ctl_info *mci; in decode_bus_error() local
2188 mci = edac_mc_find(node_id); in decode_bus_error()
2189 if (!mci) in decode_bus_error()
2192 pvt = mci->pvt_info; in decode_bus_error()
2209 pvt->ops->map_sysaddr_to_csrow(mci, sys_addr, &err); in decode_bus_error()
2211 __log_bus_error(mci, &err, ecc_type); in decode_bus_error()
2401 static int init_csrows(struct mem_ctl_info *mci) in init_csrows() argument
2403 struct amd64_pvt *pvt = mci->pvt_info; in init_csrows()
2432 csrow = mci->csrows[i]; in init_csrows()
2669 static void setup_mci_misc_attrs(struct mem_ctl_info *mci, in setup_mci_misc_attrs() argument
2672 struct amd64_pvt *pvt = mci->pvt_info; in setup_mci_misc_attrs()
2674 mci->mtype_cap = MEM_FLAG_DDR2 | MEM_FLAG_RDDR2; in setup_mci_misc_attrs()
2675 mci->edac_ctl_cap = EDAC_FLAG_NONE; in setup_mci_misc_attrs()
2678 mci->edac_ctl_cap |= EDAC_FLAG_SECDED; in setup_mci_misc_attrs()
2681 mci->edac_ctl_cap |= EDAC_FLAG_S4ECD4ED; in setup_mci_misc_attrs()
2683 mci->edac_cap = determine_edac_cap(pvt); in setup_mci_misc_attrs()
2684 mci->mod_name = EDAC_MOD_STR; in setup_mci_misc_attrs()
2685 mci->mod_ver = EDAC_AMD64_VERSION; in setup_mci_misc_attrs()
2686 mci->ctl_name = fam->ctl_name; in setup_mci_misc_attrs()
2687 mci->dev_name = pci_name(pvt->F2); in setup_mci_misc_attrs()
2688 mci->ctl_page_to_phys = NULL; in setup_mci_misc_attrs()
2691 mci->set_sdram_scrub_rate = set_scrub_rate; in setup_mci_misc_attrs()
2692 mci->get_sdram_scrub_rate = get_scrub_rate; in setup_mci_misc_attrs()
2770 struct mem_ctl_info *mci = NULL; in init_one_instance() local
2819 mci = edac_mc_alloc(nid, ARRAY_SIZE(layers), layers, 0); in init_one_instance()
2820 if (!mci) in init_one_instance()
2823 mci->pvt_info = pvt; in init_one_instance()
2824 mci->pdev = &pvt->F2->dev; in init_one_instance()
2826 setup_mci_misc_attrs(mci, fam_type); in init_one_instance()
2828 if (init_csrows(mci)) in init_one_instance()
2829 mci->edac_cap = EDAC_FLAG_NONE; in init_one_instance()
2832 if (edac_mc_add_mc_with_groups(mci, amd64_edac_attr_groups)) { in init_one_instance()
2848 edac_mc_free(mci); in init_one_instance()
2911 struct mem_ctl_info *mci; in remove_one_instance() local
2917 mci = find_mci_by_dev(&pdev->dev); in remove_one_instance()
2918 WARN_ON(!mci); in remove_one_instance()
2921 mci = edac_mc_del_mc(&pdev->dev); in remove_one_instance()
2922 if (!mci) in remove_one_instance()
2925 pvt = mci->pvt_info; in remove_one_instance()
2939 mci->pvt_info = NULL; in remove_one_instance()
2942 edac_mc_free(mci); in remove_one_instance()
2971 struct mem_ctl_info *mci; in setup_pci_device() local
2977 mci = edac_mc_find(0); in setup_pci_device()
2978 if (!mci) in setup_pci_device()
2981 pvt = mci->pvt_info; in setup_pci_device()