From: Michael McMaster Date: Tue, 22 Feb 2022 06:20:36 +0000 (+1000) Subject: Reduce IRQ delays X-Git-Tag: v6.4.14~1 X-Git-Url: http://git.codesrc.com/gitweb.cgi?a=commitdiff_plain;h=a164c6391005b810df7a77cf4d332c1f7a6645c0;p=SCSI2SD-V6.git Reduce IRQ delays --- diff --git a/src/firmware/disk.c b/src/firmware/disk.c index 7a4cb8a7..f22bfb1e 100755 --- a/src/firmware/disk.c +++ b/src/firmware/disk.c @@ -874,12 +874,7 @@ static void diskDataIn() likely(scsiDev.phase == DATA_IN) && likely(!scsiDev.resetFlag)) { - __disable_irq(); - if (!scsiPhyComplete() && likely(!scsiDev.resetFlag)) - { - __WFI(); - } - __enable_irq(); + // spin } if (scsiDev.phase == DATA_IN) @@ -1130,12 +1125,10 @@ void diskDataOut() // Should already be complete here as we've ready the FIFOs // by now. Check anyway. - __disable_irq(); while (!scsiPhyComplete() && likely(!scsiDev.resetFlag)) { - __WFI(); + // spin } - __enable_irq(); if (clearBSY) { diff --git a/src/firmware/scsiPhy.c b/src/firmware/scsiPhy.c index 124d0eda..327baba9 100755 --- a/src/firmware/scsiPhy.c +++ b/src/firmware/scsiPhy.c @@ -335,12 +335,7 @@ scsiRead(uint8_t* data, uint32_t count, int* parityError) while (!scsiPhyComplete() && likely(!scsiDev.resetFlag)) { - __disable_irq(); - if (!scsiPhyComplete() && likely(!scsiDev.resetFlag)) - { - __WFI(); - } - __enable_irq(); + // spin } i += chunk; @@ -487,12 +482,10 @@ scsiWrite(const uint8_t* data, uint32_t count) while (!scsiPhyComplete() && likely(!scsiDev.resetFlag)) { - __disable_irq(); if (!scsiPhyComplete() && likely(!scsiDev.resetFlag)) { - __WFI(); + // spin } - __enable_irq(); } i += chunk;