diff options
author | Ananth N Mavinakayanahalli <ananth@in.ibm.com> | 2011-11-10 14:58:53 -0500 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2011-11-24 22:53:23 -0500 |
commit | 595fe91447b03cb72c97f45bc5db30fd73b66b38 (patch) | |
tree | 3dbfd08b962eb6215d17c105e6b743b6d920ebaf /arch/powerpc/kernel/sysfs.c | |
parent | 184cd4a3b962a4769889615430eaf40076b97969 (diff) |
powerpc: Export PIR data through sysfs
On Fri, Nov 11, 2011 at 10:17:55AM +0530, Ananth N Mavinakayanahalli wrote:
> >
> > At this rate we're going to end up with no bits left for CPU features
> > way too quickly... Especially for something we only care about once at
> > boot time.
> >
> > Wouldn't CPU_FTR_PPCAS_ARCH_V2 be a good enough test ?
>
> /me checks Cell manuals... yes, that test would be good enough. I will
> cook up a patch to use this.
Here it is...
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/sysfs.c')
-rw-r--r-- | arch/powerpc/kernel/sysfs.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c index ce035c1905f0..f579be552094 100644 --- a/arch/powerpc/kernel/sysfs.c +++ b/arch/powerpc/kernel/sysfs.c | |||
@@ -177,11 +177,13 @@ SYSFS_PMCSETUP(mmcra, SPRN_MMCRA); | |||
177 | SYSFS_PMCSETUP(purr, SPRN_PURR); | 177 | SYSFS_PMCSETUP(purr, SPRN_PURR); |
178 | SYSFS_PMCSETUP(spurr, SPRN_SPURR); | 178 | SYSFS_PMCSETUP(spurr, SPRN_SPURR); |
179 | SYSFS_PMCSETUP(dscr, SPRN_DSCR); | 179 | SYSFS_PMCSETUP(dscr, SPRN_DSCR); |
180 | SYSFS_PMCSETUP(pir, SPRN_PIR); | ||
180 | 181 | ||
181 | static SYSDEV_ATTR(mmcra, 0600, show_mmcra, store_mmcra); | 182 | static SYSDEV_ATTR(mmcra, 0600, show_mmcra, store_mmcra); |
182 | static SYSDEV_ATTR(spurr, 0600, show_spurr, NULL); | 183 | static SYSDEV_ATTR(spurr, 0600, show_spurr, NULL); |
183 | static SYSDEV_ATTR(dscr, 0600, show_dscr, store_dscr); | 184 | static SYSDEV_ATTR(dscr, 0600, show_dscr, store_dscr); |
184 | static SYSDEV_ATTR(purr, 0600, show_purr, store_purr); | 185 | static SYSDEV_ATTR(purr, 0600, show_purr, store_purr); |
186 | static SYSDEV_ATTR(pir, 0400, show_pir, NULL); | ||
185 | 187 | ||
186 | unsigned long dscr_default = 0; | 188 | unsigned long dscr_default = 0; |
187 | EXPORT_SYMBOL(dscr_default); | 189 | EXPORT_SYMBOL(dscr_default); |
@@ -392,6 +394,9 @@ static void __cpuinit register_cpu_online(unsigned int cpu) | |||
392 | 394 | ||
393 | if (cpu_has_feature(CPU_FTR_DSCR)) | 395 | if (cpu_has_feature(CPU_FTR_DSCR)) |
394 | sysdev_create_file(s, &attr_dscr); | 396 | sysdev_create_file(s, &attr_dscr); |
397 | |||
398 | if (cpu_has_feature(CPU_FTR_PPCAS_ARCH_V2)) | ||
399 | sysdev_create_file(s, &attr_pir); | ||
395 | #endif /* CONFIG_PPC64 */ | 400 | #endif /* CONFIG_PPC64 */ |
396 | 401 | ||
397 | cacheinfo_cpu_online(cpu); | 402 | cacheinfo_cpu_online(cpu); |
@@ -462,6 +467,9 @@ static void unregister_cpu_online(unsigned int cpu) | |||
462 | 467 | ||
463 | if (cpu_has_feature(CPU_FTR_DSCR)) | 468 | if (cpu_has_feature(CPU_FTR_DSCR)) |
464 | sysdev_remove_file(s, &attr_dscr); | 469 | sysdev_remove_file(s, &attr_dscr); |
470 | |||
471 | if (cpu_has_feature(CPU_FTR_PPCAS_ARCH_V2)) | ||
472 | sysdev_remove_file(s, &attr_pir); | ||
465 | #endif /* CONFIG_PPC64 */ | 473 | #endif /* CONFIG_PPC64 */ |
466 | 474 | ||
467 | cacheinfo_cpu_offline(cpu); | 475 | cacheinfo_cpu_offline(cpu); |