Skip to contentSkip to conversation

hpt366.c: wrong timings used since 2.6.8

PATCH Folke Ashberg 2 participants 2 messages Aug 26, 2004 – Aug 29, 2004

lore
Share & tools
lore
#0 lore raw

Hi there,

i have an HPT372A (rev 02) (PCI_DEVICE_ID_TTI_HPT372) and since 2.6.8 i've got an Ooooops.

I saw that hpt366.c got support for HPT372_N_ and its special timings, but that timings have been used for my HPT372_A_ and caused the Oops.

I did the following and now it works:
-------------------------------------------

drivers/ide/pci/hpt366.c 2004-08-26 23:22:56.000000000 +0200 renamed from drivers/ide/pci/hpt366.c 2004-08-26 19:42:16.000000000 +0200 +2 -2
diff -pur linux-2.6.9rc1-orig/drivers/ide/pci/hpt366.c linux-2.6.9rc1/drivers/ide/pci/hpt366.c
@@ -881,7 +881,7 @@ static int __devinit init_hpt37x(struct
        /* interrupt force enable */
        pci_write_config_byte(dev, 0x5a, (reg5ah & ~0x10));
 
-       if(dmabase)
+       if(dev->device == PCI_DEVICE_ID_TTI_HPT372N && dmabase)
        {
                did = inb(dmabase + 0x22);
                rid = inb(dmabase + 0x28);
@@ -1132,7 +1132,7 @@ static void __devinit init_hwif_hpt366(i
        unsigned long dmabase           = hwif->dma_base;
        int is_372n = 0;
 
-       if(dmabase)
+       if(dev->device == PCI_DEVICE_ID_TTI_HPT372N && dmabase)
        {
                did = inb(dmabase + 0x22);
                rid = inb(dmabase + 0x28);

-------------------------------------------

Not to also check dev->device for the N-Version at that two places (which are used also for other versions) seems to be wrong.

Kind Regards

Folke Ashberg

Signature · 3 lines
Folke Ashberg
[email protected]
www.ashberg.de
#1 lore raw
Quoted 2 lines · Folke Ashberg

I saw that hpt366.c got support for HPT372_N_ and its special timings, but that timings have been used for my HPT372_A_ and caused the Oops.

The change you suggest is definitely wrong and will cause disk corruption on the 372N

Quoted 1 line

I did the following and now it works:

Please post the actual oops data and if you can the rid/did. The 372N is identified by two things - PCI ID _or_ RID/DID. Not all 372N cards have the unique PCI ID.