aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2006-08-09 00:05:54 +0000
committerWarner Losh <imp@FreeBSD.org>2006-08-09 00:05:54 +0000
commit9500ad1d7de091ba6a05fb7da46914e12a8f5bf9 (patch)
tree5f0ecb15532055f30c224212e9f802478ea36dd6 /sys
parentd1a5c5275c6cb1069cb2f0f64f718e24c04cd3a9 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pccard/pccard_cis.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/pccard/pccard_cis.c b/sys/dev/pccard/pccard_cis.c
index ce2c23d88726..b912a200d6c2 100644
--- a/sys/dev/pccard/pccard_cis.c
+++ b/sys/dev/pccard/pccard_cis.c
@@ -94,6 +94,16 @@ pccard_read_cis(struct pccard_softc *sc)
STAILQ_INIT(&state.card->pf_head);
state.pf = NULL;
+ /*
+ * XXX The following shouldn't be needed, but some slow cards
+ * XXX seem to need it still. Need to investigate if there's
+ * XXX a way to tell if the card is 'ready' or not rather than
+ * XXX sleeping like this. We're called just after the power
+ * XXX up of the socket. The standard timing diagrams don't
+ * XXX seem to indicate that a delay is required. The old
+ * XXX delay was 1s. This delay is .1s.
+ */
+ tsleep(&state, 0, "pccard", hz / 10);
if (pccard_scan_cis(device_get_parent(sc->dev), sc->dev,
pccard_parse_cis_tuple, &state) == -1)
state.card->error++;