aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/mpc85xx_edac.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/edac/mpc85xx_edac.c')
-rw-r--r--drivers/edac/mpc85xx_edac.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c
index 73464a62adf..fb92916d087 100644
--- a/drivers/edac/mpc85xx_edac.c
+++ b/drivers/edac/mpc85xx_edac.c
@@ -883,6 +883,7 @@ static void __devinit mpc85xx_init_csrows(struct mem_ctl_info *mci)
883{ 883{
884 struct mpc85xx_mc_pdata *pdata = mci->pvt_info; 884 struct mpc85xx_mc_pdata *pdata = mci->pvt_info;
885 struct csrow_info *csrow; 885 struct csrow_info *csrow;
886 struct dimm_info *dimm;
886 u32 sdram_ctl; 887 u32 sdram_ctl;
887 u32 sdtype; 888 u32 sdtype;
888 enum mem_type mtype; 889 enum mem_type mtype;
@@ -929,6 +930,8 @@ static void __devinit mpc85xx_init_csrows(struct mem_ctl_info *mci)
929 u32 end; 930 u32 end;
930 931
931 csrow = &mci->csrows[index]; 932 csrow = &mci->csrows[index];
933 dimm = csrow->channels[0].dimm;
934
932 cs_bnds = in_be32(pdata->mc_vbase + MPC85XX_MC_CS_BNDS_0 + 935 cs_bnds = in_be32(pdata->mc_vbase + MPC85XX_MC_CS_BNDS_0 +
933 (index * MPC85XX_MC_CS_BNDS_OFS)); 936 (index * MPC85XX_MC_CS_BNDS_OFS));
934 937
@@ -945,12 +948,12 @@ static void __devinit mpc85xx_init_csrows(struct mem_ctl_info *mci)
945 csrow->first_page = start; 948 csrow->first_page = start;
946 csrow->last_page = end; 949 csrow->last_page = end;
947 csrow->nr_pages = end + 1 - start; 950 csrow->nr_pages = end + 1 - start;
948 csrow->grain = 8; 951 dimm->grain = 8;
949 csrow->mtype = mtype; 952 dimm->mtype = mtype;
950 csrow->dtype = DEV_UNKNOWN; 953 dimm->dtype = DEV_UNKNOWN;
951 if (sdram_ctl & DSC_X32_EN) 954 if (sdram_ctl & DSC_X32_EN)
952 csrow->dtype = DEV_X32; 955 dimm->dtype = DEV_X32;
953 csrow->edac_mode = EDAC_SECDED; 956 dimm->edac_mode = EDAC_SECDED;
954 } 957 }
955} 958}
956 959