pmiaddr 92 drivers/edac/pnd2_edac.c int (*pmi2mem)(struct mem_ctl_info *mci, u64 pmiaddr, u32 pmiidx, pmiaddr 646 drivers/edac/pnd2_edac.c static int sys2pmi(const u64 addr, u32 *pmiidx, u64 *pmiaddr, char *msg) pmiaddr 746 drivers/edac/pnd2_edac.c *pmiaddr = contig_addr; pmiaddr 900 drivers/edac/pnd2_edac.c static int bank_hash(u64 pmiaddr, int idx, int shft) pmiaddr 906 drivers/edac/pnd2_edac.c bhash ^= ((pmiaddr >> (12 + shft)) ^ (pmiaddr >> (9 + shft))) & 1; pmiaddr 909 drivers/edac/pnd2_edac.c bhash ^= (((pmiaddr >> (10 + shft)) ^ (pmiaddr >> (8 + shft))) & 1) << 1; pmiaddr 910 drivers/edac/pnd2_edac.c bhash ^= ((pmiaddr >> 22) & 1) << 1; pmiaddr 913 drivers/edac/pnd2_edac.c bhash ^= (((pmiaddr >> (13 + shft)) ^ (pmiaddr >> (11 + shft))) & 1) << 2; pmiaddr 920 drivers/edac/pnd2_edac.c static int rank_hash(u64 pmiaddr) pmiaddr 922 drivers/edac/pnd2_edac.c return ((pmiaddr >> 16) ^ (pmiaddr >> 10)) & 1; pmiaddr 926 drivers/edac/pnd2_edac.c static int apl_pmi2mem(struct mem_ctl_info *mci, u64 pmiaddr, u32 pmiidx, pmiaddr 937 drivers/edac/pnd2_edac.c int bit = (pmiaddr >> i) & 1; pmiaddr 964 drivers/edac/pnd2_edac.c bank ^= bank_hash(pmiaddr, idx, d->addrdec); pmiaddr 972 drivers/edac/pnd2_edac.c rank ^= rank_hash(pmiaddr); pmiaddr 996 drivers/edac/pnd2_edac.c static int dnv_pmi2mem(struct mem_ctl_info *mci, u64 pmiaddr, u32 pmiidx, pmiaddr 1000 drivers/edac/pnd2_edac.c daddr->rank = dnv_get_bit(pmiaddr, dmap[pmiidx].rs0 + 13, 0); pmiaddr 1002 drivers/edac/pnd2_edac.c daddr->rank |= dnv_get_bit(pmiaddr, dmap[pmiidx].rs1 + 13, 1); pmiaddr 1010 drivers/edac/pnd2_edac.c daddr->bank = dnv_get_bit(pmiaddr, dmap[pmiidx].ba0 + 6, 0); pmiaddr 1011 drivers/edac/pnd2_edac.c daddr->bank |= dnv_get_bit(pmiaddr, dmap[pmiidx].ba1 + 6, 1); pmiaddr 1012 drivers/edac/pnd2_edac.c daddr->bank |= dnv_get_bit(pmiaddr, dmap[pmiidx].bg0 + 6, 2); pmiaddr 1014 drivers/edac/pnd2_edac.c daddr->bank |= dnv_get_bit(pmiaddr, dmap[pmiidx].bg1 + 6, 3); pmiaddr 1017 drivers/edac/pnd2_edac.c daddr->bank ^= dnv_get_bit(pmiaddr, dmap3[pmiidx].row6 + 6, 0); pmiaddr 1018 drivers/edac/pnd2_edac.c daddr->bank ^= dnv_get_bit(pmiaddr, dmap3[pmiidx].row7 + 6, 1); pmiaddr 1021 drivers/edac/pnd2_edac.c daddr->bank ^= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca3 + 6, 2); pmiaddr 1024 drivers/edac/pnd2_edac.c daddr->bank ^= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca4 + 6, 2); pmiaddr 1025 drivers/edac/pnd2_edac.c daddr->bank ^= dnv_get_bit(pmiaddr, dmap2[pmiidx].row2 + 6, 3); pmiaddr 1027 drivers/edac/pnd2_edac.c daddr->bank ^= dnv_get_bit(pmiaddr, dmap2[pmiidx].row2 + 6, 0); pmiaddr 1028 drivers/edac/pnd2_edac.c daddr->bank ^= dnv_get_bit(pmiaddr, dmap3[pmiidx].row6 + 6, 1); pmiaddr 1030 drivers/edac/pnd2_edac.c daddr->bank ^= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca3 + 6, 2); pmiaddr 1032 drivers/edac/pnd2_edac.c daddr->bank ^= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca4 + 6, 2); pmiaddr 1036 drivers/edac/pnd2_edac.c daddr->row = dnv_get_bit(pmiaddr, dmap2[pmiidx].row0 + 6, 0); pmiaddr 1037 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap2[pmiidx].row1 + 6, 1); pmiaddr 1038 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap2[pmiidx].row2 + 6, 2); pmiaddr 1039 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap2[pmiidx].row3 + 6, 3); pmiaddr 1040 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap2[pmiidx].row4 + 6, 4); pmiaddr 1041 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap2[pmiidx].row5 + 6, 5); pmiaddr 1042 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap3[pmiidx].row6 + 6, 6); pmiaddr 1043 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap3[pmiidx].row7 + 6, 7); pmiaddr 1044 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap3[pmiidx].row8 + 6, 8); pmiaddr 1045 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap3[pmiidx].row9 + 6, 9); pmiaddr 1046 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap3[pmiidx].row10 + 6, 10); pmiaddr 1047 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap3[pmiidx].row11 + 6, 11); pmiaddr 1048 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap4[pmiidx].row12 + 6, 12); pmiaddr 1049 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap4[pmiidx].row13 + 6, 13); pmiaddr 1051 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap4[pmiidx].row14 + 6, 14); pmiaddr 1053 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap4[pmiidx].row15 + 6, 15); pmiaddr 1055 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap4[pmiidx].row16 + 6, 16); pmiaddr 1057 drivers/edac/pnd2_edac.c daddr->row |= dnv_get_bit(pmiaddr, dmap4[pmiidx].row17 + 6, 17); pmiaddr 1059 drivers/edac/pnd2_edac.c daddr->col = dnv_get_bit(pmiaddr, dmap5[pmiidx].ca3 + 6, 3); pmiaddr 1060 drivers/edac/pnd2_edac.c daddr->col |= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca4 + 6, 4); pmiaddr 1061 drivers/edac/pnd2_edac.c daddr->col |= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca5 + 6, 5); pmiaddr 1062 drivers/edac/pnd2_edac.c daddr->col |= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca6 + 6, 6); pmiaddr 1063 drivers/edac/pnd2_edac.c daddr->col |= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca7 + 6, 7); pmiaddr 1064 drivers/edac/pnd2_edac.c daddr->col |= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca8 + 6, 8); pmiaddr 1065 drivers/edac/pnd2_edac.c daddr->col |= dnv_get_bit(pmiaddr, dmap5[pmiidx].ca9 + 6, 9); pmiaddr 1067 drivers/edac/pnd2_edac.c daddr->col |= dnv_get_bit(pmiaddr, dmap1[pmiidx].ca11 + 13, 11); pmiaddr 1120 drivers/edac/pnd2_edac.c u64 pmiaddr; pmiaddr 1124 drivers/edac/pnd2_edac.c ret = sys2pmi(addr, &pmiidx, &pmiaddr, msg); pmiaddr 1128 drivers/edac/pnd2_edac.c pmiaddr >>= ops->pmiaddr_shift; pmiaddr 1133 drivers/edac/pnd2_edac.c ret = ops->pmi2mem(mci, pmiaddr, pmiidx, daddr, msg); pmiaddr 1138 drivers/edac/pnd2_edac.c addr, pmiaddr, daddr->chan, daddr->dimm, daddr->rank, daddr->bank, daddr->row, daddr->col);