mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-13 10:02:38 +00:00
Don't rely on the card 'automatically' powering up when we probe it.
On some laptops, this doesn't work (ie; IBM 75x series), so force it to power on. With this modification, I am able to read the tuples off 4 different PCMCIA cards on my ThinkPad. Reviewed by: phk@FreeBSD.org Obtained from: if_zp.c
This commit is contained in:
parent
926cb56114
commit
ea5ff881da
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=13272
@ -102,6 +102,7 @@
|
||||
#define PCIC_OUTENA 0x80 /* Output Enable */
|
||||
#define PCIC_DISRST 0x40 /* Disable RESETDRV */
|
||||
#define PCIC_APSENA 0x20 /* Auto Pwer Switch Enable */
|
||||
#define PCIC_PCPWRE 0x10 /* PC Card Power Enable */
|
||||
#define PCIC_VCC 0x18 /* Vcc control bits */
|
||||
#define PCIC_VCC_5V 0x10 /* 5 volts */
|
||||
#define PCIC_VCC_3V 0x18 /* 3 volts */
|
||||
|
@ -565,7 +565,7 @@ pcic_probe ()
|
||||
/*
|
||||
* Check for a card in this slot.
|
||||
*/
|
||||
setb (sp, PCIC_POWER, PCIC_APSENA | PCIC_DISRST);
|
||||
setb (sp, PCIC_POWER, PCIC_PCPWRE| PCIC_DISRST);
|
||||
if ((getb (sp, PCIC_STATUS) & PCIC_CD) != PCIC_CD) {
|
||||
slotp->laststate = slotp->state = empty;
|
||||
} else {
|
||||
@ -615,7 +615,7 @@ pcic_ioctl(struct slot *slotp, int cmd, caddr_t data)
|
||||
static int
|
||||
pcic_power(struct slot *slotp)
|
||||
{
|
||||
unsigned char reg = PCIC_DISRST|PCIC_APSENA;
|
||||
unsigned char reg = PCIC_DISRST|PCIC_PCPWRE;
|
||||
struct pcic_slot *sp = slotp->cdata;
|
||||
|
||||
switch(sp->controller) {
|
||||
|
Loading…
Reference in New Issue
Block a user