* Wait slightly longer before falling into passive poll mode.
* Cause scheduler invokation when we handled an interrupt as the transfering thread can continue immediately. This brings small block transfer rates to a comparable level to the old IDE bus_manager. For large block transfers there is no speed difference at all. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30257 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
5ea617fad1
commit
2c08a10439
@ -379,7 +379,7 @@ ATAChannel::Wait(uint8 setBits, uint8 clearedBits, uint32 flags,
|
||||
|
||||
// The device may be ready almost immediatelly. If it isn't,
|
||||
// poll often during the first 20ms, otherwise poll lazyly.
|
||||
if (elapsedTime < 500)
|
||||
if (elapsedTime < 1000)
|
||||
spin(1);
|
||||
else if (elapsedTime < 20000)
|
||||
snooze(1000);
|
||||
@ -692,7 +692,7 @@ ATAChannel::Interrupt(uint8 status)
|
||||
}
|
||||
|
||||
fInterruptCondition.NotifyAll();
|
||||
return B_HANDLED_INTERRUPT;
|
||||
return B_INVOKE_SCHEDULER;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user