diff --git a/linux/ipcore/PapbVcInterface.cpp b/linux/ipcore/PapbVcInterface.cpp index 11c520de..d9ff4ce5 100644 --- a/linux/ipcore/PapbVcInterface.cpp +++ b/linux/ipcore/PapbVcInterface.cpp @@ -33,14 +33,14 @@ ReturnValue_t PapbVcInterface::write(const uint8_t* data, size_t size) { return DirectTmSinkIF::IS_BUSY; } for (size_t idx = 0; idx < size; idx++) { - if (pollPapbBusySignal(10) == returnvalue::OK) { + if (pollPapbBusySignal(20) == returnvalue::OK) { *(vcBaseReg + DATA_REG_OFFSET) = static_cast(data[idx]); } else { abortPacketTransfer(); return returnvalue::FAILED; } } - if (pollPapbBusySignal(10) == returnvalue::OK) { + if (pollPapbBusySignal(20) == returnvalue::OK) { completePacketTransfer(); } else { abortPacketTransfer(); @@ -57,7 +57,7 @@ ReturnValue_t PapbVcInterface::pollPapbBusySignal(uint32_t maxPollRetries) const gpio::Levels papbBusyState = gpio::Levels::LOW; ReturnValue_t result; uint32_t busyIdx = 0; - struct timespec nextDelay = {.tv_sec = 0, .tv_nsec = 1000}; + nextDelay.tv_nsec = 1000; while (true) { /** Check if PAPB interface is ready to receive data */ diff --git a/linux/ipcore/PapbVcInterface.h b/linux/ipcore/PapbVcInterface.h index 17bc6f94..484390b2 100644 --- a/linux/ipcore/PapbVcInterface.h +++ b/linux/ipcore/PapbVcInterface.h @@ -87,6 +87,7 @@ class PapbVcInterface : public VirtualChannelIF { std::string uioFile; int mapNum = 0; + mutable struct timespec nextDelay = {.tv_sec = 0, .tv_nsec = 1000}; mutable struct timespec remDelay; volatile uint32_t* vcBaseReg = nullptr;