EDAC/amd64: Support more than two controllers for chip selects handling
authorYazen Ghannam <yazen.ghannam@amd.com>
Wed, 21 Aug 2019 23:59:55 +0000 (23:59 +0000)
committerBorislav Petkov <bp@suse.de>
Thu, 22 Aug 2019 17:08:49 +0000 (19:08 +0200)
commitd971e28e2ce4696fcc32998c8aced5e47701fffe
treeb9b306b2f52b0a4c075b6246be0c711604b25683
parent718d58514ebc5740f80460ae7b73c57a01eac4c2
EDAC/amd64: Support more than two controllers for chip selects handling

The struct chip_select array that's used for saving chip select bases
and masks is fixed at length of two. There should be one struct
chip_select for each controller, so this array should be increased to
support systems that may have more than two controllers.

Increase the size of the struct chip_select array to eight, which is the
largest number of controllers per die currently supported on AMD
systems.

Fix number of DIMMs and Chip Select bases/masks on Family17h, because
AMD Family 17h systems support 2 DIMMs, 4 CS bases, and 2 CS masks per
channel.

Also, carve out the Family 17h+ reading of the bases/masks into a
separate function. This effectively reverts the original bases/masks
reading code to before Family 17h support was added.

Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>
Cc: James Morse <james.morse@arm.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
Cc: Tony Luck <tony.luck@intel.com>
Link: https://lkml.kernel.org/r/20190821235938.118710-2-Yazen.Ghannam@amd.com
drivers/edac/amd64_edac.c
drivers/edac/amd64_edac.h