From a164c6391005b810df7a77cf4d332c1f7a6645c0 Mon Sep 17 00:00:00 2001 From: Michael McMaster Date: Tue, 22 Feb 2022 16:20:36 +1000 Subject: [PATCH] Reduce IRQ delays --- src/firmware/disk.c | 11 ++--------- src/firmware/scsiPhy.c | 11 ++--------- 2 files changed, 4 insertions(+), 18 deletions(-) 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; -- 2.38.5