[PATCH] ocfs2: fix oops in mmap_truncate testing
[pandora-kernel.git] / arch / mips / lasat / setup.c
index 488007f..e072da4 100644 (file)
@@ -27,8 +27,6 @@
 #include <linux/pci.h>
 #include <linux/interrupt.h>
 #include <linux/tty.h>
-#include <linux/serial.h>
-#include <linux/serial_core.h>
 
 #include <asm/time.h>
 #include <asm/cpu.h>
@@ -48,7 +46,7 @@
 
 #include "prom.h"
 
-int lasat_command_line = 0;
+int lasat_command_line;
 void lasatint_init(void);
 
 extern void lasat_reboot_setup(void);
@@ -57,11 +55,16 @@ extern void edhac_init(void *, void *, void *);
 extern void addrflt_init(void);
 
 struct lasat_misc lasat_misc_info[N_MACHTYPES] = {
-       {(void *)KSEG1ADDR(0x1c840000), (void *)KSEG1ADDR(0x1c800000), 2},
-       {(void *)KSEG1ADDR(0x11080000), (void *)KSEG1ADDR(0x11000000), 6}
+       {
+               .reset_reg      = (void *)KSEG1ADDR(0x1c840000),
+               .flash_wp_reg   = (void *)KSEG1ADDR(0x1c800000), 2
+       }, {
+               .reset_reg      = (void *)KSEG1ADDR(0x11080000),
+               .flash_wp_reg   = (void *)KSEG1ADDR(0x11000000), 6
+       }
 };
 
-struct lasat_misc *lasat_misc = NULL;
+struct lasat_misc *lasat_misc;
 
 #ifdef CONFIG_DS1603
 static struct ds_defs ds_defs[N_MACHTYPES] = {
@@ -105,50 +108,22 @@ static int lasat_panic_prom_monitor(struct notifier_block *this,
 
 static struct notifier_block lasat_panic_block[] =
 {
-       { lasat_panic_display, NULL, INT_MAX },
-       { lasat_panic_prom_monitor, NULL, INT_MIN }
+       {
+               .notifier_call  = lasat_panic_display,
+               .priority       = INT_MAX
+       }, {
+               .notifier_call  = lasat_panic_prom_monitor,
+               .priority       = INT_MIN
+       }
 };
 
-static void lasat_time_init(void)
+void __init plat_time_init(void)
 {
        mips_hpt_frequency = lasat_board_info.li_cpu_hz / 2;
-}
 
-void __init plat_timer_setup(struct irqaction *irq)
-{
-       change_c0_status(ST0_IM, IE_IRQ0 | IE_IRQ5);
+       change_c0_status(ST0_IM, IE_IRQ0);
 }
 
-#define DYNAMIC_SERIAL_INIT
-#ifdef DYNAMIC_SERIAL_INIT
-void __init serial_init(void)
-{
-#ifdef CONFIG_SERIAL_8250
-       struct uart_port s;
-
-       memset(&s, 0, sizeof(s));
-
-       s.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST;
-       s.iotype = UPIO_MEM;
-
-       if (mips_machtype == MACH_LASAT_100) {
-               s.uartclk = LASAT_BASE_BAUD_100 * 16;
-               s.irq = LASATINT_UART_100;
-               s.regshift = LASAT_UART_REGS_SHIFT_100;
-               s.membase = (char *)KSEG1ADDR(LASAT_UART_REGS_BASE_100);
-       } else {
-               s.uartclk = LASAT_BASE_BAUD_200 * 16;
-               s.irq = LASATINT_UART_200;
-               s.regshift = LASAT_UART_REGS_SHIFT_200;
-               s.membase = (char *)KSEG1ADDR(LASAT_UART_REGS_BASE_200);
-       }
-
-       if (early_serial_setup(&s) != 0)
-               printk(KERN_ERR "Serial setup failed!\n");
-#endif
-}
-#endif
-
 void __init plat_mem_setup(void)
 {
        int i;
@@ -158,25 +133,19 @@ void __init plat_mem_setup(void)
 #endif
 
        /* Set up panic notifier */
-       for (i = 0; i < sizeof(lasat_panic_block) / sizeof(struct notifier_block); i++)
+       for (i = 0; i < ARRAY_SIZE(lasat_panic_block); i++)
                atomic_notifier_chain_register(&panic_notifier_list,
                                &lasat_panic_block[i]);
 
        lasat_reboot_setup();
 
-       board_time_init = lasat_time_init;
-
 #ifdef CONFIG_DS1603
        ds1603 = &ds_defs[mips_machtype];
-       rtc_mips_get_time = ds1603_read;
-       rtc_mips_set_time = ds1603_set;
 #endif
 
 #ifdef DYNAMIC_SERIAL_INIT
        serial_init();
 #endif
-       /* Switch from prom exception handler to normal mode */
-       change_c0_status(ST0_BEV,0);
 
        pr_info("Lasat specific initialization complete\n");
 }