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

From: Bartlomiej Zolnierkiewicz (B.Zolnierkiewicz@elka.pw.edu.pl)
Date: Thu Jul 10 2003 - 18:13:55 EST


It shouldn't matter.

Look at the code in setup-pci.c:

                ide_pci_enablebit_t *e = &(d->enablebits[port]);

If CONFIG_PDC202XX_FORCE=y d->enablebits will be { 0x00, 0x00, 0x00 }
for both ports, now look at drivers/ide/setup-pci.c:

                /*
                 * 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;

                if (e->reg && (pci_read_config_byte(dev, e->reg, &tmp) ||
                    (tmp & e->mask) != e->val))
                        continue; /* port not enabled */

controller_ok:

So if e = { 0x00, 0x00, 0x00 } test above (for enabled port) should fail,
no need for your patch.

Can you put printks inside this code to see what are values
of e->reg, e->mask and e->val?

On Thu, 10 Jul 2003, 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.
>
> 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 workaround was added before "Special FastTrack Feature"
option. Andre?

--
Bartlomiej

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



This archive was generated by hypermail 2b29 : Tue Jul 15 2003 - 22:00:37 EST