[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Problem with HPT370/372 and kernel 2.6.6-1.435.2.3



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);

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]