forked from mirrors/linux
		
	ARM: tegra: add cpu_disable for hotplug
The Tegra114 could hotplug the CPU0, but the common cpu_disable didn't support that. Adding a Tegra specific cpu_disable function for it. Signed-off-by: Joseph Lo <josephl@nvidia.com> [swarren: adjusted the switch statement to be future-proof] Signed-off-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
		
							parent
							
								
									33d5c01915
								
							
						
					
					
						commit
						510bb595de
					
				
					 3 changed files with 13 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -2,3 +2,4 @@ extern struct smp_operations tegra_smp_ops;
 | 
			
		|||
 | 
			
		||||
extern int tegra_cpu_kill(unsigned int cpu);
 | 
			
		||||
extern void tegra_cpu_die(unsigned int cpu);
 | 
			
		||||
extern int tegra_cpu_disable(unsigned int cpu);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -46,6 +46,17 @@ void __ref tegra_cpu_die(unsigned int cpu)
 | 
			
		|||
	BUG();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int tegra_cpu_disable(unsigned int cpu)
 | 
			
		||||
{
 | 
			
		||||
	switch (tegra_chip_id) {
 | 
			
		||||
	case TEGRA20:
 | 
			
		||||
	case TEGRA30:
 | 
			
		||||
		return cpu == 0 ? -EPERM : 0;
 | 
			
		||||
	default:
 | 
			
		||||
		return 0;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void __init tegra_hotplug_init(void)
 | 
			
		||||
{
 | 
			
		||||
	if (!IS_ENABLED(CONFIG_HOTPLUG_CPU))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -196,5 +196,6 @@ struct smp_operations tegra_smp_ops __initdata = {
 | 
			
		|||
#ifdef CONFIG_HOTPLUG_CPU
 | 
			
		||||
	.cpu_kill		= tegra_cpu_kill,
 | 
			
		||||
	.cpu_die		= tegra_cpu_die,
 | 
			
		||||
	.cpu_disable		= tegra_cpu_disable,
 | 
			
		||||
#endif
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue