summaryrefslogtreecommitdiff
path: root/sys/pccard/pcic.c
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>1997-05-22 07:29:24 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>1997-05-22 07:29:24 +0000
commit0084fb021ba88d7f22b44035aebf97e625365f08 (patch)
tree8d61c8bffd3bb3bc613e2495a5c4f393966dc7e4 /sys/pccard/pcic.c
parentc5318f236359744e5f4c95daa1f226b92f4fe699 (diff)
downloadsrc-test2-0084fb021ba88d7f22b44035aebf97e625365f08.tar.gz
src-test2-0084fb021ba88d7f22b44035aebf97e625365f08.zip
Notes
Diffstat (limited to 'sys/pccard/pcic.c')
-rw-r--r--sys/pccard/pcic.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/pccard/pcic.c b/sys/pccard/pcic.c
index 6a8b15618192..b4f175fb38a5 100644
--- a/sys/pccard/pcic.c
+++ b/sys/pccard/pcic.c
@@ -948,7 +948,7 @@ pcic_power(struct slot *slotp)
reg |= PCIC_VCC_5V_KING;
break;
}
- reg |= PCIC_VCC_5V;
+ reg |= PCIC_VCC_3V;
if ((sp->controller == PCIC_VG468)||
(sp->controller == PCIC_VG469))
setb(sp, 0x2f, 0x03) ;
@@ -977,6 +977,14 @@ pcic_power(struct slot *slotp)
sp->putb (sp, PCIC_POWER, reg);
DELAY (100*1000);
}
+ /* Some chips are smarter than us it seems, so if we weren't
+ * allowed to use 5V, try 3.3 instead
+ */
+ if (!(sp->getb(sp, PCIC_STATUS) & 0x40) && slotp->pwr.vcc == 50) {
+ slotp->pwr.vcc = 33;
+ slotp->pwr.vpp = 0;
+ return (pcic_power(slotp));
+ }
return(0);
}