Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

EDAC, sb_edac: Set fixed DIMM width on Xeon Knights Landing

Knights Landing does not come with register that could be used to fetch
DIMM width. However the value is fixed for this architecture so it can
be hardcoded.

Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com>
Cc: Doug Thompson <dougthompson@xmission.com>
Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: lukasz.anaczkowski@intel.com
Link: http://lkml.kernel.org/r/1449840082-18673-1-git-send-email-hubert.chrzaniuk@intel.com
Signed-off-by: Borislav Petkov <bp@suse.de>

authored by

Hubert Chrzaniuk and committed by
Borislav Petkov
45f4d3ab c4cf3b45

+7 -1
+7 -1
drivers/edac/sb_edac.c
··· 924 924 return mtype; 925 925 } 926 926 927 + static enum dev_type knl_get_width(struct sbridge_pvt *pvt, u32 mtr) 928 + { 929 + /* for KNL value is fixed */ 930 + return DEV_X16; 931 + } 932 + 927 933 static enum dev_type sbridge_get_width(struct sbridge_pvt *pvt, u32 mtr) 928 934 { 929 935 /* there's no way to figure out */ ··· 3399 3393 pvt->info.interleave_list = knl_interleave_list; 3400 3394 pvt->info.max_interleave = ARRAY_SIZE(knl_interleave_list); 3401 3395 pvt->info.interleave_pkg = ibridge_interleave_pkg; 3402 - pvt->info.get_width = ibridge_get_width; 3396 + pvt->info.get_width = knl_get_width; 3403 3397 mci->ctl_name = kasprintf(GFP_KERNEL, 3404 3398 "Knights Landing Socket#%d", mci->mc_idx); 3405 3399