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
@ -576,9 +576,9 @@ pcic_pci_ti113x_func(struct pcic_slot *sp, enum pcic_intr_way way)
|
|||||||
else
|
else
|
||||||
cardcntl &= ~TI113X_CARDCNTL_PCI_IREQ;
|
cardcntl &= ~TI113X_CARDCNTL_PCI_IREQ;
|
||||||
if (cardcntl & (TI113X_CARDCNTL_PCI_IREQ | 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;
|
cardcntl |= TI113X_CARDCNTL_PCI_IRQ_ENA;
|
||||||
|
else
|
||||||
|
cardcntl &= ~TI113X_CARDCNTL_PCI_IRQ_ENA;
|
||||||
pci_write_config(dev, TI113X_PCI_CARD_CONTROL, cardcntl, 1);
|
pci_write_config(dev, TI113X_PCI_CARD_CONTROL, cardcntl, 1);
|
||||||
|
|
||||||
return (pcic_pci_gen_func(sp, way));
|
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
|
else
|
||||||
cardcntl &= ~TI113X_CARDCNTL_PCI_CSC;
|
cardcntl &= ~TI113X_CARDCNTL_PCI_CSC;
|
||||||
if (cardcntl & (TI113X_CARDCNTL_PCI_IREQ | 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;
|
cardcntl |= TI113X_CARDCNTL_PCI_IRQ_ENA;
|
||||||
|
else
|
||||||
|
cardcntl &= ~TI113X_CARDCNTL_PCI_IRQ_ENA;
|
||||||
pci_write_config(dev, TI113X_PCI_CARD_CONTROL, cardcntl, 1);
|
pci_write_config(dev, TI113X_PCI_CARD_CONTROL, cardcntl, 1);
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
|
Loading…
Reference in New Issue
Block a user