Skip to content

Commit

Permalink
EDAC, fsl_ddr: Add missing DDR DRAM types
Browse files Browse the repository at this point in the history
The compatible DDR controllers may support DDR, DDR2, DDR3, DDR4 DRAM.
An individual controller doesn't support all of them. The EDAC driver
reads SDRAM_CFG to determine which mode is configured.

Add DDR4 and drop the defines used only in the mtype assignment.

Signed-off-by: York Sun <[email protected]>
Cc: linux-edac <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Borislav Petkov <[email protected]>
  • Loading branch information
York Sun authored and suryasaimadhu committed Sep 1, 2016
1 parent d43a9fb commit 4e2c325
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
24 changes: 16 additions & 8 deletions drivers/edac/fsl_ddr_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -371,30 +371,36 @@ static void fsl_ddr_init_csrows(struct mem_ctl_info *mci)
sdtype = sdram_ctl & DSC_SDTYPE_MASK;
if (sdram_ctl & DSC_RD_EN) {
switch (sdtype) {
case DSC_SDTYPE_DDR:
case 0x02000000:
mtype = MEM_RDDR;
break;
case DSC_SDTYPE_DDR2:
case 0x03000000:
mtype = MEM_RDDR2;
break;
case DSC_SDTYPE_DDR3:
case 0x07000000:
mtype = MEM_RDDR3;
break;
case 0x05000000:
mtype = MEM_RDDR4;
break;
default:
mtype = MEM_UNKNOWN;
break;
}
} else {
switch (sdtype) {
case DSC_SDTYPE_DDR:
case 0x02000000:
mtype = MEM_DDR;
break;
case DSC_SDTYPE_DDR2:
case 0x03000000:
mtype = MEM_DDR2;
break;
case DSC_SDTYPE_DDR3:
case 0x07000000:
mtype = MEM_DDR3;
break;
case 0x05000000:
mtype = MEM_DDR4;
break;
default:
mtype = MEM_UNKNOWN;
break;
Expand Down Expand Up @@ -499,8 +505,10 @@ int fsl_mc_err_probe(struct platform_device *op)
}

edac_dbg(3, "init mci\n");
mci->mtype_cap = MEM_FLAG_RDDR | MEM_FLAG_RDDR2 |
MEM_FLAG_DDR | MEM_FLAG_DDR2;
mci->mtype_cap = MEM_FLAG_DDR | MEM_FLAG_RDDR |
MEM_FLAG_DDR2 | MEM_FLAG_RDDR2 |
MEM_FLAG_DDR3 | MEM_FLAG_RDDR3 |
MEM_FLAG_DDR4 | MEM_FLAG_RDDR4;
mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
mci->edac_cap = EDAC_FLAG_SECDED;
mci->mod_name = EDAC_MOD_STR;
Expand Down
4 changes: 0 additions & 4 deletions drivers/edac/fsl_ddr_edac.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,6 @@
#define DSC_DBW_64 0x00000000

#define DSC_SDTYPE_MASK 0x07000000

#define DSC_SDTYPE_DDR 0x02000000
#define DSC_SDTYPE_DDR2 0x03000000
#define DSC_SDTYPE_DDR3 0x07000000
#define DSC_X32_EN 0x00000020

/* Err_Int_En */
Expand Down

0 comments on commit 4e2c325

Please sign in to comment.