Re: IDE/Promise 20276 FastTrack RAID Doesn't work in 2.4.21, patchattached to fix

Bartlomiej Zolnierkiewicz
2003-07-11T00:04:50Z

On Thu, 10 Jul 2003, Samuel Flory wrote:

> Bartlomiej Zolnierkiewicz wrote:
>
> >>> for (port = 0; port <= 1; ++port) {
> >>> ide_pci_enablebit_t *e = &(d->enablebits[port]);
> >>>
> >>> /*
> >>> * If this is a Promise FakeRaid controller,
> >>> * the 2nd controller will be marked as
> >>> * disabled while it is actually there and enabled
> >>> * by the bios for raid purposes.
> >>> * Skip the normal "is it enabled" test for those.
> >>> */
> >>> if (((d->vendor == PCI_VENDOR_ID_PROMISE) &&
> >>> ((d->device == PCI_DEVICE_ID_PROMISE_20262) ||
> >>> (d->device == PCI_DEVICE_ID_PROMISE_20265))) &&
> >>> (secondpdc++==1) && (port==1))
> >>> goto controller_ok;
> >>>
> >>>
> >
> >I think this test in reality does something different then comment states.
>
> This seems to be a theme with the pdc comments in general.

:-)

> >For first port of PDC20262/65 this test increases secondpdc variable
> >(so it is 1 after test). For second port this test is true
> >(its PDC20262/65 && secondpdc == 1 && port == 1) so we don't test whether
> >2nd port (not controller!) of 1st controller is enabled.
> >
> >Or I am reading it wrong?
> >
> Don't look at me. I come to a different conclusion every time I read
> it. Rereading it a couple of times would seem support your theroy.
> Which makes me wonder why Steven's patch works at all. Unless for some
> reason the second port needs to be enabled for things to work. Which

Steven, can you put printks for secondpdc and port into
ide_pci_setup_ports() and get some output for your patch
(without "Special FastTrak Feature")?

--
Bartlomiej

> begs the question why they didn't just test for an odd numbered channel.