Reset limit pointer during DMA re-init

This commit is contained in:
Joris van Rantwijk 2025-10-20 12:19:32 +02:00
parent 44cfd36a45
commit 7cf66e031e
1 changed files with 3 additions and 1 deletions

View File

@ -732,7 +732,6 @@ public:
// Set up DMA buffer segment. // Set up DMA buffer segment.
m_device.write_reg(m_reg.addr_start, m_buf_start); m_device.write_reg(m_reg.addr_start, m_buf_start);
m_device.write_reg(m_reg.addr_end, m_buf_end); m_device.write_reg(m_reg.addr_end, m_buf_end);
m_device.write_reg(m_reg.addr_limit, m_buf_end - POINTER_MARGIN);
// Initialize DMA stream and reset write pointer. // Initialize DMA stream and reset write pointer.
init(); init();
@ -791,6 +790,9 @@ public:
// Reset read pointer. // Reset read pointer.
m_read_pointer = m_buf_start; m_read_pointer = m_buf_start;
// Reset write limit pointer.
m_device.write_reg(m_reg.addr_limit, m_buf_end - POINTER_MARGIN);
} }
/** Return the number of bytes available in the DMA buffer. */ /** Return the number of bytes available in the DMA buffer. */