From f3609bada2fdae4f5f66d00eecb1ed3068abcf42 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 19 Apr 2012 14:50:00 +0200 Subject: [PATCH] sdide: increase Drq wait timeouts (fixes i/o errors in vbox) --- sys/src/9/pc/sdide.c | 8 +++----- 1 file 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;