perf_event: aml pmu interrupt issue fixup
authorHanjie Lin <hanjie.lin@amlogic.com>
Fri, 6 Jul 2018 04:58:02 +0000 (12:58 +0800)
committerHanjie Lin <hanjie.lin@amlogic.com>
Tue, 10 Jul 2018 02:29:22 +0000 (10:29 +0800)
commit4e32d573ace2611df25b59d0045833baac3e5708
tree84310a0df971536f039565f38bfcad76f227e95e
parentfb0db73474671a0c88bdc908702d2367dc789a84
perf_event: aml pmu interrupt issue fixup

PD#167574: perf_event: aml pmu interrupt issue fixup

amlogic arm pmu have a issue that all core's interrupts routes to
one gic SPI interrupt,
when some core raise a pmu interrupt(arm pmu counter overflow),
the global gic SPI interrupt will raise(default on cpu0),
and we can obtain core info which caused interrupt from
sys_cpu_status0 reg.

In global pmu interrupt handler we distinguish interrupts from other cpu,
then send a AML ipi interrupt and wait that cpu complete pmu interrupt.

Change-Id: I28ada689e5b94671c8cfb6189e46134c3c6804cd
Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com>
arch/arm64/boot/dts/amlogic/mesonaxg.dtsi
arch/arm64/boot/dts/amlogic/mesong12a.dtsi
arch/arm64/boot/dts/amlogic/mesongxl.dtsi
arch/arm64/boot/dts/amlogic/mesontxlx.dtsi
arch/arm64/include/asm/hardirq.h
arch/arm64/include/asm/perf_event.h
arch/arm64/kernel/perf_event.c
arch/arm64/kernel/smp.c
include/linux/smp.h