summaryrefslogtreecommitdiff
path: root/linux/pcmcia-cs/modules/i82365.c
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@gnu.org>2006-07-26 23:04:47 +0000
committerThomas Schwinge <tschwinge@gnu.org>2009-06-18 00:26:38 +0200
commit253d524b348018470c53c8f8382f6d367daede24 (patch)
tree00dfb230e5be6fea4faf1cfa7a9d8a7b0da6c656 /linux/pcmcia-cs/modules/i82365.c
parentaffb871b497129f7f191cfaf7bd458342b22c05f (diff)
2006-07-27 Stefan Siegl <stesie@brokenpipe.de>
* linux/pcmcia-cs/clients/xirc2ps_cs.c (busy_loop): Replace the code by a call to __udelay. * linux/pcmcia-cs/include/linux/init.h: Adapt to our Linux environment. * linux/pcmcia-cs/include/linux/slab.h: Use `#include', not `#include_next'. * linux/pcmcia-cs/include/pcmcia/mem_op.h: Adapt to our Linux environment and fix GCC 4.0 complaints. * linux/pcmcia-cs/include/pcmcia/version.h: Always assume that CONFIG_PCMCIA is not defined. * linux/pcmcia-cs/modules/cs.c (init_pcmcia_cs): Don't make it static. * linux/pcmcia-cs/modules/ds.c: Use some magic to avoid duplicate definition `io_req_t'. (ds_open, ds_release, ds_read, ds_write, ds_select, ds_poll, ds_fops): Hide functions if MACH is defined. Likewise for the module handling code. (ds_ioctl): Use plain `memcpy' if MACH is defined. (init_pcmcia_ds): Don't register charcater devices if MACH is defined. Include "../glue/ds.c". * linux/pcmcia-cs/modules/i82365.c (test_irq): Adapt to GNU Mach. (init_i82365): Don't make it static. * linux/pcmcia-cs/modules/pci_fixup.c (pci_devices): Don't define if MACH is defined. * linux/pcmcia-cs/wireless/orinoco.c: Adapt to our Linux environment.
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);