diff options
author | imp <imp@FreeBSD.org> | 2001-09-05 22:26:14 +0000 |
---|---|---|
committer | imp <imp@FreeBSD.org> | 2001-09-05 22:26:14 +0000 |
commit | 7a8588e6858d1bce31a18ad1234cb73be5619227 (patch) | |
tree | 0683dcdefcf1dc7549a1c9e61e7a64c61a86ffc4 /sys/pccard/pcic_pci.c | |
parent | 096b80272ca34ba925ad0d66ea90c3f7d0276bc2 (diff) | |
download | FreeBSD-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/pccard/pcic_pci.c')
-rw-r--r-- | sys/pccard/pcic_pci.c | 8 |
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); |