|
@@ -53,37 +53,11 @@
|
|
|
|
|
|
unsigned long cpu_khz;
|
|
unsigned long cpu_khz;
|
|
|
|
|
|
-#if defined(CONFIG_MIPS_ATLAS)
|
|
|
|
-static char display_string[] = " LINUX ON ATLAS ";
|
|
|
|
-#endif
|
|
|
|
-#if defined(CONFIG_MIPS_MALTA)
|
|
|
|
-#if defined(CONFIG_MIPS_MT_SMTC)
|
|
|
|
-static char display_string[] = " SMTC LINUX ON MALTA ";
|
|
|
|
-#else
|
|
|
|
-static char display_string[] = " LINUX ON MALTA ";
|
|
|
|
-#endif /* CONFIG_MIPS_MT_SMTC */
|
|
|
|
-#endif
|
|
|
|
-#if defined(CONFIG_MIPS_SEAD)
|
|
|
|
-static char display_string[] = " LINUX ON SEAD ";
|
|
|
|
-#endif
|
|
|
|
-static unsigned int display_count;
|
|
|
|
-#define MAX_DISPLAY_COUNT (sizeof(display_string) - 8)
|
|
|
|
-
|
|
|
|
#define CPUCTR_IMASKBIT (0x100 << MIPSCPU_INT_CPUCTR)
|
|
#define CPUCTR_IMASKBIT (0x100 << MIPSCPU_INT_CPUCTR)
|
|
|
|
|
|
-static unsigned int timer_tick_count;
|
|
|
|
static int mips_cpu_timer_irq;
|
|
static int mips_cpu_timer_irq;
|
|
extern void smtc_timer_broadcast(int);
|
|
extern void smtc_timer_broadcast(int);
|
|
|
|
|
|
-static inline void scroll_display_message(void)
|
|
|
|
-{
|
|
|
|
- if ((timer_tick_count++ % HZ) == 0) {
|
|
|
|
- mips_display_message(&display_string[display_count++]);
|
|
|
|
- if (display_count == MAX_DISPLAY_COUNT)
|
|
|
|
- display_count = 0;
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static void mips_timer_dispatch(void)
|
|
static void mips_timer_dispatch(void)
|
|
{
|
|
{
|
|
do_IRQ(mips_cpu_timer_irq);
|
|
do_IRQ(mips_cpu_timer_irq);
|
|
@@ -143,7 +117,6 @@ irqreturn_t mips_timer_interrupt(int irq, void *dev_id)
|
|
if (cpu_data[cpu].vpe_id == 0) {
|
|
if (cpu_data[cpu].vpe_id == 0) {
|
|
timer_interrupt(irq, NULL);
|
|
timer_interrupt(irq, NULL);
|
|
smtc_timer_broadcast(cpu_data[cpu].vpe_id);
|
|
smtc_timer_broadcast(cpu_data[cpu].vpe_id);
|
|
- scroll_display_message();
|
|
|
|
} else {
|
|
} else {
|
|
write_c0_compare(read_c0_count() +
|
|
write_c0_compare(read_c0_count() +
|
|
(mips_hpt_frequency/HZ));
|
|
(mips_hpt_frequency/HZ));
|
|
@@ -167,8 +140,6 @@ irqreturn_t mips_timer_interrupt(int irq, void *dev_id)
|
|
/* we keep interrupt disabled all the time */
|
|
/* we keep interrupt disabled all the time */
|
|
if (!r2 || (read_c0_cause() & (1 << 30)))
|
|
if (!r2 || (read_c0_cause() & (1 << 30)))
|
|
timer_interrupt(irq, NULL);
|
|
timer_interrupt(irq, NULL);
|
|
-
|
|
|
|
- scroll_display_message();
|
|
|
|
} else {
|
|
} else {
|
|
/* Everyone else needs to reset the timer int here as
|
|
/* Everyone else needs to reset the timer int here as
|
|
ll_local_timer_interrupt doesn't */
|
|
ll_local_timer_interrupt doesn't */
|
|
@@ -262,6 +233,8 @@ void __init mips_time_init(void)
|
|
(est_freq%1000000)*100/1000000);
|
|
(est_freq%1000000)*100/1000000);
|
|
|
|
|
|
cpu_khz = est_freq / 1000;
|
|
cpu_khz = est_freq / 1000;
|
|
|
|
+
|
|
|
|
+ mips_scroll_message();
|
|
}
|
|
}
|
|
|
|
|
|
void __init plat_timer_setup(struct irqaction *irq)
|
|
void __init plat_timer_setup(struct irqaction *irq)
|