int port;
int at_least_one_hwif_enabled = 0;
ide_hwif_t *hwif, *mate = NULL;
+ static int secondpdc = 0;
u8 tmp;
index->all = 0xf0f0;
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->flags & IDEPCI_FLAG_FORCE_PDC) &&
+ (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:
if (d->channels <= port)
break;