/linux-6.6.21/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 | 86 edac_dbg(4, " channel->csrow = %p\n", chan->csrow); in edac_mc_dump_channel() 101 dimm->idx, location, dimm->csrow, dimm->cschannel); in edac_mc_dump_dimm() 108 static void edac_mc_dump_csrow(struct csrow_info *csrow) in edac_mc_dump_csrow() argument 110 edac_dbg(4, "csrow->csrow_idx = %d\n", csrow->csrow_idx); in edac_mc_dump_csrow() 111 edac_dbg(4, " csrow = %p\n", csrow); in edac_mc_dump_csrow() 112 edac_dbg(4, " csrow->first_page = 0x%lx\n", csrow->first_page); in edac_mc_dump_csrow() 113 edac_dbg(4, " csrow->last_page = 0x%lx\n", csrow->last_page); in edac_mc_dump_csrow() 114 edac_dbg(4, " csrow->page_mask = 0x%lx\n", csrow->page_mask); in edac_mc_dump_csrow() 115 edac_dbg(4, " csrow->nr_channels = %d\n", csrow->nr_channels); in edac_mc_dump_csrow() 116 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 | 189 struct csrow_info *csrow; in amd76x_init_csrows() local 195 csrow = mci->csrows[index]; in amd76x_init_csrows() 196 dimm = csrow->channels[0]->dimm; in amd76x_init_csrows() 208 csrow->first_page = mba_base >> PAGE_SHIFT; in amd76x_init_csrows() 210 csrow->last_page = csrow->first_page + dimm->nr_pages - 1; in amd76x_init_csrows() 211 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 | 219 struct csrow_info *csrow; in r82600_init_csrows() local 231 csrow = mci->csrows[index]; in r82600_init_csrows() 232 dimm = csrow->channels[0]->dimm; in r82600_init_csrows() 251 csrow->first_page = row_base >> PAGE_SHIFT; in r82600_init_csrows() 252 csrow->last_page = (row_high_limit >> PAGE_SHIFT) - 1; in r82600_init_csrows() 254 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 | 188 struct csrow_info *csrow; in i82443bxgx_init_csrows() local 197 csrow = mci->csrows[index]; in i82443bxgx_init_csrows() 198 dimm = csrow->channels[0]->dimm; in i82443bxgx_init_csrows() 217 csrow->first_page = row_base >> PAGE_SHIFT; in i82443bxgx_init_csrows() 218 csrow->last_page = (row_high_limit >> PAGE_SHIFT) - 1; in i82443bxgx_init_csrows() 219 dimm->nr_pages = csrow->last_page - csrow->first_page + 1; in i82443bxgx_init_csrows()
|
D | i82975x_edac.c | 363 struct csrow_info *csrow; in i82975x_init_csrows() local 382 csrow = mci->csrows[index]; in i82975x_init_csrows() 392 if (csrow->nr_channels > 1) in i82975x_init_csrows() 406 for (chan = 0; chan < csrow->nr_channels; chan++) { in i82975x_init_csrows() 409 dimm->nr_pages = nr_pages / csrow->nr_channels; in i82975x_init_csrows() 411 snprintf(csrow->channels[chan]->dimm->label, EDAC_MC_LABEL_LEN, "DIMM %c%d", in i82975x_init_csrows() 423 csrow->first_page = last_cumul_size; in i82975x_init_csrows() 424 csrow->last_page = cumul_size - 1; in i82975x_init_csrows()
|
D | fsl_ddr_edac.c | 277 struct csrow_info *csrow; in fsl_mc_check() local 318 csrow = mci->csrows[row_index]; in fsl_mc_check() 319 if ((pfn >= csrow->first_page) && (pfn <= csrow->last_page)) in fsl_mc_check() 391 struct csrow_info *csrow; in fsl_ddr_init_csrows() local 444 csrow = mci->csrows[index]; in fsl_ddr_init_csrows() 445 dimm = csrow->channels[0]->dimm; in fsl_ddr_init_csrows() 460 csrow->first_page = start; in fsl_ddr_init_csrows() 461 csrow->last_page = end; in fsl_ddr_init_csrows()
|
D | i82860_edac.c | 148 struct csrow_info *csrow; in i82860_init_csrows() local 162 csrow = mci->csrows[index]; in i82860_init_csrows() 163 dimm = csrow->channels[0]->dimm; in i82860_init_csrows() 173 csrow->first_page = last_cumul_size; in i82860_init_csrows() 174 csrow->last_page = cumul_size - 1; in i82860_init_csrows()
|
D | amd64_edac.c | 372 static void get_cs_base_and_mask(struct amd64_pvt *pvt, int csrow, u8 dct, in get_cs_base_and_mask() argument 379 csbase = pvt->csels[dct].csbases[csrow]; in get_cs_base_and_mask() 380 csmask = pvt->csels[dct].csmasks[csrow]; in get_cs_base_and_mask() 391 csbase = pvt->csels[dct].csbases[csrow]; in get_cs_base_and_mask() 392 csmask = pvt->csels[dct].csmasks[csrow >> 1]; in get_cs_base_and_mask() 407 csbase = pvt->csels[dct].csbases[csrow]; in get_cs_base_and_mask() 408 csmask = pvt->csels[dct].csmasks[csrow >> 1]; in get_cs_base_and_mask() 447 int csrow; in input_addr_to_csrow() local 452 for_each_chip_select(csrow, 0, pvt) { in input_addr_to_csrow() 453 if (!csrow_enabled(csrow, 0, pvt)) in input_addr_to_csrow() [all …]
|
D | i82875p_edac.c | 343 struct csrow_info *csrow; in i82875p_init_csrows() local 362 csrow = mci->csrows[index]; in i82875p_init_csrows() 370 csrow->first_page = last_cumul_size; in i82875p_init_csrows() 371 csrow->last_page = cumul_size - 1; in i82875p_init_csrows() 376 dimm = csrow->channels[j]->dimm; in i82875p_init_csrows()
|
D | e7xxx_edac.c | 361 struct csrow_info *csrow; in e7xxx_init_csrows() local 379 csrow = mci->csrows[index]; in e7xxx_init_csrows() 388 csrow->first_page = last_cumul_size; in e7xxx_init_csrows() 389 csrow->last_page = cumul_size - 1; in e7xxx_init_csrows() 409 dimm = csrow->channels[j]->dimm; in e7xxx_init_csrows()
|
D | i3000_edac.c | 392 struct csrow_info *csrow = mci->csrows[i]; in i3000_probe1() local 402 csrow->first_page = last_cumul_size; in i3000_probe1() 403 csrow->last_page = cumul_size - 1; in i3000_probe1() 408 struct dimm_info *dimm = csrow->channels[j]->dimm; in i3000_probe1()
|
D | i5100_edac.c | 411 unsigned int csrow) in i5100_csrow_to_rank() argument 415 return csrow % priv->ranksperchan; in i5100_csrow_to_rank() 420 unsigned int csrow) in i5100_csrow_to_chan() argument 424 return csrow / priv->ranksperchan; in i5100_csrow_to_chan() 646 static unsigned long i5100_npages(struct mem_ctl_info *mci, unsigned int csrow) in i5100_npages() argument 649 const unsigned int chan_rank = i5100_csrow_to_rank(mci, csrow); in i5100_npages() 650 const unsigned int chan = i5100_csrow_to_chan(mci, csrow); in i5100_npages()
|
D | e752x_edac.c | 1068 struct csrow_info *csrow; in e752x_init_csrows() local 1096 csrow = mci->csrows[remap_csrow_index(mci, index)]; in e752x_init_csrows() 1106 csrow->first_page = last_cumul_size; in e752x_init_csrows() 1107 csrow->last_page = cumul_size - 1; in e752x_init_csrows() 1125 for (i = 0; i < csrow->nr_channels; i++) { in e752x_init_csrows() 1126 struct dimm_info *dimm = csrow->channels[i]->dimm; in e752x_init_csrows() 1129 dimm->nr_pages = nr_pages / csrow->nr_channels; in e752x_init_csrows()
|
D | x38_edac.c | 373 struct csrow_info *csrow = mci->csrows[i]; in x38_probe1() local 383 struct dimm_info *dimm = csrow->channels[j]->dimm; in x38_probe1()
|
D | amd64_edac.h | 401 int csrow; member
|
/linux-6.6.21/include/linux/ |
D | edac.h | 396 unsigned int csrow, cschannel; /* Points to the old API data */ member 421 struct csrow_info *csrow; member
|
/linux-6.6.21/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-6.6.21/Documentation/driver-api/ |
D | edac.rst | 257 │ ├── csrow 0 # UMC 0 266 │ ├── csrow 1 # UMC 1 271 │ ├── csrow 3 # UMC 3
|
/linux-6.6.21/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
|