32 lines
		
	
	
	
		
			724 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
	
		
			724 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |  * ARM64 CPU idle arch support | ||
|  |  * | ||
|  |  * Copyright (C) 2014 ARM Ltd. | ||
|  |  * Author: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> | ||
|  |  * | ||
|  |  * This program is free software; you can redistribute it and/or modify | ||
|  |  * it under the terms of the GNU General Public License version 2 as | ||
|  |  * published by the Free Software Foundation. | ||
|  |  */ | ||
|  | 
 | ||
|  | #include <linux/of.h>
 | ||
|  | #include <linux/of_device.h>
 | ||
|  | 
 | ||
|  | #include <asm/cpuidle.h>
 | ||
|  | #include <asm/cpu_ops.h>
 | ||
|  | 
 | ||
|  | int cpu_init_idle(unsigned int cpu) | ||
|  | { | ||
|  | 	int ret = -EOPNOTSUPP; | ||
|  | 	struct device_node *cpu_node = of_cpu_device_node_get(cpu); | ||
|  | 
 | ||
|  | 	if (!cpu_node) | ||
|  | 		return -ENODEV; | ||
|  | 
 | ||
|  | 	if (cpu_ops[cpu] && cpu_ops[cpu]->cpu_init_idle) | ||
|  | 		ret = cpu_ops[cpu]->cpu_init_idle(cpu_node, cpu); | ||
|  | 
 | ||
|  | 	of_node_put(cpu_node); | ||
|  | 	return ret; | ||
|  | } |