From d1166ce13ea420f10f96ea045ee1ca277ed5998a Mon Sep 17 00:00:00 2001 From: Uwe Seimet <48174652+uweseimet@users.noreply.github.com> Date: Wed, 15 Nov 2023 07:44:46 +0100 Subject: [PATCH] Improve performance when reading sectors (#1344) --- cpp/hal/gpiobus_raspberry.cpp | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/cpp/hal/gpiobus_raspberry.cpp b/cpp/hal/gpiobus_raspberry.cpp index 030413fd..03bb9640 100644 --- a/cpp/hal/gpiobus_raspberry.cpp +++ b/cpp/hal/gpiobus_raspberry.cpp @@ -606,42 +606,31 @@ uint8_t GPIOBUS_Raspberry::GetDAT() return (uint8_t)data; } -//--------------------------------------------------------------------------- -// -// Set data signals -// -//--------------------------------------------------------------------------- void GPIOBUS_Raspberry::SetDAT(uint8_t dat) { - // Write to port + // Write to ports #if SIGNAL_CONTROL_MODE == 0 uint32_t fsel = gpfsel[0]; fsel &= tblDatMsk[0][dat]; fsel |= tblDatSet[0][dat]; - if (fsel != gpfsel[0]) { - gpfsel[0] = fsel; - gpio[GPIO_FSEL_0] = fsel; - } + gpfsel[0] = fsel; + gpio[GPIO_FSEL_0] = fsel; fsel = gpfsel[1]; fsel &= tblDatMsk[1][dat]; fsel |= tblDatSet[1][dat]; - if (fsel != gpfsel[1]) { - gpfsel[1] = fsel; - gpio[GPIO_FSEL_1] = fsel; - } + gpfsel[1] = fsel; + gpio[GPIO_FSEL_1] = fsel; fsel = gpfsel[2]; fsel &= tblDatMsk[2][dat]; fsel |= tblDatSet[2][dat]; - if (fsel != gpfsel[2]) { - gpfsel[2] = fsel; - gpio[GPIO_FSEL_2] = fsel; - } + gpfsel[2] = fsel; + gpio[GPIO_FSEL_2] = fsel; #else gpio[GPIO_CLR_0] = tblDatMsk[dat]; gpio[GPIO_SET_0] = tblDatSet[dat]; -#endif // SIGNAL_CONTROL_MODE +#endif } //---------------------------------------------------------------------------