Check the status value for validity before waiting for a device. If it has an
invalid value, assume the device is not present. Should fix long boot pauses in VMWare and maybe also on some hardware. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30381 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
7a65816a64
commit
c2c3d40c7b
@ -322,6 +322,13 @@ ATAChannel::Reset(bool *presence, uint16 *signatures)
|
||||
uint8 deviceCount = fDeviceCount;
|
||||
for (uint8 i = 0; i < deviceCount; i++) {
|
||||
SelectDevice(i);
|
||||
|
||||
if (AltStatus() == 0xff) {
|
||||
TRACE_ALWAYS("illegal status value for device %d,"
|
||||
" assuming not present\n", i);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (SelectedDevice() != i) {
|
||||
TRACE_ALWAYS("cannot select device %d, assuming not present\n", i);
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user