summaryrefslogtreecommitdiff
path: root/linux/pcmcia-cs/modules/i82365.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/pcmcia-cs/modules/i82365.c')
-rw-r--r--linux/pcmcia-cs/modules/i82365.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/linux/pcmcia-cs/modules/i82365.c b/linux/pcmcia-cs/modules/i82365.c
index fc1c782..9aaf540 100644
--- a/linux/pcmcia-cs/modules/i82365.c
+++ b/linux/pcmcia-cs/modules/i82365.c
@@ -1171,8 +1171,20 @@ static u_int __init test_irq(socket_info_t *s, int irq, int pci)
return 1;
}
irq_hits = 0;
+
+#ifndef MACH
__set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout(HZ/100);
+#else
+ /* TODO: Is this really what we want? */
+ {
+ unsigned long flags;
+
+ save_flags(flags);
+
+ mdelay(1);
+#endif
+
if (irq_hits && !irq_shared) {
free_irq(irq, socket);
DEBUG(2, " spurious hit!\n");
@@ -1198,6 +1210,12 @@ static u_int __init test_irq(socket_info_t *s, int irq, int pci)
mdelay(1);
}
+#ifdef MACH
+ restore_flags(flags);
+ }
+
+#endif
+
free_irq(irq, socket);
/* mask all interrupts */
@@ -2456,7 +2474,7 @@ static int pcic_service(u_int sock, u_int cmd, void *arg)
/*====================================================================*/
-static int __init init_i82365(void)
+int __init init_i82365(void)
{
servinfo_t serv;
CardServices(GetCardServicesInfo, &serv);