powerpc/85xx: issue 15 EOI after core reset for FSL CoreNet devices
This is listed as a requirement for Freescale CoreNet based devices (e.g p4080ds with MPIC v4.x) after issuing a core reset to properly clear pending interrupts. Signed-off-by: Matthew McClintock <msm@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
		
							parent
							
								
									cfadd83852
								
							
						
					
					
						commit
						44f16fcf2f
					
				| @ -1748,6 +1748,7 @@ void mpic_reset_core(int cpu) | ||||
| 	struct mpic *mpic = mpic_primary; | ||||
| 	u32 pir; | ||||
| 	int cpuid = get_hard_smp_processor_id(cpu); | ||||
| 	int i; | ||||
| 
 | ||||
| 	/* Set target bit for core reset */ | ||||
| 	pir = mpic_read(mpic->gregs, MPIC_INFO(GREG_PROCESSOR_INIT)); | ||||
| @ -1759,6 +1760,15 @@ void mpic_reset_core(int cpu) | ||||
| 	pir &= ~(1 << cpuid); | ||||
| 	mpic_write(mpic->gregs, MPIC_INFO(GREG_PROCESSOR_INIT), pir); | ||||
| 	mpic_read(mpic->gregs, MPIC_INFO(GREG_PROCESSOR_INIT)); | ||||
| 
 | ||||
| 	/* Perform 15 EOI on each reset core to clear pending interrupts.
 | ||||
| 	 * This is required for FSL CoreNet based devices */ | ||||
| 	if (mpic->flags & MPIC_FSL) { | ||||
| 		for (i = 0; i < 15; i++) { | ||||
| 			_mpic_write(mpic->reg_type, &mpic->cpuregs[cpuid], | ||||
| 				      MPIC_CPU_EOI, 0); | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| #endif /* CONFIG_SMP */ | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user