Re: ATA-UP lock and load, all night long.......

From: Maciej W. Rozycki (macro@ds2.pg.gda.pl)
Date: Tue May 30 2000 - 10:18:42 EST


On Mon, 29 May 2000, Andre Hedrick wrote:

> Nope, PIIX3 SuperMicro P6DNF PPro 200's w/ 512k.

 Hmm, given it happens in the noapic mode, too, there is only one possible
reason I can think of -- the device keeps its IRQ line asserted past
hw_interrupt_type.end(). Any chance the IRQ gets allocated to PIRQD# of
PIIX3? The PIIX3 hardwires it's USB interrupt to this line (and they call
PCI software-reconfigurable...) and I see you have no UHCI driver loaded
so there is no driver to handle it. Check if the following patch fixes
your problems.

 Additionally there are MP-tables which are silent of this USB interrupt,
which doesn't make things easier (my board is an example, sigh...).

  Maciej

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: macro@ds2.pg.gda.pl, PGP key available        +

diff -u --recursive --new-file linux-2.3.99-pre8.macro/drivers/pci/quirks.c linux-2.3.99-pre8/drivers/pci/quirks.c --- linux-2.3.99-pre8.macro/drivers/pci/quirks.c Sat May 13 04:27:43 2000 +++ linux-2.3.99-pre8/drivers/pci/quirks.c Tue May 30 15:04:42 2000 @@ -181,6 +181,26 @@ } /* + * PIIX3 USB: We have to disable USB interrupts that are + * hardwired to PIRQD# and may be shared with an + * external device. + * + * Legacy Support Register (LEGSUP): + * bit13: USB PIRQ Enable (USBPIRQDEN), + * bit4: Trap/SMI ON IRQ Enable (USBSMIEN). + * + * We mask out all r/wc bits, too. + */ +static void __init quirk_piix3usb(struct pci_dev *dev) +{ + u16 legsup; + + pci_read_config_word(dev, 0xc0, &legsup); + legsup &= 0x50ef; + pci_write_config_word(dev, 0xc0, legsup); +} + +/* * The main table of quirks. */ @@ -213,6 +233,7 @@ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_acpi }, { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, quirk_piix4acpi }, { PCI_FIXUP_FINAL, PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M7101, quirk_ali7101 }, + { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_2, quirk_piix3usb }, { 0 } };

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed May 31 2000 - 21:00:24 EST