• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/edac/

Lines Matching refs:mci

341 	struct mem_ctl_info *mci;
347 mci = cs->mci;
349 kobject_put(&mci->edac_mci_kobj);
360 static int edac_create_csrow_object(struct mem_ctl_info *mci,
363 struct kobject *kobj_mci = &mci->edac_mci_kobj;
370 csrow->mci = mci; /* include container up link */
372 /* bump the mci instance's kobject's ref count */
373 kobj = kobject_get(&mci->edac_mci_kobj);
406 kobject_put(&mci->edac_mci_kobj);
414 static ssize_t mci_reset_counters_store(struct mem_ctl_info *mci,
419 mci->ue_noinfo_count = 0;
420 mci->ce_noinfo_count = 0;
421 mci->ue_count = 0;
422 mci->ce_count = 0;
424 for (row = 0; row < mci->nr_csrows; row++) {
425 struct csrow_info *ri = &mci->csrows[row];
434 mci->start_time = jiffies;
439 static ssize_t mci_sdram_scrub_rate_store(struct mem_ctl_info *mci,
445 if (!mci->set_sdram_scrub_rate) {
454 err = mci->set_sdram_scrub_rate(mci, (u32)bandwidth);
467 static ssize_t mci_sdram_scrub_rate_show(struct mem_ctl_info *mci, char *data)
472 if (!mci->get_sdram_scrub_rate) {
478 err = mci->get_sdram_scrub_rate(mci, &bandwidth);
491 static ssize_t mci_ue_count_show(struct mem_ctl_info *mci, char *data)
493 return sprintf(data, "%d\n", mci->ue_count);
496 static ssize_t mci_ce_count_show(struct mem_ctl_info *mci, char *data)
498 return sprintf(data, "%d\n", mci->ce_count);
501 static ssize_t mci_ce_noinfo_show(struct mem_ctl_info *mci, char *data)
503 return sprintf(data, "%d\n", mci->ce_noinfo_count);
506 static ssize_t mci_ue_noinfo_show(struct mem_ctl_info *mci, char *data)
508 return sprintf(data, "%d\n", mci->ue_noinfo_count);
511 static ssize_t mci_seconds_show(struct mem_ctl_info *mci, char *data)
513 return sprintf(data, "%ld\n", (jiffies - mci->start_time) / HZ);
516 static ssize_t mci_ctl_name_show(struct mem_ctl_info *mci, char *data)
518 return sprintf(data, "%s\n", mci->ctl_name);
521 static ssize_t mci_size_mb_show(struct mem_ctl_info *mci, char *data)
525 for (total_pages = csrow_idx = 0; csrow_idx < mci->nr_csrows;
527 struct csrow_info *csrow = &mci->csrows[csrow_idx];
625 struct mem_ctl_info *mci;
627 mci = to_mci(kobj);
629 debugf0("%s() mci instance idx=%d releasing\n", __func__, mci->mc_idx);
632 module_put(mci->owner);
634 /* free the mci instance memory here */
635 kfree(mci);
652 * setups and registers the main kobject for each mci
654 int edac_mc_register_sysfs_main_kobj(struct mem_ctl_info *mci)
661 kobj_mci = &mci->edac_mci_kobj;
663 /* Init the mci's kobject */
669 mci->owner = THIS_MODULE;
672 if (!try_module_get(mci->owner)) {
682 "mc%d", mci->mc_idx);
685 __func__, mci->mc_idx);
695 __func__, mci->mc_idx);
702 module_put(mci->owner);
711 * tears down and the main mci kobject from the mc_kset
713 void edac_mc_unregister_sysfs_main_kobj(struct mem_ctl_info *mci)
716 kobject_put(&mci->edac_mci_kobj);
721 #define grp_to_mci(k) (container_of(k, struct mcidev_sysfs_group_kobj, kobj)->mci)
756 struct mem_ctl_info *mci;
761 mci = grp->mci;
763 kobject_put(&mci->edac_mci_kobj);
785 static int edac_create_mci_instance_attributes(struct mem_ctl_info *mci,
801 list_add_tail(&grp_kobj->list, &mci->grp_kobj_list);
804 grp_kobj->mci = mci;
806 debugf0("%s() grp %s, mci %p\n", __func__,
807 sysfs_attrib->grp->name, mci);
811 &mci->edac_mci_kobj,
816 err = edac_create_mci_instance_attributes(mci,
842 * directory of this mci instance.
844 static void edac_remove_mci_instance_attributes(struct mem_ctl_info *mci,
858 list_for_each_entry(grp_kobj, &mci->grp_kobj_list,
861 edac_remove_mci_instance_attributes(mci,
877 list_for_each_entry_safe(grp_kobj, tmp, &mci->grp_kobj_list,
893 int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
898 struct kobject *kobj_mci = &mci->edac_mci_kobj;
900 debugf0("%s() idx=%d\n", __func__, mci->mc_idx);
902 INIT_LIST_HEAD(&mci->grp_kobj_list);
905 err = sysfs_create_link(kobj_mci, &mci->dev->kobj,
915 if (mci->mc_driver_sysfs_attributes) {
916 err = edac_create_mci_instance_attributes(mci,
917 mci->mc_driver_sysfs_attributes,
918 &mci->edac_mci_kobj);
920 debugf1("%s() failure to create mci attributes\n",
928 for (i = 0; i < mci->nr_csrows; i++) {
929 csrow = &mci->csrows[i];
933 err = edac_create_csrow_object(mci, csrow, i);
948 kobject_put(&mci->csrows[i].kobj);
952 /* remove the mci instance's attributes, if any */
953 edac_remove_mci_instance_attributes(mci,
954 mci->mc_driver_sysfs_attributes, &mci->edac_mci_kobj, 0);
966 void edac_remove_sysfs_mci_device(struct mem_ctl_info *mci)
973 for (i = 0; i < mci->nr_csrows; i++) {
974 if (mci->csrows[i].nr_pages > 0) {
976 kobject_put(&mci->csrows[i].kobj);
983 sysfs_remove_link(&mci->edac_mci_kobj, EDAC_DEVICE_SYMLINK);
987 /* remove this mci instance's attribtes */
988 edac_remove_mci_instance_attributes(mci,
989 mci->mc_driver_sysfs_attributes,
990 &mci->edac_mci_kobj, 0);
991 debugf0("%s() unregister this mci kobj\n", __func__);
994 kobject_put(&mci->edac_mci_kobj);
1007 * To this 'mc' kset, instance 'mci' will be grouped as children.