summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2001-09-05 22:26:14 +0000
committerimp <imp@FreeBSD.org>2001-09-05 22:26:14 +0000
commit7a8588e6858d1bce31a18ad1234cb73be5619227 (patch)
tree0683dcdefcf1dc7549a1c9e61e7a64c61a86ffc4 /sys
parent096b80272ca34ba925ad0d66ea90c3f7d0276bc2 (diff)
downloadFreeBSD-src-7a8588e6858d1bce31a18ad1234cb73be5619227.zip
FreeBSD-src-7a8588e6858d1bce31a18ad1234cb73be5619227.tar.gz
Patric Gualat tells me that I can't do basic bit math. He's right.
When either bit 3 or 4 is set, we need to *SET* bit 5, not clear it in the card control register. This makes TI PCI-1030, 1130 and 1131 not work anymore without this fix. MFC: soon
Diffstat (limited to 'sys')
-rw-r--r--sys/pccard/pcic_pci.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/pccard/pcic_pci.c b/sys/pccard/pcic_pci.c
index c08de0b..a278562 100644
--- a/sys/pccard/pcic_pci.c
+++ b/sys/pccard/pcic_pci.c
@@ -576,9 +576,9 @@ pcic_pci_ti113x_func(struct pcic_slot *sp, enum pcic_intr_way way)
else
cardcntl &= ~TI113X_CARDCNTL_PCI_IREQ;
if (cardcntl & (TI113X_CARDCNTL_PCI_IREQ | TI113X_CARDCNTL_PCI_CSC))
- cardcntl &= ~TI113X_CARDCNTL_PCI_IRQ_ENA;
- else
cardcntl |= TI113X_CARDCNTL_PCI_IRQ_ENA;
+ else
+ cardcntl &= ~TI113X_CARDCNTL_PCI_IRQ_ENA;
pci_write_config(dev, TI113X_PCI_CARD_CONTROL, cardcntl, 1);
return (pcic_pci_gen_func(sp, way));
@@ -609,9 +609,9 @@ pcic_pci_ti113x_csc(struct pcic_slot *sp, enum pcic_intr_way way)
else
cardcntl &= ~TI113X_CARDCNTL_PCI_CSC;
if (cardcntl & (TI113X_CARDCNTL_PCI_IREQ | TI113X_CARDCNTL_PCI_CSC))
- cardcntl &= ~TI113X_CARDCNTL_PCI_IRQ_ENA;
- else
cardcntl |= TI113X_CARDCNTL_PCI_IRQ_ENA;
+ else
+ cardcntl &= ~TI113X_CARDCNTL_PCI_IRQ_ENA;
pci_write_config(dev, TI113X_PCI_CARD_CONTROL, cardcntl, 1);
return (0);
OpenPOWER on IntegriCloud