Asus EEE, acpi and nata driver

Dmitry Komissaroff aunoor at gmail.com
Tue Dec 16 12:45:02 PST 2008


Dmitry Komissaroff ?????:
Sepherosa Ziehau ?????:

Point 3 is really trouble, because all other I can around installing 
DF on
main EEE disk.

--- ata-lowlevel.c.old  Fri Dec 22 23:26:16 2006
+++ ata-lowlevel.c      Mon Dec 15 06:37:58 2008
@@ -511,6 +511,7 @@
    ATA_IDX_OUTB(ch, ATA_CONTROL, ATA_A_IDS | ATA_A_RESET);
    ata_udelay(10000);
    ATA_IDX_OUTB(ch, ATA_CONTROL, ATA_A_IDS);
+device_printf(dev,"Antihang magic string :)\n"); //there!!!
    ata_udelay(100000);
What will happen if you increase the value, say, to 500000, in the
above ata_udelay() and remove the device_printf()?
I set ata_udelay() from 10000 to 500000. Nothing happend... It still hang.
Finally I solve this problem. There is a path witch enable using 
tsleep() instead of DELAY in ata_udelay().
But one question still no answer. If device_printf() is above 
ata_udelay() all ok, but if it below... I think guilty lay on acpi 
timer, because without acpi on all work fine.


--- ata-all.c.old	2008-12-17 05:17:26 +0300
+++ ata-all.c	2008-12-17 05:15:25 +0300
@@ -827,10 +827,11 @@
 {
     /* for now just use DELAY, the timer/sleep subsytems are not there yet */
     /* XXX use DRIVERSLEEP if possible */
-
+/*
     if (1 || interval < (1000000/hz))
 	DELAY(interval);
-    else    
+    else
+*/    
 	tsleep(&interval, 0, "ataslp", interval/(1000000/hz));
 
 }




More information about the Kernel mailing list