sdiahci: only wait for drives that are in the process of becoming ready when onlining, add *noahci option

This commit is contained in:
cinap_lenrek 2013-02-23 14:05:51 +01:00
parent 3a79bf2ae6
commit 5c4f2f9d35

View file

@ -908,6 +908,7 @@ configdrive(Drive *d)
ilock(d); ilock(d);
switch(d->port->sstatus & Smask){ switch(d->port->sstatus & Smask){
default:
case Smissing: case Smissing:
d->state = Dmissing; d->state = Dmissing;
break; break;
@ -1497,7 +1498,7 @@ iaonline(SDunit *u)
c = u->dev->ctlr; c = u->dev->ctlr;
d = c->drive[u->subno]; d = c->drive[u->subno];
while(waitready(d) == 1) while(d->state != Dmissing && waitready(d) == 1)
esleep(1); esleep(1);
dprint("%s: iaonline: %s\n", dnam(d), diskstates[d->state]); dprint("%s: iaonline: %s\n", dnam(d), diskstates[d->state]);
@ -2137,6 +2138,9 @@ iapnp(void)
return nil; return nil;
done = 1; done = 1;
if(getconf("*noahci") != nil)
return nil;
if(getconf("*ahcidebug") != nil){ if(getconf("*ahcidebug") != nil){
debug = 1; debug = 1;
datapi = 1; datapi = 1;