On Friday 30 July 2004 14:35, Alan Cox wrote: > On Mon, Jul 26, 2004 at 03:03:20PM -0300, Ulisses wrote: > > Hi, > > > > I have a soyo kt400 dragon ultra motherboard with a hpt370/372 raid > > controller. The problem is that booting kernel 2.6.6-1.435.2.3 always > > ends up with an oops in init_setup_hpt366(). > > I've posted a patch to the linux-ide list to add 372N support Alan, it is missing the latest fixes from 2.4.22-ac4, namely the two patches attached -- http://LinuxWiki.org/RonnyBuchmann
--- linux-2.4.22-ac1/drivers/ide/pci/hpt366.c.orig 2003-09-11 21:29:06.000000000 +0200 +++ linux-2.4.22-ac1/drivers/ide/pci/hpt366.c 2003-09-12 01:05:44.000000000 +0200 @@ -713,7 +713,7 @@ /* Reconnect channels to bus */ outb(0x00, hwif->dma_base+0x73); - outb(0x00, hwif->dma_base+0x79); + outb(0x00, hwif->dma_base+0x77); } /**
--- linux-2.4.22-ac1/drivers/ide/pci/hpt366.c.orig 2003-09-11 21:29:06.000000000 +0200 +++ linux-2.4.22-ac1/drivers/ide/pci/hpt366.c 2003-09-12 17:13:31.000000000 +0200 @@ -1343,7 +1343,7 @@ u8 pin1 = 0, pin2 = 0; unsigned int class_rev; static char *chipset_names[] = {"HPT366", "HPT366", "HPT368", - "HPT370", "HPT370A", "HPT372"}; + "HPT370", "HPT370A", "HPT372", "HPT372N"}; if (PCI_FUNC(dev->devfn) & 1) return; @@ -1351,16 +1351,11 @@ pci_read_config_dword(dev, PCI_CLASS_REVISION, &class_rev); class_rev &= 0xff; - /* New ident 372N reports revision 1. We could do the - io port based type identification instead perhaps (DID, RID) */ - - if(d->device == PCI_DEVICE_ID_TTI_HPT372N) - class_rev = 5; - - if(class_rev < 6) + if(class_rev <= 6) d->name = chipset_names[class_rev]; switch(class_rev) { + case 6: case 5: case 4: case 3: ide_setup_pci_device(dev, d);