https://git.reactos.org/?p=reactos.git;a=commitdiff;h=d6dca83baf34e3e958be2e...
commit d6dca83baf34e3e958be2effe631ac5bf3ca9990 Author: Dmitry Borisov di.sean@protonmail.com AuthorDate: Sat Mar 20 20:52:04 2021 +0600 Commit: Dmitry Borisov di.sean@protonmail.com CommitDate: Sun Jun 20 19:24:31 2021 +0600
[ISAPNP] Reduce software delay --- drivers/bus/isapnp/hardware.c | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-)
diff --git a/drivers/bus/isapnp/hardware.c b/drivers/bus/isapnp/hardware.c index 0b6e200478a..671a198baf6 100644 --- a/drivers/bus/isapnp/hardware.c +++ b/drivers/bus/isapnp/hardware.c @@ -292,14 +292,6 @@ ReadMemoryLimit32( return ReadDoubleWord(ReadDataPort, ISAPNP_MEMLIMIT32(Index)); }
-static -inline -VOID -HwDelay(VOID) -{ - KeStallExecutionProcessor(1000); -} - static inline UCHAR @@ -320,7 +312,6 @@ SendKey(VOID) { UCHAR i, Lfsr;
- HwDelay(); WriteAddress(0x00); WriteAddress(0x00);
@@ -347,7 +338,7 @@ PeekByte( if (ReadStatus(ReadDataPort) & 0x01) return ReadResourceData(ReadDataPort);
- HwDelay(); + KeStallExecutionProcessor(1000); }
return 0xFF; @@ -1196,20 +1187,19 @@ TryIsolate( SendKey();
ResetCsn(); - HwDelay(); - HwDelay(); + KeStallExecutionProcessor(2000);
WaitForKey(); SendKey(); Wake(0x00); + KeStallExecutionProcessor(1000);
SetReadDataPort(ReadDataPort); - HwDelay();
while (TRUE) { EnterIsolationState(); - HwDelay(); + KeStallExecutionProcessor(1000);
RtlZeroMemory(&Identifier, sizeof(Identifier));
@@ -1220,9 +1210,9 @@ TryIsolate( for (j = 0; j < 8; j++) { Data = ReadData(ReadDataPort); - HwDelay(); + KeStallExecutionProcessor(250); Data = ((Data << 8) | ReadData(ReadDataPort)); - HwDelay(); + KeStallExecutionProcessor(250); Byte >>= 1;
if (Data != 0xFFFF) @@ -1269,10 +1259,9 @@ TryIsolate( Csn++;
WriteCsn(Csn); - HwDelay(); + KeStallExecutionProcessor(1000);
Wake(0x00); - HwDelay(); }
WaitForKey(); @@ -1300,8 +1289,6 @@ DeviceActivation( else DeactivateDevice(IsaDevice->LDN);
- HwDelay(); - WaitForKey(); }