diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2007-05-16 11:54:08 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-06-06 14:34:30 -0400 |
commit | 79894c7b47f78decaa3511f1d6646aa06e2c6bed (patch) | |
tree | bd09192fbf3aa9268e3cb68474bc0cee55d35c3f /arch/mips/mips-boards/generic/display.c | |
parent | 5ecd3100e695228ac5e0ce0e325e252c0f11806f (diff) |
[MIPS] Atlas, Malta, SEAD: Remove scroll from interrupt handler.
Aside of being handy for debugging this has never been a particularly
good idea but is now getting in the way of dyntick / tickless kernels
and general cleanups.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/mips-boards/generic/display.c')
-rw-r--r-- | arch/mips/mips-boards/generic/display.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/mips/mips-boards/generic/display.c b/arch/mips/mips-boards/generic/display.c index 548dbe5ce7c8..5d600054090a 100644 --- a/arch/mips/mips-boards/generic/display.c +++ b/arch/mips/mips-boards/generic/display.c | |||
@@ -19,9 +19,14 @@ | |||
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/compiler.h> | 21 | #include <linux/compiler.h> |
22 | #include <linux/timer.h> | ||
22 | #include <asm/io.h> | 23 | #include <asm/io.h> |
23 | #include <asm/mips-boards/generic.h> | 24 | #include <asm/mips-boards/generic.h> |
24 | 25 | ||
26 | extern const char display_string[]; | ||
27 | static unsigned int display_count; | ||
28 | static unsigned int max_display_count; | ||
29 | |||
25 | void mips_display_message(const char *str) | 30 | void mips_display_message(const char *str) |
26 | { | 31 | { |
27 | static unsigned int __iomem *display = NULL; | 32 | static unsigned int __iomem *display = NULL; |
@@ -37,3 +42,22 @@ void mips_display_message(const char *str) | |||
37 | writel(' ', display + i); | 42 | writel(' ', display + i); |
38 | } | 43 | } |
39 | } | 44 | } |
45 | |||
46 | static void scroll_display_message(unsigned long data); | ||
47 | static DEFINE_TIMER(mips_scroll_timer, scroll_display_message, HZ, 0); | ||
48 | |||
49 | static void scroll_display_message(unsigned long data) | ||
50 | { | ||
51 | mips_display_message(&display_string[display_count++]); | ||
52 | if (display_count == max_display_count) | ||
53 | display_count = 0; | ||
54 | |||
55 | mod_timer(&mips_scroll_timer, jiffies + HZ); | ||
56 | } | ||
57 | |||
58 | void mips_scroll_message(void) | ||
59 | { | ||
60 | del_timer_sync(&mips_scroll_timer); | ||
61 | max_display_count = strlen(display_string) + 1 - 8; | ||
62 | mod_timer(&mips_scroll_timer, jiffies + 1); | ||
63 | } | ||