Re: [OOPS] 2.4.22 / HPT372N

From: Bartlomiej Zolnierkiewicz
Date: Fri Sep 12 2003 - 11:34:03 EST


On Friday 12 of September 2003 17:26, Ronny Buchmann wrote:
> Am Freitag 12 September 2003 16:42 schrieben Sie:
> > On Friday 12 of September 2003 16:24, Ronny Buchmann wrote:
> > > Am Freitag 12 September 2003 14:58 schrieb Bartlomiej Zolnierkiewicz:
> > > > On Friday 12 of September 2003 12:48, Alan Cox wrote:
> > > > > On Gwe, 2003-09-12 at 10:41, Ronny Buchmann wrote:
> > > > > > - d->channels = 1;
> > > > > > + d->channels = 2;
> > > > >
> > > > > Need to work out which 372N and others are dual channel but yes
> > > >
> > > > No, "d->channels = 1" is only executed for orginal HPT366 which has
> > > > separate PCI configurations for first and second channel. For
> > > > HPT372N you have correct value in hpt366.h - ".channels = 2".
>
> Some of the HPT372N (including mine) have the same device id as the HPT366
> (0004), they differ only in revision (rev 6 is 372N).
>
> (this logic is already used in other functions)
>
> --- 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);
>
> Since the 372N with the new id (0009) is set up with init_setup_37x(),
> "class_rev = 5" is never executed.
>
> So the second part of the previous patch is wrong.

Looks good, thanks.

--bartlomiej


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