]> git.hungrycats.org Git - linux/commitdiff
[PATCH] pcmcia: it works again!
authorDominik Brodowski <linux@brodo.de>
Thu, 6 Mar 2003 09:25:00 +0000 (01:25 -0800)
committerLinus Torvalds <torvalds@home.transmeta.com>
Thu, 6 Mar 2003 09:25:00 +0000 (01:25 -0800)
platform_device_register may only be called after all class-specific
device data is initialized, or else the class-type add_device call (which
enables the pcmcia sockets) will fail.

drivers/pcmcia/hd64465_ss.c
drivers/pcmcia/i82365.c
drivers/pcmcia/tcic.c

index 21288433f0255fa900bbf49f9f8c0f45c45fbf82..37b8a95a4421e45cb843ff9f58d5a9ebc2326a94 100644 (file)
@@ -1070,8 +1070,8 @@ static int __init init_hs(void)
        }
 
 /*     hd64465_io_debug = 0; */
-       platform_device_register(&hd64465_device);
        hd64465_device.dev.class_data = &hd64465_data;
+       platform_device_register(&hd64465_device);
 
        return 0;
 }
index bc95bdefa0f504568210237eef99f21bdde5d37d..aab82c194e746b00a3c010b5188db4eb00cd5eb2 100644 (file)
@@ -1628,11 +1628,11 @@ static int __init init_i82365(void)
        request_irq(cs_irq, pcic_interrupt, 0, "i82365", pcic_interrupt);
 #endif
     
-    platform_device_register(&i82365_device);
-
     i82365_data.nsock = sockets;
     i82365_device.dev.class_data = &i82365_data;
     
+    platform_device_register(&i82365_device);
+
     /* Finally, schedule a polling interrupt */
     if (poll_interval != 0) {
        poll_timer.function = pcic_interrupt_wrapper;
index 289fd7cf7f81c97cdfb748a30bd1b02273efdc06..734831137e3b91120711ebfaeb924b248262127f 100644 (file)
@@ -452,8 +452,6 @@ static int __init init_tcic(void)
        sockets++;
     }
 
-    platform_device_register(&tcic_device);
-
     switch (socket_table[0].id) {
     case TCIC_ID_DB86082:
        printk("DB86082"); break;
@@ -527,6 +525,8 @@ static int __init init_tcic(void)
     tcic_data.nsock = sockets;
     tcic_device.dev.class_data = &tcic_data;
 
+    platform_device_register(&tcic_device);
+
     return 0;
     
 } /* init_tcic */