/Linux-v5.10/drivers/edac/ |
D | edac_mc_sysfs.c | 147 struct csrow_info *csrow = to_csrow(dev); in csrow_ue_count_show() local 149 return sprintf(data, "%u\n", csrow->ue_count); in csrow_ue_count_show() 155 struct csrow_info *csrow = to_csrow(dev); in csrow_ce_count_show() local 157 return sprintf(data, "%u\n", csrow->ce_count); in csrow_ce_count_show() 163 struct csrow_info *csrow = to_csrow(dev); in csrow_size_show() local 167 for (i = 0; i < csrow->nr_channels; i++) in csrow_size_show() 168 nr_pages += csrow->channels[i]->dimm->nr_pages; in csrow_size_show() 175 struct csrow_info *csrow = to_csrow(dev); in csrow_mem_type_show() local 177 return sprintf(data, "%s\n", edac_mem_types[csrow->channels[0]->dimm->mtype]); in csrow_mem_type_show() 183 struct csrow_info *csrow = to_csrow(dev); in csrow_dev_type_show() local [all …]
|
D | edac_mc.c | 88 edac_dbg(4, " channel->csrow = %p\n", chan->csrow); in edac_mc_dump_channel() 103 dimm->idx, location, dimm->csrow, dimm->cschannel); in edac_mc_dump_dimm() 111 static void edac_mc_dump_csrow(struct csrow_info *csrow) in edac_mc_dump_csrow() argument 113 edac_dbg(4, "csrow->csrow_idx = %d\n", csrow->csrow_idx); in edac_mc_dump_csrow() 114 edac_dbg(4, " csrow = %p\n", csrow); in edac_mc_dump_csrow() 115 edac_dbg(4, " csrow->first_page = 0x%lx\n", csrow->first_page); in edac_mc_dump_csrow() 116 edac_dbg(4, " csrow->last_page = 0x%lx\n", csrow->last_page); in edac_mc_dump_csrow() 117 edac_dbg(4, " csrow->page_mask = 0x%lx\n", csrow->page_mask); in edac_mc_dump_csrow() 118 edac_dbg(4, " csrow->nr_channels = %d\n", csrow->nr_channels); in edac_mc_dump_csrow() 119 edac_dbg(4, " csrow->channels = %p\n", csrow->channels); in edac_mc_dump_csrow() [all …]
|
D | cell_edac.c | 37 struct csrow_info *csrow = mci->csrows[0]; in cell_edac_count_ce() local 53 csrow->first_page + pfn, offset, syndrome, in cell_edac_count_ce() 60 struct csrow_info *csrow = mci->csrows[0]; in cell_edac_count_ue() local 75 csrow->first_page + pfn, offset, 0, in cell_edac_count_ue() 130 struct csrow_info *csrow = mci->csrows[0]; in cell_edac_init_csrows() local 148 csrow->first_page = r.start >> PAGE_SHIFT; in cell_edac_init_csrows() 150 csrow->last_page = csrow->first_page + nr_pages - 1; in cell_edac_init_csrows() 152 for (j = 0; j < csrow->nr_channels; j++) { in cell_edac_init_csrows() 153 dimm = csrow->channels[j]->dimm; in cell_edac_init_csrows() 156 dimm->nr_pages = nr_pages / csrow->nr_channels; in cell_edac_init_csrows() [all …]
|
D | aspeed_edac.c | 94 struct csrow_info *csrow = mci->csrows[0]; in count_rec() local 119 csrow->first_page + page, offset, syndrome, in count_rec() 127 struct csrow_info *csrow = mci->csrows[0]; in count_un_rec() local 140 csrow->first_page + page, offset, syndrome, in count_un_rec() 233 struct csrow_info *csrow = mci->csrows[0]; in init_csrows() local 260 csrow->first_page = r.start >> PAGE_SHIFT; in init_csrows() 262 csrow->last_page = csrow->first_page + nr_pages - 1; in init_csrows() 267 dimm = csrow->channels[0]->dimm; in init_csrows() 270 dimm->nr_pages = nr_pages / csrow->nr_channels; in init_csrows() 273 csrow->first_page, nr_pages); in init_csrows()
|
D | amd76x_edac.c | 190 struct csrow_info *csrow; in amd76x_init_csrows() local 196 csrow = mci->csrows[index]; in amd76x_init_csrows() 197 dimm = csrow->channels[0]->dimm; in amd76x_init_csrows() 209 csrow->first_page = mba_base >> PAGE_SHIFT; in amd76x_init_csrows() 211 csrow->last_page = csrow->first_page + dimm->nr_pages - 1; in amd76x_init_csrows() 212 csrow->page_mask = mba_mask >> PAGE_SHIFT; in amd76x_init_csrows()
|
D | pasemi_edac.c | 126 struct csrow_info *csrow; in pasemi_edac_init_csrows() local 132 csrow = mci->csrows[index]; in pasemi_edac_init_csrows() 133 dimm = csrow->channels[0]->dimm; in pasemi_edac_init_csrows() 167 csrow->first_page = last_page_in_mmc; in pasemi_edac_init_csrows() 168 csrow->last_page = csrow->first_page + dimm->nr_pages - 1; in pasemi_edac_init_csrows() 170 csrow->page_mask = 0; in pasemi_edac_init_csrows()
|
D | r82600_edac.c | 220 struct csrow_info *csrow; in r82600_init_csrows() local 232 csrow = mci->csrows[index]; in r82600_init_csrows() 233 dimm = csrow->channels[0]->dimm; in r82600_init_csrows() 252 csrow->first_page = row_base >> PAGE_SHIFT; in r82600_init_csrows() 253 csrow->last_page = (row_high_limit >> PAGE_SHIFT) - 1; in r82600_init_csrows() 255 dimm->nr_pages = csrow->last_page - csrow->first_page + 1; in r82600_init_csrows()
|
D | cpc925_edac.c | 317 struct csrow_info *csrow; in cpc925_init_csrows() local 337 csrow = mci->csrows[index]; in cpc925_init_csrows() 340 csrow->first_page = last_nr_pages; in cpc925_init_csrows() 342 csrow->last_page = csrow->first_page + nr_pages - 1; in cpc925_init_csrows() 343 last_nr_pages = csrow->last_page + 1; in cpc925_init_csrows() 345 switch (csrow->nr_channels) { in cpc925_init_csrows() 368 for (j = 0; j < csrow->nr_channels; j++) { in cpc925_init_csrows() 369 dimm = csrow->channels[j]->dimm; in cpc925_init_csrows() 370 dimm->nr_pages = nr_pages / csrow->nr_channels; in cpc925_init_csrows() 436 unsigned long *pfn, unsigned long *offset, int *csrow) in cpc925_mc_get_pfn() argument [all …]
|
D | i82443bxgx_edac.c | 189 struct csrow_info *csrow; in i82443bxgx_init_csrows() local 198 csrow = mci->csrows[index]; in i82443bxgx_init_csrows() 199 dimm = csrow->channels[0]->dimm; in i82443bxgx_init_csrows() 218 csrow->first_page = row_base >> PAGE_SHIFT; in i82443bxgx_init_csrows() 219 csrow->last_page = (row_high_limit >> PAGE_SHIFT) - 1; in i82443bxgx_init_csrows() 220 dimm->nr_pages = csrow->last_page - csrow->first_page + 1; in i82443bxgx_init_csrows()
|
D | i82975x_edac.c | 364 struct csrow_info *csrow; in i82975x_init_csrows() local 383 csrow = mci->csrows[index]; in i82975x_init_csrows() 393 if (csrow->nr_channels > 1) in i82975x_init_csrows() 407 for (chan = 0; chan < csrow->nr_channels; chan++) { in i82975x_init_csrows() 410 dimm->nr_pages = nr_pages / csrow->nr_channels; in i82975x_init_csrows() 412 snprintf(csrow->channels[chan]->dimm->label, EDAC_MC_LABEL_LEN, "DIMM %c%d", in i82975x_init_csrows() 424 csrow->first_page = last_cumul_size; in i82975x_init_csrows() 425 csrow->last_page = cumul_size - 1; in i82975x_init_csrows()
|
D | fsl_ddr_edac.c | 280 struct csrow_info *csrow; in fsl_mc_check() local 321 csrow = mci->csrows[row_index]; in fsl_mc_check() 322 if ((pfn >= csrow->first_page) && (pfn <= csrow->last_page)) in fsl_mc_check() 394 struct csrow_info *csrow; in fsl_ddr_init_csrows() local 447 csrow = mci->csrows[index]; in fsl_ddr_init_csrows() 448 dimm = csrow->channels[0]->dimm; in fsl_ddr_init_csrows() 463 csrow->first_page = start; in fsl_ddr_init_csrows() 464 csrow->last_page = end; in fsl_ddr_init_csrows()
|
D | amd64_edac.c | 382 static void get_cs_base_and_mask(struct amd64_pvt *pvt, int csrow, u8 dct, in get_cs_base_and_mask() argument 389 csbase = pvt->csels[dct].csbases[csrow]; in get_cs_base_and_mask() 390 csmask = pvt->csels[dct].csmasks[csrow]; in get_cs_base_and_mask() 401 csbase = pvt->csels[dct].csbases[csrow]; in get_cs_base_and_mask() 402 csmask = pvt->csels[dct].csmasks[csrow >> 1]; in get_cs_base_and_mask() 417 csbase = pvt->csels[dct].csbases[csrow]; in get_cs_base_and_mask() 418 csmask = pvt->csels[dct].csmasks[csrow >> 1]; in get_cs_base_and_mask() 457 int csrow; in input_addr_to_csrow() local 462 for_each_chip_select(csrow, 0, pvt) { in input_addr_to_csrow() 463 if (!csrow_enabled(csrow, 0, pvt)) in input_addr_to_csrow() [all …]
|
D | i82860_edac.c | 149 struct csrow_info *csrow; in i82860_init_csrows() local 163 csrow = mci->csrows[index]; in i82860_init_csrows() 164 dimm = csrow->channels[0]->dimm; in i82860_init_csrows() 174 csrow->first_page = last_cumul_size; in i82860_init_csrows() 175 csrow->last_page = cumul_size - 1; in i82860_init_csrows()
|
D | i82875p_edac.c | 344 struct csrow_info *csrow; in i82875p_init_csrows() local 363 csrow = mci->csrows[index]; in i82875p_init_csrows() 371 csrow->first_page = last_cumul_size; in i82875p_init_csrows() 372 csrow->last_page = cumul_size - 1; in i82875p_init_csrows() 377 dimm = csrow->channels[j]->dimm; in i82875p_init_csrows()
|
D | e7xxx_edac.c | 362 struct csrow_info *csrow; in e7xxx_init_csrows() local 380 csrow = mci->csrows[index]; in e7xxx_init_csrows() 389 csrow->first_page = last_cumul_size; in e7xxx_init_csrows() 390 csrow->last_page = cumul_size - 1; in e7xxx_init_csrows() 410 dimm = csrow->channels[j]->dimm; in e7xxx_init_csrows()
|
D | i3000_edac.c | 393 struct csrow_info *csrow = mci->csrows[i]; in i3000_probe1() local 403 csrow->first_page = last_cumul_size; in i3000_probe1() 404 csrow->last_page = cumul_size - 1; in i3000_probe1() 409 struct dimm_info *dimm = csrow->channels[j]->dimm; in i3000_probe1()
|
D | i5100_edac.c | 416 unsigned int csrow) in i5100_csrow_to_rank() argument 420 return csrow % priv->ranksperchan; in i5100_csrow_to_rank() 425 unsigned int csrow) in i5100_csrow_to_chan() argument 429 return csrow / priv->ranksperchan; in i5100_csrow_to_chan() 651 static unsigned long i5100_npages(struct mem_ctl_info *mci, unsigned int csrow) in i5100_npages() argument 654 const unsigned int chan_rank = i5100_csrow_to_rank(mci, csrow); in i5100_npages() 655 const unsigned int chan = i5100_csrow_to_chan(mci, csrow); in i5100_npages()
|
D | e752x_edac.c | 1069 struct csrow_info *csrow; in e752x_init_csrows() local 1097 csrow = mci->csrows[remap_csrow_index(mci, index)]; in e752x_init_csrows() 1107 csrow->first_page = last_cumul_size; in e752x_init_csrows() 1108 csrow->last_page = cumul_size - 1; in e752x_init_csrows() 1126 for (i = 0; i < csrow->nr_channels; i++) { in e752x_init_csrows() 1127 struct dimm_info *dimm = csrow->channels[i]->dimm; in e752x_init_csrows() 1130 dimm->nr_pages = nr_pages / csrow->nr_channels; in e752x_init_csrows()
|
D | x38_edac.c | 374 struct csrow_info *csrow = mci->csrows[i]; in x38_probe1() local 384 struct dimm_info *dimm = csrow->channels[j]->dimm; in x38_probe1()
|
D | mv64x60_edac.c | 659 struct csrow_info *csrow; in mv64x60_init_csrows() local 669 csrow = mci->csrows[0]; in mv64x60_init_csrows() 670 dimm = csrow->channels[0]->dimm; in mv64x60_init_csrows()
|
D | amd64_edac.h | 406 int csrow; member
|
/Linux-v5.10/include/linux/ |
D | edac.h | 375 unsigned int csrow, cschannel; /* Points to the old API data */ member 400 struct csrow_info *csrow; member
|
/Linux-v5.10/Documentation/admin-guide/ |
D | ras.rst | 379 These csrows are allocated their csrow assignment based on the slot into 383 Memory DIMMs come single or dual "ranked". A rank is a populated csrow. 387 have just one csrow (csrow0) and csrow1 will be empty. The pattern 406 ``csrowX``, where ``X`` is the csrow index:: 494 - ``size`` - Total memory managed by this csrow attribute file 497 that this csrow contains. 552 - *csrow* and *channel* - used when the memory controller 561 on this csrow. Normally, either buffered or unbuffered memory. 585 this ``X`` instance of csrow: 591 errors that have occurred on this csrow. If panic_on_ue is set [all …]
|
/Linux-v5.10/Documentation/ABI/testing/ |
D | sysfs-devices-edac | 131 Description: This attribute file will display the location (csrow/channel, 139 currently on this csrow. Normally, either buffered or
|