summaryrefslogtreecommitdiff
path: root/sys/arch/sparc/dev/ts102.c
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2003-06-28 16:23:55 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2003-06-28 16:23:55 +0000
commit3490987ba082dfafb57d4593dea497ebaf059853 (patch)
tree68749cf09931715ab325a34cf7b804042494cf64 /sys/arch/sparc/dev/ts102.c
parent6fda28d811503c3515ba7065645e94d7053b211d (diff)
Be prepared to the fact that the user may unplug a card before it was
fully initialized.
Diffstat (limited to 'sys/arch/sparc/dev/ts102.c')
-rw-r--r--sys/arch/sparc/dev/ts102.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/arch/sparc/dev/ts102.c b/sys/arch/sparc/dev/ts102.c
index 35c16c7de98..7d639585f7c 100644
--- a/sys/arch/sparc/dev/ts102.c
+++ b/sys/arch/sparc/dev/ts102.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ts102.c,v 1.7 2003/06/28 13:30:17 miod Exp $ */
+/* $OpenBSD: ts102.c,v 1.8 2003/06/28 16:23:54 miod Exp $ */
/*
* Copyright (c) 2003, Miodrag Vallat.
*
@@ -563,7 +563,12 @@ tslot_slot_enable(pcmcia_chipset_handle_t pch)
* here.
*/
for (i = 30000; i != 0; i--) {
- if (TSLOT_READ(td, TS102_REG_CARD_A_STS) & TS102_CARD_STS_RDY)
+ status = TSLOT_READ(td, TS102_REG_CARD_A_STS);
+ if ((status & TS102_CARD_STS_PRES) == 0) {
+ tslot_slot_disable(pch);
+ return;
+ }
+ if (status & TS102_CARD_STS_RDY)
break;
else
DELAY(100);