diff options
author | imp <imp@FreeBSD.org> | 2001-07-01 23:40:54 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2001-07-01 23:40:54 +0000 |
commit | 1233b006a4263baac92b3125a3835ac4f96fa96a (patch) | |
tree | 8601a17167ffa59cb7a7eba0fcf9a4b38c3e7bca /sys/pccard/pcic.c | |
parent | 72676d41d5f13fdc02559548b56d80510ff5c46d (diff) | |
download | FreeBSD-src-1233b006a4263baac92b3125a3835ac4f96fa96a.zip FreeBSD-src-1233b006a4263baac92b3125a3835ac4f96fa96a.tar.gz |
Clarify some of the 3.3V code with better comments. Also, since the
types are treated as a bitfield, test them as such.
Diffstat (limited to 'sys/pccard/pcic.c')
-rw-r--r-- | sys/pccard/pcic.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/sys/pccard/pcic.c b/sys/pccard/pcic.c index b230c8e..a57336e 100644 --- a/sys/pccard/pcic.c +++ b/sys/pccard/pcic.c @@ -484,15 +484,18 @@ pcic_power(struct slot *slt) if (sc->flags & PCIC_KING_POWER) reg |= PCIC_VCC_5V_KING; /* - * For either of the two variant power schemes for 3.3V - * go ahead and turn off the 3.3V magic. For all + * For all of the variant power schemes for 3.3V go + * ahead and turn off the 3.3V enable bit. For all * bridges, the setting the Vcc on bit does the rest. + * Note that we don't have to turn off the 3.3V bit + * for the '365 step D since with the reg assigments + * to this point it doesn't get turned on. */ if (sc->flags & PCIC_VG_POWER) pcic_clrb(sp, PCIC_CVSR, PCIC_CVSR_VS); - else if (sc->flags & PCIC_PD_POWER) + if (sc->flags & PCIC_PD_POWER) pcic_clrb(sp, PCIC_MISC1, PCIC_MISC1_VCC_33); - else if (sc->flags & PCIC_RICOH_POWER) + if (sc->flags & PCIC_RICOH_POWER) pcic_clrb(sp, PCIC_RICOH_MCR2, PCIC_MCR2_VCC_33); break; } @@ -505,8 +508,11 @@ pcic_power(struct slot *slt) } /* - * Some chips are smarter than us it seems, so if we weren't - * allowed to use 5V, try 3.3 instead + * Some chipsets will attempt to preclude us from supplying + * 5.0V to cards that only handle 3.3V. We seem to need to + * try 3.3V to paper over some power handling issues in other + * parts of the system. I suspect they are in the pccard bus + * driver, but may be in pccardd as well. */ if (!(sp->getb(sp, PCIC_STATUS) & PCIC_POW) && slt->pwr.vcc == 50) { slt->pwr.vcc = 33; |