diff options
Diffstat (limited to 'drivers/edac')
-rw-r--r-- | drivers/edac/edac_mc_sysfs.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c index 86da1767f86e..87fb396bc550 100644 --- a/drivers/edac/edac_mc_sysfs.c +++ b/drivers/edac/edac_mc_sysfs.c | |||
@@ -766,6 +766,23 @@ static ssize_t mci_size_mb_show(struct device *dev, | |||
766 | return sprintf(data, "%u\n", PAGES_TO_MiB(total_pages)); | 766 | return sprintf(data, "%u\n", PAGES_TO_MiB(total_pages)); |
767 | } | 767 | } |
768 | 768 | ||
769 | static ssize_t mci_max_location_show(struct device *dev, | ||
770 | struct device_attribute *mattr, | ||
771 | char *data) | ||
772 | { | ||
773 | struct mem_ctl_info *mci = to_mci(dev); | ||
774 | int i; | ||
775 | char *p = data; | ||
776 | |||
777 | for (i = 0; i < mci->n_layers; i++) { | ||
778 | p += sprintf(p, "%s %d ", | ||
779 | edac_layer_name[mci->layers[i].type], | ||
780 | mci->layers[i].size - 1); | ||
781 | } | ||
782 | |||
783 | return p - data; | ||
784 | } | ||
785 | |||
769 | /* default Control file */ | 786 | /* default Control file */ |
770 | DEVICE_ATTR(reset_counters, S_IWUSR, NULL, mci_reset_counters_store); | 787 | DEVICE_ATTR(reset_counters, S_IWUSR, NULL, mci_reset_counters_store); |
771 | 788 | ||
@@ -777,6 +794,7 @@ DEVICE_ATTR(ue_noinfo_count, S_IRUGO, mci_ue_noinfo_show, NULL); | |||
777 | DEVICE_ATTR(ce_noinfo_count, S_IRUGO, mci_ce_noinfo_show, NULL); | 794 | DEVICE_ATTR(ce_noinfo_count, S_IRUGO, mci_ce_noinfo_show, NULL); |
778 | DEVICE_ATTR(ue_count, S_IRUGO, mci_ue_count_show, NULL); | 795 | DEVICE_ATTR(ue_count, S_IRUGO, mci_ue_count_show, NULL); |
779 | DEVICE_ATTR(ce_count, S_IRUGO, mci_ce_count_show, NULL); | 796 | DEVICE_ATTR(ce_count, S_IRUGO, mci_ce_count_show, NULL); |
797 | DEVICE_ATTR(max_location, S_IRUGO, mci_max_location_show, NULL); | ||
780 | 798 | ||
781 | /* memory scrubber attribute file */ | 799 | /* memory scrubber attribute file */ |
782 | DEVICE_ATTR(sdram_scrub_rate, S_IRUGO | S_IWUSR, mci_sdram_scrub_rate_show, | 800 | DEVICE_ATTR(sdram_scrub_rate, S_IRUGO | S_IWUSR, mci_sdram_scrub_rate_show, |
@@ -792,6 +810,7 @@ static struct attribute *mci_attrs[] = { | |||
792 | &dev_attr_ue_count.attr, | 810 | &dev_attr_ue_count.attr, |
793 | &dev_attr_ce_count.attr, | 811 | &dev_attr_ce_count.attr, |
794 | &dev_attr_sdram_scrub_rate.attr, | 812 | &dev_attr_sdram_scrub_rate.attr, |
813 | &dev_attr_max_location.attr, | ||
795 | NULL | 814 | NULL |
796 | }; | 815 | }; |
797 | 816 | ||