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

Samuel Flory
2003-07-10T23:47:43Z

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
begs the question why they didn't just test for an odd numbered channel.

--
Once you have their hardware. Never give it back.
(The First Rule of Hardware Acquisition)
Sam Flory <sflory@rackable.com>