nr_pages <<= 20 - PAGE_SHIFT;
edac_dbg(0, "csrow: %d, channel: %d, DBAM idx: %d\n",
- - csrow_nr_orig, dct, cs_mode);
+ + csrow_nr, dct, cs_mode);
+ edac_dbg(0, "nr_pages/channel: %u\n", nr_pages);
+
+ return nr_pages;
+}
+
- static int init_csrows_df(struct mem_ctl_info *mci)
+ +static u32 umc_get_csrow_nr_pages(struct amd64_pvt *pvt, u8 dct, int csrow_nr_orig)
+ +{
+ + int csrow_nr = csrow_nr_orig;
+ + u32 cs_mode, nr_pages;
+ +
+ + cs_mode = umc_get_cs_mode(csrow_nr >> 1, dct, pvt);
+ +
+ + nr_pages = umc_addr_mask_to_cs_size(pvt, dct, cs_mode, csrow_nr);
+ + nr_pages <<= 20 - PAGE_SHIFT;
+ +
+ + edac_dbg(0, "csrow: %d, channel: %d, cs_mode %d\n",
+ + csrow_nr_orig, dct, cs_mode);
+ edac_dbg(0, "nr_pages/channel: %u\n", nr_pages);
+
+ return nr_pages;
+ }
+
-static int init_csrows_df(struct mem_ctl_info *mci)
+ +static void umc_init_csrows(struct mem_ctl_info *mci)
{
struct amd64_pvt *pvt = mci->pvt_info;
enum edac_type edac_mode = EDAC_NONE;