diff options
author | Thomas Schwinge <tschwinge@gnu.org> | 2006-07-26 23:04:47 +0000 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gnu.org> | 2009-06-18 00:26:38 +0200 |
commit | 253d524b348018470c53c8f8382f6d367daede24 (patch) | |
tree | 00dfb230e5be6fea4faf1cfa7a9d8a7b0da6c656 /linux/pcmcia-cs/modules/i82365.c | |
parent | affb871b497129f7f191cfaf7bd458342b22c05f (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.c | 20 |
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); |