diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-04-19 14:50:00 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-04-19 14:50:00 +0200 |
commit | f3609bada2fdae4f5f66d00eecb1ed3068abcf42 (patch) | |
tree | a27852ea564791fb42bb1c3d52bc7bbe042c120e /sys | |
parent | df1d6ba99da637f21cc38d2690ad599c1a803a86 (diff) |
sdide: increase Drq wait timeouts (fixes i/o errors in vbox)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/src/9/pc/sdide.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/sys/src/9/pc/sdide.c b/sys/src/9/pc/sdide.c index 007d6b89f..6ce3040a0 100644 --- a/sys/src/9/pc/sdide.c +++ b/sys/src/9/pc/sdide.c @@ -1108,7 +1108,7 @@ atapktio0(Drive *drive, SDreq *r) outb(cmdport+Command, Cpkt); microdelay(1); - as = ataready(cmdport, ctlport, 0, Bsy, Drq|Chk, 4*1000); + as = ataready(cmdport, ctlport, 0, Bsy, Drq|Chk, 400*1000); if(as < 0 || (as & (Bsy|Chk))){ drive->status = as<0 ? 0 : as; ctlr->curdrive = nil; @@ -1256,8 +1256,7 @@ atageniostart(Drive* drive, uvlong lba) case Cws: case Cwsm: microdelay(1); - /* 10*1000 for flash ide drives - maybe detect them? */ - as = ataready(cmdport, ctlport, 0, Bsy, Drq|Err, 10*1000); + as = ataready(cmdport, ctlport, 0, Bsy, Drq|Err, 400*1000); if(as < 0 || (as & Err)){ iunlock(ctlr); return -1; @@ -1479,8 +1478,7 @@ atagenatastart(Drive* d, SDreq *r) USED(d); else if(!isdma){ microdelay(1); - /* 10*1000 for flash ide drives - maybe detect them? */ - as = ataready(cmdport, ctlport, 0, Bsy, Drq|Err, 10*1000); + as = ataready(cmdport, ctlport, 0, Bsy, Drq|Err, 400*1000); if(as < 0 || (as & Err)){ iunlock(ctlr); return -1; |