]> err.no Git - linux-2.6/blobdiff - arch/ppc/platforms/chrp_setup.c
[PATCH] ppc32: nvram driver for chrp
[linux-2.6] / arch / ppc / platforms / chrp_setup.c
index 57f29ab29bdae072f6f25090f3f4952b401e8e71..f1b70ab3c6fd892a34ef182427e32e63e0c52c2b 100644 (file)
@@ -32,7 +32,6 @@
 #include <linux/module.h>
 #include <linux/delay.h>
 #include <linux/ide.h>
-#include <linux/irq.h>
 #include <linux/console.h>
 #include <linux/seq_file.h>
 #include <linux/root_dev.h>
@@ -105,7 +104,7 @@ static const char *gg2_cachemodes[4] = {
        "Disabled", "Write-Through", "Copy-Back", "Transparent Mode"
 };
 
-int __chrp
+int
 chrp_show_cpuinfo(struct seq_file *m)
 {
        int i, sdramen;
@@ -303,7 +302,7 @@ void __init chrp_setup_arch(void)
        pci_create_OF_bus_map();
 }
 
-void __chrp
+void
 chrp_event_scan(void)
 {
        unsigned char log[1024];
@@ -314,7 +313,7 @@ chrp_event_scan(void)
        ppc_md.heartbeat_count = ppc_md.heartbeat_reset;
 }
 
-void __chrp
+void
 chrp_restart(char *cmd)
 {
        printk("RTAS system-reboot returned %d\n",
@@ -322,7 +321,7 @@ chrp_restart(char *cmd)
        for (;;);
 }
 
-void __chrp
+void
 chrp_power_off(void)
 {
        /* allow power on only with power button press */
@@ -331,20 +330,12 @@ chrp_power_off(void)
        for (;;);
 }
 
-void __chrp
+void
 chrp_halt(void)
 {
        chrp_power_off();
 }
 
-u_int __chrp
-chrp_irq_canonicalize(u_int irq)
-{
-       if (irq == 2)
-               return 9;
-       return irq;
-}
-
 /*
  * Finds the open-pic node and sets OpenPIC_Addr based on its reg property.
  * Then checks if it has an interrupt-ranges property.  If it does then
@@ -445,9 +436,7 @@ void __init chrp_init_IRQ(void)
                                       i8259_irq);
 
        }
-       for (i = 0; i < NUM_8259_INTERRUPTS; i++)
-               irq_desc[i].handler = &i8259_pic;
-       i8259_init(chrp_int_ack);
+       i8259_init(chrp_int_ack, 0);
 
 #if defined(CONFIG_VT) && defined(CONFIG_INPUT_ADBHID) && defined(XMON)
        /* see if there is a keyboard in the device tree
@@ -465,8 +454,7 @@ void __init
 chrp_init2(void)
 {
 #ifdef CONFIG_NVRAM
-// XX replace this in a more saner way
-//     pmac_nvram_init();
+       chrp_nvram_init();
 #endif
 
        request_region(0x20,0x20,"pic1");
@@ -500,6 +488,7 @@ chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
        DMA_MODE_READ = 0x44;
        DMA_MODE_WRITE = 0x48;
        isa_io_base = CHRP_ISA_IO_BASE;         /* default value */
+       ppc_do_canonicalize_irqs = 1;
 
        if (root)
                machine = get_property(root, "model", NULL);
@@ -518,7 +507,6 @@ chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
        ppc_md.show_percpuinfo = of_show_percpuinfo;
        ppc_md.show_cpuinfo   = chrp_show_cpuinfo;
 
-       ppc_md.irq_canonicalize = chrp_irq_canonicalize;
        ppc_md.init_IRQ       = chrp_init_IRQ;
        if (_chrp_type == _CHRP_Pegasos)
                ppc_md.get_irq        = i8259_irq;
@@ -562,7 +550,7 @@ chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
 #endif
 
 #ifdef CONFIG_SMP
-       ppc_md.smp_ops = &chrp_smp_ops;
+       smp_ops = &chrp_smp_ops;
 #endif /* CONFIG_SMP */
 
        /*
@@ -572,7 +560,7 @@ chrp_init(unsigned long r3, unsigned long r4, unsigned long r5,
        if (ppc_md.progress) ppc_md.progress("Linux/PPC "UTS_RELEASE"\n", 0x0);
 }
 
-void __chrp
+void
 rtas_display_progress(char *s, unsigned short hex)
 {
        int width;
@@ -599,7 +587,7 @@ rtas_display_progress(char *s, unsigned short hex)
        call_rtas( "display-character", 1, 1, NULL, ' ' );
 }
 
-void __chrp
+void
 rtas_indicator_progress(char *s, unsigned short hex)
 {
        call_rtas("set-indicator", 3, 1, NULL, 6, 0, hex);