: i82365 & platform_bus_type
Subsystems (2)
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
@@ -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
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 port0x3e0ofs0x00, 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
@@ -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
@@ -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
@@ -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 */