Lines Matching full:mci
263 * Nothing to do, just unregister sysfs here. The mci in dimm_release()
269 static int edac_create_dimm_object(struct mem_ctl_info *mci, in edac_create_dimm_object() argument
273 dimm->mci = mci; in edac_create_dimm_object()
279 dimm->dev.parent = &mci->dev; in edac_create_dimm_object()
280 if (mci->csbased) in edac_create_dimm_object()
285 pm_runtime_forbid(&mci->dev); in edac_create_dimm_object()
315 struct mem_ctl_info *mci = to_mci(dev); in mci_reset_counters_store() local
319 mci->ue_mc = 0; in mci_reset_counters_store()
320 mci->ce_mc = 0; in mci_reset_counters_store()
321 mci->ue_noinfo_count = 0; in mci_reset_counters_store()
322 mci->ce_noinfo_count = 0; in mci_reset_counters_store()
324 for (row = 0; row < mci->nr_csrows; row++) { in mci_reset_counters_store()
325 struct csrow_info *ri = mci->csrows[row]; in mci_reset_counters_store()
334 mci_for_each_dimm(mci, dimm) { in mci_reset_counters_store()
339 mci->start_time = jiffies; in mci_reset_counters_store()
356 struct mem_ctl_info *mci = to_mci(dev); in mci_sdram_scrub_rate_store() local
363 new_bw = mci->set_sdram_scrub_rate(mci, bandwidth); in mci_sdram_scrub_rate_store()
380 struct mem_ctl_info *mci = to_mci(dev); in mci_sdram_scrub_rate_show() local
383 bandwidth = mci->get_sdram_scrub_rate(mci); in mci_sdram_scrub_rate_show()
392 /* default attribute files for the MCI object */
397 struct mem_ctl_info *mci = to_mci(dev); in mci_ue_count_show() local
399 return sysfs_emit(data, "%u\n", mci->ue_mc); in mci_ue_count_show()
406 struct mem_ctl_info *mci = to_mci(dev); in mci_ce_count_show() local
408 return sysfs_emit(data, "%u\n", mci->ce_mc); in mci_ce_count_show()
415 struct mem_ctl_info *mci = to_mci(dev); in mci_ce_noinfo_show() local
417 return sysfs_emit(data, "%u\n", mci->ce_noinfo_count); in mci_ce_noinfo_show()
424 struct mem_ctl_info *mci = to_mci(dev); in mci_ue_noinfo_show() local
426 return sysfs_emit(data, "%u\n", mci->ue_noinfo_count); in mci_ue_noinfo_show()
433 struct mem_ctl_info *mci = to_mci(dev); in mci_seconds_show() local
435 return sysfs_emit(data, "%ld\n", (jiffies - mci->start_time) / HZ); in mci_seconds_show()
442 struct mem_ctl_info *mci = to_mci(dev); in mci_ctl_name_show() local
444 return sysfs_emit(data, "%s\n", mci->ctl_name); in mci_ctl_name_show()
451 struct mem_ctl_info *mci = to_mci(dev); in mci_size_mb_show() local
454 for (csrow_idx = 0; csrow_idx < mci->nr_csrows; csrow_idx++) { in mci_size_mb_show()
455 struct csrow_info *csrow = mci->csrows[csrow_idx]; in mci_size_mb_show()
471 struct mem_ctl_info *mci = to_mci(dev); in mci_max_location_show() local
476 for (i = 0; i < mci->n_layers; i++) { in mci_max_location_show()
478 edac_layer_name[mci->layers[i].type], in mci_max_location_show()
479 mci->layers[i].size - 1); in mci_max_location_show()
527 struct mem_ctl_info *mci = to_mci(dev); in mci_attr_is_visible() local
532 if (mci->get_sdram_scrub_rate) in mci_attr_is_visible()
534 if (mci->set_sdram_scrub_rate) in mci_attr_is_visible()
561 int edac_create_sysfs_mci_device(struct mem_ctl_info *mci, in edac_create_sysfs_mci_device() argument
568 mci->dev.type = &mci_attr_type; in edac_create_sysfs_mci_device()
569 mci->dev.parent = mci_pdev; in edac_create_sysfs_mci_device()
570 mci->dev.groups = groups; in edac_create_sysfs_mci_device()
571 dev_set_name(&mci->dev, "mc%d", mci->mc_idx); in edac_create_sysfs_mci_device()
572 dev_set_drvdata(&mci->dev, mci); in edac_create_sysfs_mci_device()
573 pm_runtime_forbid(&mci->dev); in edac_create_sysfs_mci_device()
575 err = device_add(&mci->dev); in edac_create_sysfs_mci_device()
577 edac_dbg(1, "failure: create device %s\n", dev_name(&mci->dev)); in edac_create_sysfs_mci_device()
578 /* no put_device() here, free mci with _edac_mc_free() */ in edac_create_sysfs_mci_device()
582 edac_dbg(0, "device %s created\n", dev_name(&mci->dev)); in edac_create_sysfs_mci_device()
587 mci_for_each_dimm(mci, dimm) { in edac_create_sysfs_mci_device()
592 err = edac_create_dimm_object(mci, dimm); in edac_create_sysfs_mci_device()
597 edac_create_debugfs_nodes(mci); in edac_create_sysfs_mci_device()
601 edac_remove_sysfs_mci_device(mci); in edac_create_sysfs_mci_device()
609 void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci) in edac_remove_sysfs_mci_device() argument
613 if (!device_is_registered(&mci->dev)) in edac_remove_sysfs_mci_device()
619 edac_debugfs_remove_recursive(mci->debugfs); in edac_remove_sysfs_mci_device()
622 mci_for_each_dimm(mci, dimm) { in edac_remove_sysfs_mci_device()
629 /* only remove the device, but keep mci */ in edac_remove_sysfs_mci_device()
630 device_del(&mci->dev); in edac_remove_sysfs_mci_device()
636 * There's no container structure here, as this is just the mci in mc_attr_release()