Skip to contentSkip to conversation

: i82365 & platform_bus_type

PATCH New Jean Tourrilhes 2 participants 2 messages Mar 4, 2003

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 : i82365 & platform_bus_type

	Hi,

	I'm trying to get i82365 to work again, because I need to test

802.11 drivers (hint : most Pcmcia carrier sold alongside 802.11 cards are 16 bits only).
Trying to make the driver compile and load in 2.5.63, I've
made the fix bellow. Seeing the obviousness of the bug, it seems that nobody is using modules anymore ;-)
-------------------------------------------------

drivers/base/platform.c Mon Mar 3 17:02:22 2003 renamed from drivers/base/platform.c.original Mon Mar 3 17:01:17 2003 +1 -0
diff -u -p linux/drivers/base/platform.c.original linux/drivers/base/platform.c
@@ -60,5 +60,6 @@ static int __init platform_bus_init(void
 
 postcore_initcall(platform_bus_init);
 
+EXPORT_SYMBOL(platform_bus_type);
 EXPORT_SYMBOL(platform_device_register);
 EXPORT_SYMBOL(platform_device_unregister);

-------------------------------------------------

It now loads, but ends up in :
---------------------------------------
Linux Kernel Card Services 3.1.22
options: [pci] [cardbus] [pm]
Intel PCIC probe:
Vadem VG-469 ISA-to-PCMCIA at port 0x3e0 ofs 0x00, 2 sockets
host opts [0]: none
host opts [1]: none
ISA irqs (scanned) = 4,5 polling interval = 1000 ms
ds: no socket drivers loaded!
---------------------------------------

	<Rant about post-freeze deleted>

	Have fun...

	Jean
#1 lore raw

PATCH 1/1 pcmcia: get initialization ordering right [Was: [PATCH 2.5] : i82365 & platform_bus_type]

Hi,

Quoted 3 lines · Jean Tourrilhes
	Hi,

	I'm trying to get i82365 to work again, because I need to test

<snip>

Quoted 6 lines

Intel PCIC probe:
Vadem VG-469 ISA-to-PCMCIA at port 0x3e0 ofs 0x00, 2 sockets
host opts [0]: none
host opts [1]: none
ISA irqs (scanned) = 4,5 polling interval = 1000 ms
ds: no socket drivers loaded!

Sorry about that -- I mixed up the ordering of initializing the class data and registering the platform device. Here's a bugfix for the three pcmcia socket drivers that are platform devices.

Please apply,
Dominik

drivers/pcmcia/hd64465_ss.c +1 -1
diff -ruN linux-original/drivers/pcmcia/hd64465_ss.c linux/drivers/pcmcia/hd64465_ss.c
@@ -1070,8 +1070,8 @@
 	}
 
 /*	hd64465_io_debug = 0; */
-	platform_device_register(&hd64465_device);
 	hd64465_device.dev.class_data = &hd64465_data;
+	platform_device_register(&hd64465_device);
 
 	return 0;
 }
drivers/pcmcia/i82365.c +2 -2
diff -ruN linux-original/drivers/pcmcia/i82365.c linux/drivers/pcmcia/i82365.c
@@ -1628,11 +1628,11 @@
 	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;
drivers/pcmcia/tcic.c +2 -2
diff -ruN linux-original/drivers/pcmcia/tcic.c linux/drivers/pcmcia/tcic.c
@@ -452,8 +452,6 @@
 	sockets++;
     }
 
-    platform_device_register(&tcic_device);
-
     switch (socket_table[0].id) {
     case TCIC_ID_DB86082:
 	printk("DB86082"); break;
@@ -527,6 +525,8 @@
     tcic_data.nsock = sockets;
     tcic_device.dev.class_data = &tcic_data;
 
+    platform_device_register(&tcic_device);
+
     return 0;
     
 } /* init_tcic */