ARM: make sched_clock just call a function pointer
This converts sched_clock to simply a call to a function pointer in order to allow overriding it. This will allow for use with 64-bit counters where overflow handling is not needed. Signed-off-by: Rob Herring <rob.herring@calxeda.com>
This commit is contained in:
		
					parent
					
						
							
								c115739da8
							
						
					
				
			
			
				commit
				
					
						7e48c0b9d9
					
				
			
		
					 2 changed files with 10 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -11,4 +11,6 @@
 | 
			
		|||
extern void sched_clock_postinit(void);
 | 
			
		||||
extern void setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate);
 | 
			
		||||
 | 
			
		||||
extern unsigned long long (*sched_clock_func)(void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -165,12 +165,19 @@ void __init setup_sched_clock(u32 (*read)(void), int bits, unsigned long rate)
 | 
			
		|||
	pr_debug("Registered %pF as sched_clock source\n", read);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unsigned long long notrace sched_clock(void)
 | 
			
		||||
static unsigned long long notrace sched_clock_32(void)
 | 
			
		||||
{
 | 
			
		||||
	u32 cyc = read_sched_clock();
 | 
			
		||||
	return cyc_to_sched_clock(cyc, sched_clock_mask);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unsigned long long __read_mostly (*sched_clock_func)(void) = sched_clock_32;
 | 
			
		||||
 | 
			
		||||
unsigned long long notrace sched_clock(void)
 | 
			
		||||
{
 | 
			
		||||
	return sched_clock_func();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void __init sched_clock_postinit(void)
 | 
			
		||||
{
 | 
			
		||||
	/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue