All of lore.kernel.org
 help / color / mirror / Atom feed
From: mikpe@it.uu.se (Mikael Pettersson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] n2100: reduce power button timer to 1 Hz
Date: Sat, 26 Sep 2009 21:53:55 +0200	[thread overview]
Message-ID: <19134.29011.460366.960746@pilspetsen.it.uu.se> (raw)

The power button on the n2100 apparently does not generate
an interrupt when pressed, so the board support code sets
up a periodic timer to sample it.

This timer operates at 10 Hz, which makes it the third worst
cause of timeouts in my kernel when idle.

10 Hz seems excessive, so this patch adds a compile-time option
to reduce the polling frequency to 1 Hz.

(This change could possibly be handled via a kernel boot option,
or even be made unconditional, but I opted for a compile-time
option for now.)

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
---
 arch/arm/mach-iop32x/Kconfig |   12 ++++++++++++
 arch/arm/mach-iop32x/n2100.c |   10 ++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)

diff -rupN linux-2.6.31.arm-n2100-1-xint1-uart/arch/arm/mach-iop32x/Kconfig linux-2.6.31.arm-n2100-2-pbpt-hz1/arch/arm/mach-iop32x/Kconfig
--- linux-2.6.31.arm-n2100-1-xint1-uart/arch/arm/mach-iop32x/Kconfig	2009-09-26 13:39:20.000000000 +0200
+++ linux-2.6.31.arm-n2100-2-pbpt-hz1/arch/arm/mach-iop32x/Kconfig	2009-09-26 13:56:05.000000000 +0200
@@ -64,4 +64,16 @@ config N2100_XINT1_UART
 
 	  Say Y if tickless operation is important for you.
 
+config N2100_PBPT_HZ1
+	bool "Set Thecus n2100 power button poll timer frequency to 1 Hz"
+	depends on MACH_N2100 && NO_HZ
+	help
+	  The Thecus n2100 power button does not generate an interrupt,
+	  so it is polled by a timer, by default at 10 Hz.
+
+	  This option reduces the polling frequency to 1 Hz, which helps
+	  tickless systems keep the timer interrupt rate low.
+
+	  Say Y if tickless operation is important for you.
+
 endif
diff -rupN linux-2.6.31.arm-n2100-1-xint1-uart/arch/arm/mach-iop32x/n2100.c linux-2.6.31.arm-n2100-2-pbpt-hz1/arch/arm/mach-iop32x/n2100.c
--- linux-2.6.31.arm-n2100-1-xint1-uart/arch/arm/mach-iop32x/n2100.c	2009-09-26 13:49:18.000000000 +0200
+++ linux-2.6.31.arm-n2100-2-pbpt-hz1/arch/arm/mach-iop32x/n2100.c	2009-09-26 13:56:43.000000000 +0200
@@ -307,6 +307,12 @@ static void n2100_power_off(void)
 
 static struct timer_list power_button_poll_timer;
 
+#ifdef CONFIG_N2100_PBPT_HZ1
+#define N2100_PBPT_DELTA	(HZ)
+#else
+#define N2100_PBPT_DELTA	(HZ / 10)
+#endif
+
 static void power_button_poll(unsigned long dummy)
 {
 	if (gpio_line_get(N2100_POWER_BUTTON) == 0) {
@@ -314,7 +320,7 @@ static void power_button_poll(unsigned l
 		return;
 	}
 
-	power_button_poll_timer.expires = jiffies + (HZ / 10);
+	power_button_poll_timer.expires = jiffies + N2100_PBPT_DELTA;
 	add_timer(&power_button_poll_timer);
 }
 
@@ -334,7 +340,7 @@ static void __init n2100_init_machine(vo
 
 	init_timer(&power_button_poll_timer);
 	power_button_poll_timer.function = power_button_poll;
-	power_button_poll_timer.expires = jiffies + (HZ / 10);
+	power_button_poll_timer.expires = jiffies + N2100_PBPT_DELTA;
 	add_timer(&power_button_poll_timer);
 }
 

             reply	other threads:[~2009-09-26 19:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-26 19:53 Mikael Pettersson [this message]
2009-09-28  8:06 ` [PATCH 2/2] n2100: reduce power button timer to 1 Hz Aaro Koskinen
2009-09-28 10:30   ` Mikael Pettersson
2009-09-28 10:44     ` Aaro Koskinen
2009-09-28 11:26       ` Mikael Pettersson
2009-09-28  9:52 ` Lennert Buytenhek
2009-09-28 10:25   ` Mikael Pettersson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=19134.29011.460366.960746@pilspetsen.it.uu.se \
    --to=mikpe@it.uu.se \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.