Lines Matching refs:mtr
213 #define RANK_DISABLE(mtr) GET_BITFIELD(mtr, 16, 19)
214 #define IS_DIMM_PRESENT(mtr) GET_BITFIELD(mtr, 14, 14)
215 #define RANK_CNT_BITS(mtr) GET_BITFIELD(mtr, 12, 13)
216 #define RANK_WIDTH_BITS(mtr) GET_BITFIELD(mtr, 2, 4)
217 #define COL_WIDTH_BITS(mtr) GET_BITFIELD(mtr, 0, 1)
331 enum dev_type (*get_width)(struct sbridge_pvt *pvt, u32 mtr);
691 static inline int numrank(enum type type, u32 mtr)
693 int ranks = (1 << RANK_CNT_BITS(mtr));
701 ranks, max, (unsigned int)RANK_CNT_BITS(mtr), mtr);
708 static inline int numrow(u32 mtr)
710 int rows = (RANK_WIDTH_BITS(mtr) + 12);
714 rows, (unsigned int)RANK_WIDTH_BITS(mtr), mtr);
721 static inline int numcol(u32 mtr)
723 int cols = (COL_WIDTH_BITS(mtr) + 10);
727 cols, (unsigned int)COL_WIDTH_BITS(mtr), mtr);
928 static enum dev_type knl_get_width(struct sbridge_pvt *pvt, u32 mtr)
934 static enum dev_type sbridge_get_width(struct sbridge_pvt *pvt, u32 mtr)
940 static enum dev_type __ibridge_get_width(u32 mtr)
944 switch (mtr) {
959 static enum dev_type ibridge_get_width(struct sbridge_pvt *pvt, u32 mtr)
965 return __ibridge_get_width(GET_BITFIELD(mtr, 7, 8));
968 static enum dev_type broadwell_get_width(struct sbridge_pvt *pvt, u32 mtr)
971 return __ibridge_get_width(GET_BITFIELD(mtr, 8, 9));
1606 u32 mtr;
1624 knl_mtr_reg, &mtr);
1627 mtr_regs[j], &mtr);
1629 edac_dbg(4, "Channel #%d MTR%d = %x\n", i, j, mtr);
1630 if (IS_DIMM_PRESENT(mtr)) {
1639 ranks = numrank(pvt->info.type, mtr);
1647 rows = numrow(mtr);
1648 cols = numcol(mtr);
1661 dimm->dtype = pvt->info.get_width(pvt, mtr);