[PATCH v2 00/22] AMD64 EDAC Cleanup and Refactor

From: Yazen Ghannam
Date: Fri Jan 27 2023 - 12:06:37 EST


Hi Boris,

This set removes a good amount of code that is no longer useful. Also,
this set splits the module initialization more clearly between legacy
and modern systems. The original intention was to prep for adding GPU
support, but I think the split is worthwhile on its own.

Patches 1-4 remove useless code for Family 17h and later systems.

Patch 5 removes code that is no longer needed for all systems.

Patches 6-22 merge, split, and rename various functions and structures
to have clear legacy and modern initialization paths. A future patch
set will add a third "GPU" path.

The basis of the first revision of this set was to make a function
pointer for each legacy/modern split in the code path. This resulted in
16 function pointers. And, in my mind, it was still hard to follow.

The basis of this revision is to diverge early during initialization,
and then follow separate paths. This results in 7 functions pointers
including 2 used only for legacy systems and 1 used only for modern
systems. I think this is much easier to follow as each path has a clear
set of helper functions.

Also, I dropped a lot of the boiler plate commit messages. Most are now
fairly terse though I did try to add extra details in some cases.

Thanks!

-Yazen

Link:
https://lore.kernel.org/r/20220509145534.44912-1-yazen.ghannam@xxxxxxx

Muralidhara M K (11):
EDAC/amd64: Merge struct amd64_family_type into struct amd64_pvt
EDAC/amd64: Split prep_chip_selects() into dct/umc functions
EDAC/amd64: Split read_base_mask() into dct/umc functions
EDAC/amd64: Split determine_memory_type() into dct/umc functions
EDAC/amd64: Split read_mc_regs() into dct/umc functions
EDAC/amd64: Split ecc_enabled() into dct/umc functions
EDAC/amd64: Split setup_mci_misc_attrs() into dct/umc functions
EDAC/amd64: Split determine_edac_cap() into dct/umc functions
EDAC/amd64: Split init_csrows() into dct/umc functions
EDAC/amd64: Split dump_misc_regs() into dct/umc functions
EDAC/amd64: Add get_err_info() to pvt->ops

Yazen Ghannam (11):
EDAC/amd64: Don't set up EDAC PCI control on Family 17h+
EDAC/amd64: Remove scrub rate control for Family 17h and later
EDAC/amd64: Remove PCI Function 6
EDAC/amd64: Remove PCI Function 0
EDAC/amd64: Remove early_channel_count()
EDAC/amd64: Rename debug_display_dimm_sizes()
EDAC/amd64: Split get_csrow_nr_pages() into dct/umc functions
EDAC/amd64: Drop dbam_to_cs() for Family 17h and later
EDAC/amd64: Don't find ECC symbol size for Family 17h and later
EDAC/amd64: Rework hw_info_{get,put}
EDAC/amd64: Rename f17h_determine_edac_ctl_cap()

drivers/edac/amd64_edac.c | 1221 ++++++++++++++-----------------------
drivers/edac/amd64_edac.h | 89 +--
2 files changed, 483 insertions(+), 827 deletions(-)

--
2.25.1