linux/drivers/edac
Mauro Carvalho Chehab a7d7d2e1a0 edac: Create a dimm struct and move the labels into it
The way a DIMM is currently represented implies that they're
linked into a per-csrow struct. However, some drivers don't see
csrows, as they're ridden behind some chip like the AMB's
on FBDIMM's, for example.

This forced drivers to fake^Wvirtualize a csrow struct, and to create
a mess under csrow/channel original's concept.

Move the DIMM labels into a per-DIMM struct, and add there
the real location of the socket, in terms of csrow/channel.
Latter patches will modify the location to properly represent the
memory architecture.

All other drivers will use a per-csrow type of location.
Some of those drivers will require a latter conversion, as
they also fake the csrows internally.

TODO: While this patch doesn't change the existing behavior, on
csrows-based memory controllers, a csrow/channel pair points to a memory
rank. There's a known bug at the EDAC core that allows having different
labels for the same DIMM, if it has more than one rank. A latter patch
is need to merge the several ranks for a DIMM into the same dimm_info
struct, in order to avoid having different labels for the same DIMM.

The edac_mc_alloc() will now contain a per-dimm initialization loop that
will be changed by latter patches in order to match other types of
memory architectures.

Reviewed-by: Aristeu Rozanski <arozansk@redhat.com>
Reviewed-by: Borislav Petkov <borislav.petkov@amd.com>
Cc: Doug Thompson <norsk5@yahoo.com>
Cc: Ranganathan Desikan <ravi@jetztechnologies.com>
Cc: "Arvind R." <arvino55@gmail.com>
Cc: "Niklas Söderlund" <niklas.soderlund@ericsson.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-05-28 19:10:57 -03:00
..
Kconfig edac: sb_edac: Let the driver depend on PCI_MMCONFIG 2012-03-21 15:19:56 -03:00
Makefile edac: sb_edac: Add it to the building system 2011-11-01 10:01:54 -02:00
amd64_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
amd64_edac.h amd64_edac: Erratum #637 workaround 2011-04-26 16:18:56 +02:00
amd64_edac_dbg.c EDAC, MCE: Rework MCE injection 2010-10-21 14:47:59 +02:00
amd64_edac_inj.c amd64_edac: Add support for F15h DCT PCI config accesses 2011-03-17 14:46:11 +01:00
amd76x_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
amd8111_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8111_edac.h edac: AMD8111 driver header file 2009-04-02 19:05:03 -07:00
amd8131_edac.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
amd8131_edac.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
cell_edac.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
cpc925_edac.c cpc925_edac: Support single-processor configurations 2011-09-01 16:00:18 +10:00
e7xxx_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
e752x_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
edac_core.h edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_device.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_device_sysfs.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_mc.c edac: Create a dimm struct and move the labels into it 2012-05-28 19:10:57 -03:00
edac_mc_sysfs.c edac: Create a dimm struct and move the labels into it 2012-05-28 19:10:57 -03:00
edac_module.c edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
edac_module.h edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_pci.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_pci_sysfs.c edac: convert sysdev_class to a regular subsystem 2011-12-14 15:21:07 -08:00
edac_stub.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
i7core_edac.c edac: Create a dimm struct and move the labels into it 2012-05-28 19:10:57 -03:00
i3000_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
i3200_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
i5000_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
i5100_edac.c edac: Create a dimm struct and move the labels into it 2012-05-28 19:10:57 -03:00
i5400_edac.c Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac 2012-03-28 14:24:40 -07:00
i7300_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
i82443bxgx_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
i82860_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
i82875p_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
i82975x_edac.c edac: Create a dimm struct and move the labels into it 2012-05-28 19:10:57 -03:00
mce_amd.c MCE, AMD: Drop too granulary family model checks 2012-04-04 15:50:11 +02:00
mce_amd.h MCE, AMD: Constify error tables 2012-03-19 12:06:26 +01:00
mce_amd_inj.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
mpc85xx_edac.c drivers/edac/mpc85xx_edac.c: fix memory controller compatible for edac 2011-11-24 01:59:38 -06:00
mpc85xx_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
mv64x60_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mv64x60_edac.h edac: Drop __DATE__ usage 2011-04-19 00:23:22 +02:00
pasemi_edac.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ppc4xx_edac.c edac/ppc4xx_edac: Fix compilation 2012-03-21 15:19:44 -03:00
ppc4xx_edac.h edac: new ppc4xx driver module 2009-04-02 19:05:03 -07:00
r82600_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00
sb_edac.c edac: Create a dimm struct and move the labels into it 2012-05-28 19:10:57 -03:00
tile_edac.c edac: say "TILEGx" not "TILEPro" for the tilegx edac driver 2012-04-02 12:14:06 -04:00
x38_edac.c EDAC: Make pci_device_id tables __devinitconst. 2012-03-19 12:04:54 +01:00