Lines Matching defs:res

232 static void skx_show_retry_rd_err_log(struct decoded_addr *res,
240 edev = res->dev->imc[res->imc].chan[res->channel].edev;
265 static bool skx_sad_decode(struct decoded_addr *res)
268 u64 addr = res->addr;
364 res->dev = d;
365 res->socket = d->imc[0].src_id;
366 res->imc = GET_BITFIELD(d->mcroute, lchan * 3, lchan * 3 + 2);
367 res->channel = GET_BITFIELD(d->mcroute, lchan * 2 + 18, lchan * 2 + 19);
370 res->addr, res->socket, res->imc, res->channel);
403 static bool skx_tad_decode(struct decoded_addr *res)
411 SKX_GET_TADBASE(res->dev, res->imc, i, base);
412 SKX_GET_TADWAYNESS(res->dev, res->imc, i, wayness);
413 if (SKX_TAD_BASE(base) <= res->addr && res->addr <= SKX_TAD_LIMIT(wayness))
416 edac_dbg(0, "No TAD entry for 0x%llx\n", res->addr);
420 res->sktways = SKX_TAD_SKTWAYS(wayness);
421 res->chanways = SKX_TAD_CHNWAYS(wayness);
425 SKX_GET_TADCHNILVOFFSET(res->dev, res->imc, res->channel, i, chnilvoffset);
426 channel_addr = res->addr - SKX_TAD_OFFSET(chnilvoffset);
428 if (res->chanways == 3 && skt_interleave_bit > chn_interleave_bit) {
431 res->chanways, channel_addr);
433 res->sktways, channel_addr);
437 res->sktways, res->addr);
439 res->chanways, res->addr);
442 res->chan_addr = channel_addr;
445 res->addr, res->chan_addr, res->sktways, res->chanways);
464 static bool skx_rir_decode(struct decoded_addr *res)
471 if (res->dev->imc[res->imc].chan[res->channel].dimms[0].close_pg)
477 SKX_GET_RIRWAYNESS(res->dev, res->imc, res->channel, i, rirway);
480 if (prev_limit <= res->chan_addr &&
481 res->chan_addr <= limit)
486 edac_dbg(0, "No RIR entry for 0x%llx\n", res->addr);
490 rank_addr = res->chan_addr >> shift;
493 rank_addr |= res->chan_addr & GENMASK_ULL(shift - 1, 0);
495 res->rank_address = rank_addr;
496 idx = (res->chan_addr >> shift) % SKX_RIR_WAYS(rirway);
498 SKX_GET_RIRILV(res->dev, res->imc, res->channel, idx, i, rirlv);
499 res->rank_address = rank_addr - SKX_RIR_OFFSET(rirlv);
501 res->channel_rank = chan_rank;
502 res->dimm = chan_rank / 4;
503 res->rank = chan_rank % 4;
506 res->addr, res->dimm, res->rank,
507 res->channel_rank, res->rank_address);
533 int i, res = 0;
536 res |= ((addr >> bits[i]) & 1) << i;
537 return res;
578 static bool skx_decode(struct decoded_addr *res)
580 return skx_sad_decode(res) && skx_tad_decode(res) &&
581 skx_rir_decode(res) && skx_mad_decode(res);