linux_dsm_epyc7002/arch/arm/mach-omap2
Russell King 50d6b3cf94 ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
If we have a kernel configured for periodic timer interrupts, and we
have cpuidle enabled, then we end up with CPU1 losing timer interupts
after a hotplug.

This can manifest itself in RCU stall warnings, or userspace becoming
unresponsive.

The problem is that the kernel initially wants to use the TWD timer
for interrupts, but the TWD loses context when we enter the C3 cpuidle
state.  Nothing reprograms the TWD after idle.

We have solved this in the past by switching to broadcast timer ticks,
and cpuidle44xx switches to that mode at boot time.  However, there is
nothing to switch from periodic mode local timers after a hotplug
operation.

We call tick_broadcast_enter() in omap_enter_idle_coupled(), which one
would expect would take care of the issue, but internally this only
deals with one-shot local timers - tick_broadcast_enable() on the other
hand only deals with periodic local timers.  So, we need to call both.

Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
[tony@atomide.com: just standardized the subject line]
Signed-off-by: Tony Lindgren <tony@atomide.com>
2019-02-07 07:48:22 -08:00
..
include/mach
am33xx-restart.c
am33xx.h
board-generic.c ARM: OMAP2+: Make display related init into device_initcall 2018-04-30 12:04:51 -07:00
board-n8x0.c bus: ti-sysc: Add support for platform data callbacks 2018-02-26 14:16:11 -08:00
clkt2xxx_dpll.c
clkt2xxx_dpllcore.c
clkt2xxx_virt_prcm_set.c
clock2xxx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clock3xxx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clock.c
clock.h
clockdomain.c ARM: OMAP2+: clockdomain: Inroduce cpu_pm notifiers for context save/restore 2018-05-18 06:56:12 -07:00
clockdomain.h ARM: OMAP2+: Add functions to save and restore clockdomain context en-masse. 2018-05-17 14:30:18 -07:00
clockdomains2xxx_3xxx_data.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clockdomains3xxx_data.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clockdomains7xx_data.c
clockdomains33xx_data.c
clockdomains43xx_data.c
clockdomains44xx_data.c
clockdomains54xx_data.c
clockdomains81xx_data.c
clockdomains2420_data.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clockdomains2430_data.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cm1_7xx.h
cm1_44xx.h
cm1_54xx.h
cm2_7xx.h
cm2_44xx.h
cm2_54xx.h
cm2xxx_3xxx.h ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
cm2xxx.c ARM: OMAP2+: CM: make cm_ll_data structures as const 2017-12-11 07:40:38 -08:00
cm2xxx.h
cm3xxx.c ARM: OMAP2+: CM: make cm_ll_data structures as const 2017-12-11 07:40:38 -08:00
cm3xxx.h
cm33xx.c ARM: OMAP2+: Add functions to save and restore clockdomain context en-masse. 2018-05-17 14:30:18 -07:00
cm33xx.h
cm44xx.h
cm81xx.h
cm_common.c Clock related dts changes for omaps for v4.16 merge window 2017-12-21 17:19:38 +01:00
cm-regbits-7xx.h
cm-regbits-24xx.h ARM: OMAP2+: Drop unused legacy data for prcm_reg_id and module_bit 2017-12-14 08:23:33 -08:00
cm-regbits-33xx.h
cm-regbits-34xx.h ARM: OMAP2+: Drop unused legacy data for prcm_reg_id and module_bit 2017-12-14 08:23:33 -08:00
cm-regbits-44xx.h
cm-regbits-54xx.h
cm.h Merge branch '4.15-rc1-clkctrl-mach-omap2' of https://github.com/t-kristo/linux-pm into omap-for-v4.16/soc 2017-12-11 07:46:40 -08:00
cminst44xx.c ARM: OMAP2+: Add functions to save and restore clockdomain context en-masse. 2018-05-17 14:30:18 -07:00
common-board-devices.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
common.c
common.h Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
control.c ARM: AM43XX: Add functions to save/restore am43xx control registers 2018-05-23 11:54:26 -07:00
control.h ARM: AM43XX: Add functions to save/restore am43xx control registers 2018-05-23 11:54:26 -07:00
cpuidle34xx.c
cpuidle44xx.c ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug 2019-02-07 07:48:22 -08:00
ctrl_module_wkup_44xx.h
devices.c ARM: OMAP2+: Remove unused gpio header file references 2018-02-14 10:28:13 -08:00
display.c ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized 2019-01-29 08:54:22 -08:00
display.h ARM: OMAP2+: Remove unused omapdrm platform device 2017-08-16 15:38:51 +03:00
dma.c ARM: OMAP2+: make omap_dma_dev_info __initdata 2017-10-02 12:48:53 -07:00
fb.c
gpmc.h
hdq1w.c ARM: OMAP2+: Drop unused omap_init_hdq 2017-09-19 11:04:56 -07:00
hdq1w.h
hsmmc.c - Error path bug fix for overflow tests (Dan) 2018-06-12 18:28:00 -07:00
hsmmc.h mmc: omap_hsmmc: Delete platform data GPIO CD and WP 2018-10-08 11:40:43 +02:00
i2c.c ARM: OMAP2+: Drop unused pm-noop 2018-04-16 10:22:40 -07:00
i2c.h ARM: OMAP: Move plat/i2c.h into mach-omap1 folder 2018-02-14 10:28:13 -08:00
id.c ARM: OMAP1/2: fix SoC name printing 2018-11-29 12:06:06 -08:00
id.h
io.c ARM: OMAP2+: Initialize SoC PM later 2018-04-30 12:04:51 -07:00
iomap.h
Kconfig ARM: Kconfig: remove useless "default n" 2018-11-08 10:53:09 +00:00
l3_2xxx.h
l3_3xxx.h
l4_2xxx.h
l4_3xxx.h
Makefile Kbuild updates for v4.21 2018-12-29 12:03:17 -08:00
mcbsp.c ARM: OMAP2+: Remove unused legacy code for McBSP 2017-06-08 04:15:10 -07:00
mmc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
msdi.c ARM: OMAP2+: Remove unused gpio header file references 2018-02-14 10:28:13 -08:00
omap2-restart.c
omap3-restart.c
omap4-common.c ARM: OMAP2+: Drop omap_hwmod_irq_info 2017-10-10 14:27:19 -07:00
omap4-restart.c
omap4-sar-layout.h ARM: OMAP2+: Fix typo for wakeup_ns_pa_addr 2018-02-28 14:47:13 -08:00
omap24xx.h
omap34xx.h
omap44xx.h
omap54xx.h
omap_device.c - Error path bug fix for overflow tests (Dan) 2018-06-12 18:28:00 -07:00
omap_device.h ARM: OMAP2+: Populate legacy resources for dma and smartreflex 2017-10-10 14:23:35 -07:00
omap_hwmod_2xxx_3xxx_ipblock_data.c ARM: OMAP2+: Drop omap_hwmod_irq_info 2017-10-10 14:27:19 -07:00
omap_hwmod_2xxx_interconnect_data.c
omap_hwmod_2xxx_ipblock_data.c ARM: OMAP2+: Cleanup omap2_spi_dev_attr and other legacy data 2018-02-14 10:28:12 -08:00
omap_hwmod_3xxx_data.c Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
omap_hwmod_7xx_data.c Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
omap_hwmod_33xx_43xx_common_data.h ARM: OMAP2+: Cleanup omap2_spi_dev_attr and other legacy data 2018-02-14 10:28:12 -08:00
omap_hwmod_33xx_43xx_interconnect_data.c ARM: OMAP2+: Drop legacy struct omap_hwmod_addr_space 2017-10-10 14:27:33 -07:00
omap_hwmod_33xx_43xx_ipblock_data.c ARM: OMAP2+: Use signed value for sysc register offsets 2018-04-30 12:04:51 -07:00
omap_hwmod_33xx_data.c i2c: omap: move header to platform_data 2018-05-17 16:27:58 +02:00
omap_hwmod_43xx_data.c ARM: OMAP2+: Use signed value for sysc register offsets 2018-04-30 12:04:51 -07:00
omap_hwmod_44xx_data.c Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
omap_hwmod_54xx_data.c Merge branch 'i2c/for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-06-14 16:21:46 +09:00
omap_hwmod_81xx_data.c ARM: OMAP2+: Use signed value for sysc register offsets 2018-04-30 12:04:51 -07:00
omap_hwmod_2420_data.c i2c: omap: move header to platform_data 2018-05-17 16:27:58 +02:00
omap_hwmod_2430_data.c i2c: omap: move header to platform_data 2018-05-17 16:27:58 +02:00
omap_hwmod_common_data.c bus: ti-sysc: Make omap_hwmod_sysc_fields into sysc_regbits platform data 2017-12-21 07:28:54 -08:00
omap_hwmod_common_data.h ARM: OMAP2+: Cleanup omap_gpio_dev_attr usage 2018-02-14 10:28:12 -08:00
omap_hwmod_common_ipblock_data.c
omap_hwmod_reset.c ARM: hwmod: RTC: Don't assume lock/unlock will be called with irq enabled 2018-07-03 01:46:52 -07:00
omap_hwmod.c ARM: SoC driver updates 2018-12-31 17:32:35 -08:00
omap_hwmod.h ARM: OMAP2+: Use signed value for sysc register offsets 2018-04-30 12:04:51 -07:00
omap_opp_data.h
omap_phy_internal.c
omap_twl.c mfd: twl: Move header file out of I2C realm 2017-09-04 14:41:02 +01:00
omap-headsmp.S
omap-hotplug.c
omap-mpuss-lowpower.c
omap-secure.c ARM: omap2: hide omap3_save_secure_ram on non-OMAP3 builds 2017-12-07 15:52:21 +01:00
omap-secure.h ARM: OMAP2+: Fix SRAM virt to phys translation for save_secure_ram_context 2017-11-28 07:03:26 -08:00
omap-smc.S
omap-smp.c ARM: omap2: remove unnecessary boot_lock 2018-12-14 14:44:59 +00:00
omap-wakeupgen.c ARM: OMAP5+: Fix inverted nirq pin interrupts with irq_set_type 2019-01-23 16:20:20 -08:00
omap-wakeupgen.h
opp2xxx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
opp3xxx_data.c ARM: OMAP2+: Remove unused legacy code for opp 2017-06-08 02:57:16 -07:00
opp4xxx_data.c ARM: OMAP2+: Remove unused legacy code for opp 2017-06-08 02:57:16 -07:00
opp2420_data.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
opp2430_data.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pdata-quirks.c ARM: OMAP2: Update for new MCBSP Kconfig option 2018-12-18 12:22:57 +00:00
pm24xx.c gpio: omap: Remove custom PM calls and use cpu_pm instead 2018-09-24 14:24:44 +02:00
pm33xx-core.c ARM: omap2: avoid section mismatch warning 2018-12-12 14:04:59 -08:00
pm34xx.c gpio: omap: Remove custom PM calls and use cpu_pm instead 2018-09-24 14:24:44 +02:00
pm44xx.c ARM: OMAP2+: Make sure LOGICRETSTATE bits are not cleared 2018-05-18 07:26:33 -07:00
pm-asm-offsets.c ARM: OMAP2+: sleep33/43xx: Add RTC-Mode support 2018-07-09 23:01:34 -07:00
pm-debug.c ARM: OMAP2+: reuse DEFINE_SHOW_ATTRIBUTE() macro 2018-07-09 22:58:06 -07:00
pm.c ARM: OMAP2+: Initialize SoC PM later 2018-04-30 12:04:51 -07:00
pm.h ARM: OMAP2+: pm33xx-core: Add platform code needed for PM 2018-02-27 08:53:37 -08:00
powerdomain-common.c
powerdomain.c ARM: SoC platform updates 2018-06-11 17:49:09 -07:00
powerdomain.h ARM: OMAP2+: Add functions to save and restore powerdomain context 2018-05-18 06:56:26 -07:00
powerdomains2xxx_3xxx_data.c
powerdomains2xxx_3xxx_data.h
powerdomains2xxx_data.c
powerdomains3xxx_data.c
powerdomains7xx_data.c ARM: OMAP: dra7: powerdomain data: Register SoC specific powerdomains 2017-08-14 10:33:29 -07:00
powerdomains33xx_data.c
powerdomains43xx_data.c
powerdomains44xx_data.c
powerdomains54xx_data.c
prcm43xx.h
prcm44xx.h
prcm_mpu7xx.h
prcm_mpu44xx.c ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prcm_mpu44xx.h
prcm_mpu54xx.h
prcm_mpu_44xx_54xx.h ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prcm-common.h Merge branch 'omap-for-v4.14/fixes' into omap-for-v4.15/fixes-v2 2017-11-28 08:22:57 -08:00
prm2xxx_3xxx.c
prm2xxx_3xxx.h ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prm2xxx.c
prm2xxx.h
prm3xxx.c ARM: OMAP3: Remove legacy IRQ for PRM 2017-10-10 14:27:06 -07:00
prm3xxx.h
prm7xx.h
prm33xx.c ARM: OMAP2+: Add functions to save and restore powerdomain context 2018-05-18 06:56:26 -07:00
prm33xx.h
prm44xx_54xx.h
prm44xx.c ARM: OMAP2+: prm44xx: Fix section annotation on omap44xx_prm_enable_io_wakeup 2018-11-19 10:00:35 -08:00
prm44xx.h
prm54xx.h
prm_common.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
prm-regbits-24xx.h
prm-regbits-33xx.h
prm-regbits-34xx.h
prm-regbits-44xx.h
prm.h ARM: OMAP4: Remove legacy IRQ for PRM 2017-10-10 14:27:13 -07:00
prminst44xx.c ARM: OMAP2+: PRCM: store also physical addresses for instances 2017-06-06 00:13:51 -07:00
prminst44xx.h
scrm44xx.h
scrm54xx.h
sdrc2xxx.c
sdrc.c
sdrc.h
serial.h
sleep24xx.S
sleep33xx.S ARM: OMAP2+: sleep33/43xx: Add RTC-Mode support 2018-07-09 23:01:34 -07:00
sleep34xx.S ARM: OMAP2+: Fix SRAM virt to phys translation for save_secure_ram_context 2017-11-28 07:03:26 -08:00
sleep43xx.S ARM: OMAP2+: sleep33/43xx: Add RTC-Mode support 2018-07-09 23:01:34 -07:00
sleep44xx.S ARM: OMAP2+: Use v7_invalidate_l1 in omap4_finish_suspend 2018-02-28 14:46:53 -08:00
smartreflex-class3.c
soc.h ARM: OMAP2+: dra762: Add support for device package identification 2017-12-21 07:04:10 -08:00
sr_device.c ARM: OMAP2+: Enable ti-sysc to use device tree data for smartreflex 2018-02-28 20:03:21 -08:00
sram242x.S
sram243x.S
sram.c
sram.h
ti81xx-restart.c
ti81xx.h
timer.c ARM: OMAP2+: timer: Remove obsolete inclusion of <asm/smp_twd.h> 2018-11-19 10:06:36 -08:00
usb-tusb6010.c
usb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vc3xxx_data.c
vc44xx_data.c
vc.c ARM: remove duplicate 'const' annotations' 2017-05-19 10:12:55 +02:00
vc.h
voltage.c
voltage.h
voltagedomains2xxx_data.c
voltagedomains3xxx_data.c
voltagedomains44xx_data.c
voltagedomains54xx_data.c
vp3xxx_data.c
vp44xx_data.c
vp.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vp.h
wd_timer.c ARM: OMAP2+: Remove unused legacy code for watchdog 2017-06-08 04:15:10 -07:00
wd_timer.h