summaryrefslogtreecommitdiffstats
path: root/sys/pccard/pcic.c
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2001-08-05 07:02:42 +0000
committerimp <imp@FreeBSD.org>2001-08-05 07:02:42 +0000
commit101574484ae8075461f71a6171097761a0c0042d (patch)
tree7c806bde2b2715310619cd173f83123dc84cd4a8 /sys/pccard/pcic.c
parente752bb553a2ba6fd373090b2ffe67742bfd1b748 (diff)
downloadFreeBSD-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/pccard/pcic.c')
-rw-r--r--sys/pccard/pcic.c4
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);
}
/*
OpenPOWER on IntegriCloud