From 8285c7c56d8ddaab4ddb687a13578bdce681e458 Mon Sep 17 00:00:00 2001 From: Evan Lojewski Date: Sun, 5 Jul 2020 12:40:34 -0600 Subject: network: Only check for free FIFO space once to improve transmission speeds. (#84) --- libs/Network/rx.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'libs') diff --git a/libs/Network/rx.c b/libs/Network/rx.c index 149294f..f1710d2 100644 --- a/libs/Network/rx.c +++ b/libs/Network/rx.c @@ -179,12 +179,13 @@ bool Network_PassthroughRxPatcket(NetworkPort_t *port) words--; } + while (APE_PERI.BmcToNcTxStatus.bits.InFifo < words) + ; + if (control.bits.not_last) { for (i = 0; i < words; i++) { - while (0 == APE_PERI.BmcToNcTxStatus.bits.InFifo) - ; APE_PERI.BmcToNcTxBuffer.r32 = block[i + offset].r32; } } @@ -197,14 +198,10 @@ bool Network_PassthroughRxPatcket(NetworkPort_t *port) for (i = 0; i < words - 1; i++) { - while (0 == APE_PERI.BmcToNcTxStatus.bits.InFifo) - ; APE_PERI.BmcToNcTxBuffer.r32 = block[i + offset].r32; } // Last word to send. - while (0 == APE_PERI.BmcToNcTxStatus.bits.InFifo) - ; if (0 == control.bits.payload_length % sizeof(uint32_t)) { // Last word -- cgit v1.2.1