aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/edac/ppc4xx_edac.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2012-01-28 07:09:38 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-28 18:10:58 -0400
commita895bf8b1e1ea4c032a8fa8a09475a2ce09fe77a (patch)
tree79a1110d0f4a6f2d50d870fa77d11a5311fee4fc /drivers/edac/ppc4xx_edac.c
parent5e2af0c09e60d11dd8297e259a9ca2b3d92d2cf4 (diff)
edac: move nr_pages to dimm struct
The number of pages is a dimm property. Move it to the dimm struct. After this change, it is possible to add sysfs nodes for the DIMM's that will properly represent the DIMM stick properties, including its size. A TODO fix here is to properly represent dual-rank/quad-rank DIMMs when the memory controller represents the memory via chip select rows. Reviewed-by: Aristeu Rozanski <arozansk@redhat.com> Acked-by: Borislav Petkov <borislav.petkov@amd.com> Acked-by: Chris Metcalf <cmetcalf@tilera.com> Cc: Doug Thompson <norsk5@yahoo.com> Cc: Mark Gross <mark.gross@intel.com> Cc: Jason Uhlenkott <juhlenko@akamai.com> Cc: Tim Small <tim@buttersideup.com> Cc: Ranganathan Desikan <ravi@jetztechnologies.com> Cc: "Arvind R." <arvino55@gmail.com> Cc: Olof Johansson <olof@lixom.net> Cc: Egor Martovetsky <egor@pasemi.com> Cc: Michal Marek <mmarek@suse.cz> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Joe Perches <joe@perches.com> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Hitoshi Mitake <h.mitake@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: "Niklas Söderlund" <niklas.soderlund@ericsson.com> Cc: Shaohui Xie <Shaohui.Xie@freescale.com> Cc: Josh Boyer <jwboyer@gmail.com> Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/edac/ppc4xx_edac.c')
-rw-r--r--drivers/edac/ppc4xx_edac.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/edac/ppc4xx_edac.c b/drivers/edac/ppc4xx_edac.c
index ec5e529e33f..95cfc0f8d46 100644
--- a/drivers/edac/ppc4xx_edac.c
+++ b/drivers/edac/ppc4xx_edac.c
@@ -896,7 +896,7 @@ ppc4xx_edac_init_csrows(struct mem_ctl_info *mci, u32 mcopt1)
896 enum dev_type dtype; 896 enum dev_type dtype;
897 enum edac_type edac_mode; 897 enum edac_type edac_mode;
898 int row, j; 898 int row, j;
899 u32 mbxcf, size; 899 u32 mbxcf, size, nr_pages;
900 900
901 /* Establish the memory type and width */ 901 /* Establish the memory type and width */
902 902
@@ -947,7 +947,7 @@ ppc4xx_edac_init_csrows(struct mem_ctl_info *mci, u32 mcopt1)
947 case SDRAM_MBCF_SZ_2GB: 947 case SDRAM_MBCF_SZ_2GB:
948 case SDRAM_MBCF_SZ_4GB: 948 case SDRAM_MBCF_SZ_4GB:
949 case SDRAM_MBCF_SZ_8GB: 949 case SDRAM_MBCF_SZ_8GB:
950 csi->nr_pages = SDRAM_MBCF_SZ_TO_PAGES(size); 950 nr_pages = SDRAM_MBCF_SZ_TO_PAGES(size);
951 break; 951 break;
952 default: 952 default:
953 ppc4xx_edac_mc_printk(KERN_ERR, mci, 953 ppc4xx_edac_mc_printk(KERN_ERR, mci,
@@ -973,6 +973,7 @@ ppc4xx_edac_init_csrows(struct mem_ctl_info *mci, u32 mcopt1)
973 for (j = 0; j < csi->nr_channels; j++) { 973 for (j = 0; j < csi->nr_channels; j++) {
974 struct dimm_info *dimm = csi->channels[j].dimm; 974 struct dimm_info *dimm = csi->channels[j].dimm;
975 975
976 dimm->nr_pages = nr_pages / csi->nr_channels;
976 dimm->grain = 1; 977 dimm->grain = 1;
977 978
978 dimm->mtype = mtype; 979 dimm->mtype = mtype;