]> err.no Git - linux-2.6/blobdiff - drivers/input/serio/i8042-sparcio.h
sparc: i8042-sparcio.h: fix warning
[linux-2.6] / drivers / input / serio / i8042-sparcio.h
index 54adba2d8ed59edab76a80c5f6c2a3b65765d35f..66bafe308b0cd053252e4f0cbf8b3644dfd7c5a5 100644 (file)
@@ -16,6 +16,7 @@ static int i8042_aux_irq = -1;
 #define I8042_MUX_PHYS_DESC "sparcps2/serio%d"
 
 static void __iomem *kbd_iobase;
+static struct resource *kbd_res;
 
 #define I8042_COMMAND_REG      (kbd_iobase + 0x64UL)
 #define I8042_DATA_REG         (kbd_iobase + 0x60UL)
@@ -40,6 +41,8 @@ static inline void i8042_write_command(int val)
        writeb(val, kbd_iobase + 0x64UL);
 }
 
+#ifdef CONFIG_PCI
+
 #define OBP_PS2KBD_NAME1       "kb_ps2"
 #define OBP_PS2KBD_NAME2       "keyboard"
 #define OBP_PS2MS_NAME1                "kdmouse"
@@ -60,6 +63,7 @@ static int __devinit sparc_i8042_probe(struct of_device *op, const struct of_dev
                        i8042_kbd_irq = irq;
                        kbd_iobase = of_ioremap(&kbd->resource[0],
                                                0, 8, "kbd");
+                       kbd_res = &kbd->resource[0];
                } else if (!strcmp(dp->name, OBP_PS2MS_NAME1) ||
                           !strcmp(dp->name, OBP_PS2MS_NAME2)) {
                        struct of_device *ms = of_find_device_by_node(dp);
@@ -77,7 +81,7 @@ static int __devinit sparc_i8042_probe(struct of_device *op, const struct of_dev
 
 static int __devexit sparc_i8042_remove(struct of_device *op)
 {
-       of_iounmap(kbd_iobase, 8);
+       of_iounmap(kbd_res, kbd_iobase, 8);
 
        return 0;
 }
@@ -99,9 +103,6 @@ static struct of_platform_driver sparc_i8042_driver = {
 
 static int __init i8042_platform_init(void)
 {
-#ifndef CONFIG_PCI
-       return -ENODEV;
-#else
        struct device_node *root = of_find_node_by_path("/");
 
        if (!strcmp(root->name, "SUNW,JavaStation-1")) {
@@ -119,7 +120,7 @@ static int __init i8042_platform_init(void)
                if (i8042_kbd_irq == -1 ||
                    i8042_aux_irq == -1) {
                        if (kbd_iobase) {
-                               of_iounmap(kbd_iobase, 8);
+                               of_iounmap(kbd_res, kbd_iobase, 8);
                                kbd_iobase = (void __iomem *) NULL;
                        }
                        return -ENODEV;
@@ -129,17 +130,25 @@ static int __init i8042_platform_init(void)
        i8042_reset = 1;
 
        return 0;
-#endif /* CONFIG_PCI */
 }
 
 static inline void i8042_platform_exit(void)
 {
-#ifdef CONFIG_PCI
        struct device_node *root = of_find_node_by_path("/");
 
        if (strcmp(root->name, "SUNW,JavaStation-1"))
                of_unregister_driver(&sparc_i8042_driver);
-#endif
 }
 
+#else /* !CONFIG_PCI */
+static int __init i8042_platform_init(void)
+{
+       return -ENODEV;
+}
+
+static inline void i8042_platform_exit(void)
+{
+}
+#endif /* !CONFIG_PCI */
+
 #endif /* _I8042_SPARCIO_H */