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

Reply via email to