]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
EDAC/ie31200: Fix the DIMM size mask for several SoCs
authorQiuxu Zhuo <qiuxu.zhuo@intel.com>
Mon, 10 Mar 2025 01:14:02 +0000 (09:14 +0800)
committerTony Luck <tony.luck@intel.com>
Mon, 10 Mar 2025 17:43:05 +0000 (10:43 -0700)
The DIMM size mask for {Sky, Kaby, Coffee} Lake is not bits{7:0},
but bits{5:0}. Fix it.

Fixes: 953dee9bbd24 ("EDAC, ie31200_edac: Add Skylake support")
Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Tested-by: Gary Wang <gary.c.wang@intel.com>
Link: https://lore.kernel.org/r/20250310011411.31685-3-qiuxu.zhuo@intel.com
drivers/edac/ie31200_edac.c

index 10301e17014ccc0b0db37454e97c6c33d2cb0103..2886866cb457a932577defb283b1f0a421aa782b 100644 (file)
 #define IE31200_MAD_DIMM_0_OFFSET              0x5004
 #define IE31200_MAD_DIMM_0_OFFSET_SKL          0x500C
 #define IE31200_MAD_DIMM_SIZE                  GENMASK_ULL(7, 0)
+#define IE31200_MAD_DIMM_SIZE_SKL              GENMASK_ULL(5, 0)
 #define IE31200_MAD_DIMM_A_RANK                        BIT(17)
 #define IE31200_MAD_DIMM_A_RANK_SHIFT          17
 #define IE31200_MAD_DIMM_A_RANK_SKL            BIT(10)
@@ -378,7 +379,7 @@ static void __iomem *ie31200_map_mchbar(struct pci_dev *pdev)
 static void __skl_populate_dimm_info(struct dimm_data *dd, u32 addr_decode,
                                     int chan)
 {
-       dd->size = (addr_decode >> (chan << 4)) & IE31200_MAD_DIMM_SIZE;
+       dd->size = (addr_decode >> (chan << 4)) & IE31200_MAD_DIMM_SIZE_SKL;
        dd->dual_rank = (addr_decode & (IE31200_MAD_DIMM_A_RANK_SKL << (chan << 4))) ? 1 : 0;
        dd->x16_width = ((addr_decode & (IE31200_MAD_DIMM_A_WIDTH_SKL << (chan << 4))) >>
                                (IE31200_MAD_DIMM_A_WIDTH_SKL_SHIFT + (chan << 4)));