diff options
author | imp <imp@FreeBSD.org> | 2001-08-05 07:02:42 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2001-08-05 07:02:42 +0000 |
commit | 101574484ae8075461f71a6171097761a0c0042d (patch) | |
tree | 7c806bde2b2715310619cd173f83123dc84cd4a8 /sys | |
parent | e752bb553a2ba6fd373090b2ffe67742bfd1b748 (diff) | |
download | FreeBSD-src-101574484ae8075461f71a6171097761a0c0042d.zip FreeBSD-src-101574484ae8075461f71a6171097761a0c0042d.tar.gz |
Now that we are setting a bit in the PCIC_INT_GEN (0x3) register, we
can't blindly write zero into it to disable the card. We must
preserve this bit. This changes pcic_disable to only clear the bits
we know we need to clear on card disable, thus preserving the magic
bit for many TI bridges.
This appears to have fixed the problems that people are reporting
about the system failing to recognize cards being inserted or removed
(or both). Greg: This may fix your problem too :-).
Diffstat (limited to 'sys')
-rw-r--r-- | sys/pccard/pcic.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/pccard/pcic.c b/sys/pccard/pcic.c index a716e0a..bb67631e 100644 --- a/sys/pccard/pcic.c +++ b/sys/pccard/pcic.c @@ -649,8 +649,8 @@ pcic_disable(struct slot *slt) { struct pcic_slot *sp = slt->cdata; - sp->putb(sp, PCIC_INT_GEN, 0); -/* sp->putb(sp, PCIC_POWER, 0); */ + pcic_clrb(sp, PCIC_INT_GEN, 0xf | PCIC_CARDTYPE | PCIC_CARDRESET); + sp->putb(sp, PCIC_POWER, 0); } /* |