diff options
author | Daniel Ritz <daniel.ritz@gmx.ch> | 2005-06-23 03:10:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-23 12:45:31 -0400 |
commit | fa912bcb06d5dc9525d8912a145db2bf4b7668c5 (patch) | |
tree | 5c62d9a1ef416c83d3e149ca94c4e646eb29daf2 /include/pcmcia | |
parent | 7007cab53176dc906e67b4efa62f20ff1432805a (diff) |
[PATCH] yenta TI: turn off interrupts during card power-on #2
- make boot-up card recognition more reliable (ie. redo interrogation
always if there is no valid 'card inserted' state) (and yes, i saw it
happening on an o2micro controller that both CB_CBARD and CB_16BITCARD
bits were set at the same time)
- also redo interrogation before probing the ISA interrupts. it's safer
to do the probing with the socket in a clean state.
- make card insert detect more reliable. yenta_get_status() now returns
SS_PENDING as long as the card is not completley inserted and one of the
voltage bits is set. also !CB_CBARD doesn't mean CB_16BITCARD. there is
CB_NOTACARD as well, so make an explicit check for CB_16BITCARD.
- for TI bridges: disable IRQs during power-on. in all-serial and tied
interrupt mode the interrupts are always disabled for single-slot
controllers. for two-slot contollers the disabling is only done when the
other slot is empty. to force disabling there is a new module parameter
now: pwr_irqs_off=Y (which is a regression for working setups. that's
why it's an option, only use when required)
- modparm to disable ISA interrupt probing (isa_probe, defaults to on)
- remove unneeded code/cleanups (ie. merge yenta_events() into
yenta_interrupts())
Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/pcmcia')
-rw-r--r-- | include/pcmcia/ss.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h index 6d3413a56708..67b867f31fe4 100644 --- a/include/pcmcia/ss.h +++ b/include/pcmcia/ss.h | |||
@@ -77,6 +77,11 @@ extern socket_state_t dead_socket; | |||
77 | /* Use this just for bridge windows */ | 77 | /* Use this just for bridge windows */ |
78 | #define MAP_IOSPACE 0x20 | 78 | #define MAP_IOSPACE 0x20 |
79 | 79 | ||
80 | /* power hook operations */ | ||
81 | #define HOOK_POWER_PRE 0x01 | ||
82 | #define HOOK_POWER_POST 0x02 | ||
83 | |||
84 | |||
80 | typedef struct pccard_io_map { | 85 | typedef struct pccard_io_map { |
81 | u_char map; | 86 | u_char map; |
82 | u_char flags; | 87 | u_char flags; |
@@ -222,6 +227,9 @@ struct pcmcia_socket { | |||
222 | /* Zoom video behaviour is so chip specific its not worth adding | 227 | /* Zoom video behaviour is so chip specific its not worth adding |
223 | this to _ops */ | 228 | this to _ops */ |
224 | void (*zoom_video)(struct pcmcia_socket *, int); | 229 | void (*zoom_video)(struct pcmcia_socket *, int); |
230 | |||
231 | /* so is power hook */ | ||
232 | int (*power_hook)(struct pcmcia_socket *sock, int operation); | ||
225 | 233 | ||
226 | /* state thread */ | 234 | /* state thread */ |
227 | struct semaphore skt_sem; /* protects socket h/w state */ | 235 | struct semaphore skt_sem; /* protects socket h/w state */ |