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
This commit is contained in:
parent
0fa2bf5423
commit
98435cf714
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=83118
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user