Can somebody with such a machine test the enclosed patch ? (against my devel tree, which is at 2.4.21-pre7 right now, I'll update it to -rc1 later today)
Then, set CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST in the kernel config Let me know if it works. Ben.
--- 1.53/drivers/ide/ppc/pmac.c Fri Apr 11 11:46:12 2003 +++ edited/drivers/ide/ppc/pmac.c Tue Apr 22 16:39:06 2003 @@ -940,10 +940,10 @@ { struct device_node *np; int i; - struct device_node *atas; + struct device_node *atas = NULL; struct device_node *p, **pp, *removables, **rp; unsigned long base, regbase; - int irq, big_delay; + int irq; ide_hwif_t *hwif; if (_machine != _MACH_Pmac) @@ -964,14 +964,23 @@ && strcasecmp(p->parent->type, "media-bay") == 0) { *rp = p; rp = &p->next; - } else { + } +#ifdef CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST + /* Move Kauai ATA/100 if it exist to first postition in list */ + else if (device_is_compatible(np, "kauai-ata")) { + p->next = atas; + if (pp == &atas) + pp = &p->next; + atas = p; + } +#endif /* CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST */ + else { *pp = p; pp = &p->next; } } *rp = NULL; *pp = removables; - big_delay = 0; for (i = 0, np = atas; i < MAX_HWIFS && np != NULL; np = np->next) { struct device_node *tp; @@ -1128,7 +1137,6 @@ ppc_md.feature_call(PMAC_FTR_IDE_ENABLE, np, pmif->aapl_bus_id, 1); mdelay(10); ppc_md.feature_call(PMAC_FTR_IDE_RESET, np, pmif->aapl_bus_id, 0); - big_delay = 1; } hwif = &ide_hwifs[i]; @@ -1194,9 +1202,6 @@ if (pmac_ide_count == 0) return; - - if (big_delay) - mdelay(IDE_WAKEUP_DELAY_MS); #ifdef CONFIG_PMAC_PBOOK pmu_register_sleep_notifier(&idepmac_sleep_notifier); --- 1.24/drivers/ide/Config.in Sat Apr 5 02:22:07 2003 +++ edited/drivers/ide/Config.in Tue Apr 22 16:33:05 2003 @@ -82,6 +82,7 @@ fi if [ "$CONFIG_ALL_PPC" = "y" ]; then bool ' Builtin PowerMac IDE support' CONFIG_BLK_DEV_IDE_PMAC + dep_bool ' Probe internal Kauai ATA/100 fist' CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST $CONFIG_BLK_DEV_IDE_PMAC dep_bool ' PowerMac IDE DMA support' CONFIG_BLK_DEV_IDEDMA_PMAC $CONFIG_BLK_DEV_IDE_PMAC dep_bool ' Use DMA by default' CONFIG_BLK_DEV_IDEDMA_PMAC_AUTO $CONFIG_BLK_DEV_IDEDMA_PMAC if [ "$CONFIG_BLK_DEV_IDE_PMAC" = "y" ]; then