Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 67596573 authored by Paul Burton's avatar Paul Burton Committed by Ralf Baechle
Browse files

MIPS: Allow 24Hz timer frequency



A boundary exists beyond which the timer frequency becomes high enough
that timer interrupts saturate the system and either cause it to slow to
a crawl or stop functioning entirely. Where that boundary lies depends
upon a number of factors such as the overhead of each interrupt and the
overall speed of the CPU, but correlates strongly with the clock
frequency at which the CPU runs. When running on emulators during
bringup or debug of a CPU that clock frequency is very low, which
results in the boundary at which the timer frequency becomes
unsustainable being very low. The current minimum of 48Hz pushes against
boundary in certain situations in current systems. Allow the kernel to
be configured for a 24Hz timer frequency in order to avoid problems on
such slow running systems.

Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/11184/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent a13c9962
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -2530,6 +2530,9 @@ choice
	help
	 Allows the configuration of the timer frequency.

	config HZ_24
		bool "24 HZ" if SYS_SUPPORTS_24HZ || SYS_SUPPORTS_ARBIT_HZ

	config HZ_48
		bool "48 HZ" if SYS_SUPPORTS_48HZ || SYS_SUPPORTS_ARBIT_HZ

@@ -2553,6 +2556,9 @@ choice

endchoice

config SYS_SUPPORTS_24HZ
	bool

config SYS_SUPPORTS_48HZ
	bool

@@ -2576,13 +2582,18 @@ config SYS_SUPPORTS_1024HZ

config SYS_SUPPORTS_ARBIT_HZ
	bool
	default y if !SYS_SUPPORTS_48HZ && !SYS_SUPPORTS_100HZ && \
		     !SYS_SUPPORTS_128HZ && !SYS_SUPPORTS_250HZ && \
		     !SYS_SUPPORTS_256HZ && !SYS_SUPPORTS_1000HZ && \
	default y if !SYS_SUPPORTS_24HZ && \
		     !SYS_SUPPORTS_48HZ && \
		     !SYS_SUPPORTS_100HZ && \
		     !SYS_SUPPORTS_128HZ && \
		     !SYS_SUPPORTS_250HZ && \
		     !SYS_SUPPORTS_256HZ && \
		     !SYS_SUPPORTS_1000HZ && \
		     !SYS_SUPPORTS_1024HZ

config HZ
	int
	default 24 if HZ_24
	default 48 if HZ_48
	default 100 if HZ_100
	default 128 if HZ_128