24ed960abf
This changes all DEFINE_TIMER() callbacks to use a struct timer_list pointer instead of unsigned long. Since the data argument has already been removed, none of these callbacks are using their argument currently, so this renames the argument to "unused". Done using the following semantic patch: @match_define_timer@ declarer name DEFINE_TIMER; identifier _timer, _callback; @@ DEFINE_TIMER(_timer, _callback); @change_callback depends on match_define_timer@ identifier match_define_timer._callback; type _origtype; identifier _origarg; @@ void -_callback(_origtype _origarg) +_callback(struct timer_list *unused) { ... } Signed-off-by: Kees Cook <keescook@chromium.org>
56 lines
1.5 KiB
C
56 lines
1.5 KiB
C
/*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file "COPYING" in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
* Display routines for display messages in MIPS boards ascii display.
|
|
*
|
|
* Copyright (C) 1999,2000,2012 MIPS Technologies, Inc.
|
|
* All rights reserved.
|
|
* Authors: Carsten Langgaard <carstenl@mips.com>
|
|
* Steven J. Hill <sjhill@mips.com>
|
|
*/
|
|
#include <linux/compiler.h>
|
|
#include <linux/timer.h>
|
|
#include <linux/io.h>
|
|
|
|
#include <asm/mips-boards/generic.h>
|
|
|
|
extern const char display_string[];
|
|
static unsigned int display_count;
|
|
static unsigned int max_display_count;
|
|
|
|
void mips_display_message(const char *str)
|
|
{
|
|
static unsigned int __iomem *display = NULL;
|
|
int i;
|
|
|
|
if (unlikely(display == NULL))
|
|
display = ioremap(ASCII_DISPLAY_POS_BASE, 16*sizeof(int));
|
|
|
|
for (i = 0; i <= 14; i += 2) {
|
|
if (*str)
|
|
__raw_writel(*str++, display + i);
|
|
else
|
|
__raw_writel(' ', display + i);
|
|
}
|
|
}
|
|
|
|
static void scroll_display_message(struct timer_list *unused);
|
|
static DEFINE_TIMER(mips_scroll_timer, scroll_display_message);
|
|
|
|
static void scroll_display_message(struct timer_list *unused)
|
|
{
|
|
mips_display_message(&display_string[display_count++]);
|
|
if (display_count == max_display_count)
|
|
display_count = 0;
|
|
|
|
mod_timer(&mips_scroll_timer, jiffies + HZ);
|
|
}
|
|
|
|
void mips_scroll_message(void)
|
|
{
|
|
del_timer_sync(&mips_scroll_timer);
|
|
max_display_count = strlen(display_string) + 1 - 8;
|
|
mod_timer(&mips_scroll_timer, jiffies + 1);
|
|
}
|