powerpc: powernv: Implement ppc_md.get_proc_freq()
Implement a method named pnv_get_proc_freq(unsigned int cpu) which returns the current clock rate on the 'cpu' in Hz to be reported in /proc/cpuinfo. This method uses the value reported by cpufreq when such a value is sane. Otherwise it falls back to old way of reporting the clockrate, i.e. ppc_proc_freq. Set the ppc_md.get_proc_freq() hook to pnv_get_proc_freq() on the PowerNV platform. Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
		
							parent
							
								
									2299d03a63
								
							
						
					
					
						commit
						fb5153d05a
					
				| @ -27,6 +27,7 @@ | |||||||
| #include <linux/interrupt.h> | #include <linux/interrupt.h> | ||||||
| #include <linux/bug.h> | #include <linux/bug.h> | ||||||
| #include <linux/pci.h> | #include <linux/pci.h> | ||||||
|  | #include <linux/cpufreq.h> | ||||||
| 
 | 
 | ||||||
| #include <asm/machdep.h> | #include <asm/machdep.h> | ||||||
| #include <asm/firmware.h> | #include <asm/firmware.h> | ||||||
| @ -290,6 +291,25 @@ static int __init pnv_probe(void) | |||||||
| 	return 1; | 	return 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /*
 | ||||||
|  |  * Returns the cpu frequency for 'cpu' in Hz. This is used by | ||||||
|  |  * /proc/cpuinfo | ||||||
|  |  */ | ||||||
|  | unsigned long pnv_get_proc_freq(unsigned int cpu) | ||||||
|  | { | ||||||
|  | 	unsigned long ret_freq; | ||||||
|  | 
 | ||||||
|  | 	ret_freq = cpufreq_quick_get(cpu) * 1000ul; | ||||||
|  | 
 | ||||||
|  | 	/*
 | ||||||
|  | 	 * If the backend cpufreq driver does not exist, | ||||||
|  |          * then fallback to old way of reporting the clockrate. | ||||||
|  | 	 */ | ||||||
|  | 	if (!ret_freq) | ||||||
|  | 		ret_freq = ppc_proc_freq; | ||||||
|  | 	return ret_freq; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| define_machine(powernv) { | define_machine(powernv) { | ||||||
| 	.name			= "PowerNV", | 	.name			= "PowerNV", | ||||||
| 	.probe			= pnv_probe, | 	.probe			= pnv_probe, | ||||||
| @ -297,6 +317,7 @@ define_machine(powernv) { | |||||||
| 	.setup_arch		= pnv_setup_arch, | 	.setup_arch		= pnv_setup_arch, | ||||||
| 	.init_IRQ		= pnv_init_IRQ, | 	.init_IRQ		= pnv_init_IRQ, | ||||||
| 	.show_cpuinfo		= pnv_show_cpuinfo, | 	.show_cpuinfo		= pnv_show_cpuinfo, | ||||||
|  | 	.get_proc_freq          = pnv_get_proc_freq, | ||||||
| 	.progress		= pnv_progress, | 	.progress		= pnv_progress, | ||||||
| 	.machine_shutdown	= pnv_shutdown, | 	.machine_shutdown	= pnv_shutdown, | ||||||
| 	.power_save             = power7_idle, | 	.power_save             = power7_idle, | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user