[PATCH] pcmcia: it works again! [Was: Re: [PATCH] Re: pcmcia no worky in 2.5.6[32]]

Dominik Brodowski (linux@brodo.de)
Fri, 7 Mar 2003 00:30:47 +0100


Hi Linus,

On Thu, Mar 06, 2003 at 01:07:58PM +1100, Brett wrote:
> > Yes: platform_match within the pcmcia core wasn't doing was it was supposed
> > to do... and it still doesn't work in 2.5.64. So could you please try if it
> > works with this patch against 2.5.64?
>
> Yep, the patch fixed it.
> Now happy in 2.5.64 with pcmcia again
>
> many thanks,
>
> / Brett

please apply this patch:

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.

hd64465_ss.c | 2 +-
i82365.c | 4 ++--
tcic.c | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)

Dominik

diff -ruN linux-original/drivers/pcmcia/hd64465_ss.c linux/drivers/pcmcia/hd64465_ss.c
--- linux-original/drivers/pcmcia/hd64465_ss.c 2003-03-05 07:19:13.000000000 +0100
+++ linux/drivers/pcmcia/hd64465_ss.c 2003-03-05 07:35:34.000000000 +0100
@@ -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;
}
diff -ruN linux-original/drivers/pcmcia/i82365.c linux/drivers/pcmcia/i82365.c
--- linux-original/drivers/pcmcia/i82365.c 2003-03-05 07:19:13.000000000 +0100
+++ linux/drivers/pcmcia/i82365.c 2003-03-05 07:35:34.000000000 +0100
@@ -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;
diff -ruN linux-original/drivers/pcmcia/tcic.c linux/drivers/pcmcia/tcic.c
--- linux-original/drivers/pcmcia/tcic.c 2003-03-05 07:19:13.000000000 +0100
+++ linux/drivers/pcmcia/tcic.c 2003-03-05 07:35:34.000000000 +0100
@@ -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 */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/