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

Bartlomiej Zolnierkiewicz
2003-07-10T23:29:03Z

On Thu, 10 Jul 2003, Steven Dake wrote:

> Samuel Flory wrote:
>
> > Steven Dake wrote:
> >
> >> Even with special fasttrack feature enabled, my disk devices on the
> >> PDC20276 is not found. There is code in pci-setup.c which blocks
> >> other PDC controllers, why not the 20276? Is that code for some
> >> other purpose, or orthagonal to the force option?
> >
> >
> > The comments would seem to indicate that this is only needed if you
> > have a second controller. Which leads me to wonder what if I have 3
> > or 4 pdc controllers.
>
> Hmm thats not how I read the code. My system has a standard IDE device

Hmmm... read the code again :-).

> as part of the chipset, and then also has a fasttrack controller. The
> fasttrack controller comes in 2nd, (hence making it the 2nd controller
> and making it marked disabled). I think your right about the 3rd/4th
> controller though, what happens to those !
> -steve
>
> >
> > 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.

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?
--
Bartlomiej