The datasheet for the 6710/6722 says that you must use one method to

detect 3.3V cards for the 6710 and another method for the 6722.  This
latter method is also how the 6729/6730 is supposed to detect 3.3V
cards.  This method works great on my Fujitsu Stylistic 500.  Sadly,
it appears that not all laptop makers are as detail oriented as the
folks that made the Stylistic.  IBM Thinkpad 701C and AST Asentia 810N
both hang hard when the 6729 method is used, but at least the thinkpad
works when the 6710 method is used.  The failure mode appears to be any
access to the memory that we've mapped the CIS in causes the machine to
hang until you eject the card.  The Thinkpad, at least, works with this
change, and it doesn't break my Stylistic.

MFC after: 4 days
This commit is contained in:
Warner Losh 2002-01-14 14:10:13 +00:00
parent 4854d67b1c
commit 296596145c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=89348

View File

@ -599,17 +599,23 @@ pcic_power(struct slot *slt)
/*
* The 6710 does it one way, and the '22 and '29 do it
* another. And it appears that the '32 and '33 yet
* another way (which I don't know).
* another way (which I don't know). The '22 can also
* do it the same way as a '10 does it, despite what
* the datasheets say. Some laptops with '22 don't
* seem to have the signals wired right for the '29
* method to work, so we always use the '10 method for
* the '22. The laptops that don't work hang solid
* when the pccard memory is accessed.
*/
switch (sp->controller) {
case PCIC_PD6710:
case PCIC_PD6722:
c = sp->getb(sp, PCIC_MISC1);
if ((c & PCIC_MISC1_5V_DETECT) == 0)
slt->pwr.vcc = 33;
else
slt->pwr.vcc = 50;
break;
case PCIC_PD6722:
case PCIC_PD6729:
/*
* VS[12] signals are in slot1's