Lines Matching refs:umc

217 	if (pvt->umc) {  in __set_scrub_rate()
259 if (pvt->umc) { in get_scrub_rate()
1002 if (pvt->umc) { in determine_edac_cap()
1006 if (!(pvt->umc[i].sdp_ctrl & UMC_SDP_INIT)) in determine_edac_cap()
1012 if (pvt->umc[i].umc_cfg & BIT(12)) in determine_edac_cap()
1112 struct amd64_umc *umc; in __dump_misc_regs_df() local
1117 umc = &pvt->umc[i]; in __dump_misc_regs_df()
1119 edac_dbg(1, "UMC%d DIMM cfg: 0x%x\n", i, umc->dimm_cfg); in __dump_misc_regs_df()
1120 edac_dbg(1, "UMC%d UMC cfg: 0x%x\n", i, umc->umc_cfg); in __dump_misc_regs_df()
1121 edac_dbg(1, "UMC%d SDP ctrl: 0x%x\n", i, umc->sdp_ctrl); in __dump_misc_regs_df()
1122 edac_dbg(1, "UMC%d ECC ctrl: 0x%x\n", i, umc->ecc_ctrl); in __dump_misc_regs_df()
1129 edac_dbg(1, "UMC%d UMC cap high: 0x%x\n", i, umc->umc_cap_hi); in __dump_misc_regs_df()
1132 i, (umc->umc_cap_hi & BIT(30)) ? "yes" : "no", in __dump_misc_regs_df()
1133 (umc->umc_cap_hi & BIT(31)) ? "yes" : "no"); in __dump_misc_regs_df()
1135 i, (umc->umc_cfg & BIT(12)) ? "yes" : "no"); in __dump_misc_regs_df()
1137 i, (umc->dimm_cfg & BIT(6)) ? "yes" : "no"); in __dump_misc_regs_df()
1139 i, (umc->dimm_cfg & BIT(7)) ? "yes" : "no"); in __dump_misc_regs_df()
1191 if (pvt->umc) in dump_misc_regs()
1213 int umc; in prep_chip_selects() local
1215 for_each_umc(umc) { in prep_chip_selects()
1216 pvt->csels[umc].b_cnt = 4; in prep_chip_selects()
1217 pvt->csels[umc].m_cnt = 2; in prep_chip_selects()
1234 int cs, umc; in read_umc_base_mask() local
1236 for_each_umc(umc) { in read_umc_base_mask()
1237 umc_base_reg = get_umc_base(umc) + UMCCH_BASE_ADDR; in read_umc_base_mask()
1238 umc_base_reg_sec = get_umc_base(umc) + UMCCH_BASE_ADDR_SEC; in read_umc_base_mask()
1240 for_each_chip_select(cs, umc, pvt) { in read_umc_base_mask()
1241 base = &pvt->csels[umc].csbases[cs]; in read_umc_base_mask()
1242 base_sec = &pvt->csels[umc].csbases_sec[cs]; in read_umc_base_mask()
1249 umc, cs, *base, base_reg); in read_umc_base_mask()
1253 umc, cs, *base_sec, base_reg_sec); in read_umc_base_mask()
1256 umc_mask_reg = get_umc_base(umc) + UMCCH_ADDR_MASK; in read_umc_base_mask()
1257 umc_mask_reg_sec = get_umc_base(umc) + UMCCH_ADDR_MASK_SEC; in read_umc_base_mask()
1259 for_each_chip_select_mask(cs, umc, pvt) { in read_umc_base_mask()
1260 mask = &pvt->csels[umc].csmasks[cs]; in read_umc_base_mask()
1261 mask_sec = &pvt->csels[umc].csmasks_sec[cs]; in read_umc_base_mask()
1268 umc, cs, *mask, mask_reg); in read_umc_base_mask()
1272 umc, cs, *mask_sec, mask_reg_sec); in read_umc_base_mask()
1286 if (pvt->umc) in read_dct_base_mask()
1332 if (pvt->umc) { in determine_memory_type()
1333 if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(5)) in determine_memory_type()
1335 else if ((pvt->umc[0].dimm_cfg | pvt->umc[1].dimm_cfg) & BIT(4)) in determine_memory_type()
1722 channels += !!(pvt->umc[i].sdp_ctrl & UMC_SDP_INIT); in f17_early_channel_count()
1856 static int f17_addr_mask_to_cs_size(struct amd64_pvt *pvt, u8 umc, in f17_addr_mask_to_cs_size() argument
1884 addr_mask_orig = pvt->csels[umc].csmasks_sec[dimm]; in f17_addr_mask_to_cs_size()
1886 addr_mask_orig = pvt->csels[umc].csmasks[dimm]; in f17_addr_mask_to_cs_size()
2944 if (pvt->umc) { in reserve_mc_sibling_devs()
2999 if (pvt->umc) { in free_mc_sibling_devs()
3012 if (pvt->umc) { in determine_ecc_sym_sz()
3017 if (pvt->umc[i].sdp_ctrl & UMC_SDP_INIT) { in determine_ecc_sym_sz()
3018 if (pvt->umc[i].ecc_ctrl & BIT(9)) { in determine_ecc_sym_sz()
3021 } else if (pvt->umc[i].ecc_ctrl & BIT(7)) { in determine_ecc_sym_sz()
3047 struct amd64_umc *umc; in __read_mc_regs_df() local
3054 umc = &pvt->umc[i]; in __read_mc_regs_df()
3056 amd_smn_read(nid, umc_base + UMCCH_DIMM_CFG, &umc->dimm_cfg); in __read_mc_regs_df()
3057 amd_smn_read(nid, umc_base + UMCCH_UMC_CFG, &umc->umc_cfg); in __read_mc_regs_df()
3058 amd_smn_read(nid, umc_base + UMCCH_SDP_CTRL, &umc->sdp_ctrl); in __read_mc_regs_df()
3059 amd_smn_read(nid, umc_base + UMCCH_ECC_CTRL, &umc->ecc_ctrl); in __read_mc_regs_df()
3060 amd_smn_read(nid, umc_base + UMCCH_UMC_CAP_HI, &umc->umc_cap_hi); in __read_mc_regs_df()
3089 if (pvt->umc) { in read_mc_regs()
3185 if (!pvt->umc) { in get_csrow_nr_pages()
3209 u8 umc, cs; in init_csrows_df() local
3224 for_each_umc(umc) { in init_csrows_df()
3225 for_each_chip_select(cs, umc, pvt) { in init_csrows_df()
3226 if (!csrow_enabled(cs, umc, pvt)) in init_csrows_df()
3230 dimm = mci->csrows[cs]->channels[umc]->dimm; in init_csrows_df()
3235 dimm->nr_pages = get_csrow_nr_pages(pvt, umc, cs); in init_csrows_df()
3260 if (pvt->umc) in init_csrows()
3492 struct amd64_umc *umc; in ecc_enabled() local
3495 umc = &pvt->umc[i]; in ecc_enabled()
3498 if (!(umc->sdp_ctrl & UMC_SDP_INIT)) in ecc_enabled()
3503 if (umc->umc_cap_hi & UMC_ECC_ENABLED) in ecc_enabled()
3540 if (pvt->umc[i].sdp_ctrl & UMC_SDP_INIT) { in f17h_determine_edac_ctl_cap()
3541 ecc_en &= !!(pvt->umc[i].umc_cap_hi & UMC_ECC_ENABLED); in f17h_determine_edac_ctl_cap()
3542 cpk_en &= !!(pvt->umc[i].umc_cap_hi & UMC_ECC_CHIPKILL_CAP); in f17h_determine_edac_ctl_cap()
3544 dev_x4 &= !!(pvt->umc[i].dimm_cfg & BIT(6)); in f17h_determine_edac_ctl_cap()
3545 dev_x16 &= !!(pvt->umc[i].dimm_cfg & BIT(7)); in f17h_determine_edac_ctl_cap()
3572 if (pvt->umc) { in setup_mci_misc_attrs()
3703 pvt->umc = kcalloc(fam_type->max_mcs, sizeof(struct amd64_umc), GFP_KERNEL); in hw_info_get()
3704 if (!pvt->umc) in hw_info_get()
3728 kfree(pvt->umc); in hw_info_put()