[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>
This commit is contained in:
committed by
Linus Torvalds
parent
7007cab531
commit
fa912bcb06
@ -508,6 +508,10 @@ static int socket_setup(struct pcmcia_socket *skt, int initial_delay)
|
||||
cs_err(skt, "unsupported voltage key.\n");
|
||||
return CS_BAD_TYPE;
|
||||
}
|
||||
|
||||
if (skt->power_hook)
|
||||
skt->power_hook(skt, HOOK_POWER_PRE);
|
||||
|
||||
skt->socket.flags = 0;
|
||||
skt->ops->set_socket(skt, &skt->socket);
|
||||
|
||||
@ -522,7 +526,12 @@ static int socket_setup(struct pcmcia_socket *skt, int initial_delay)
|
||||
return CS_BAD_TYPE;
|
||||
}
|
||||
|
||||
return socket_reset(skt);
|
||||
status = socket_reset(skt);
|
||||
|
||||
if (skt->power_hook)
|
||||
skt->power_hook(skt, HOOK_POWER_POST);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user