Skip to content

I2C DMA timeout does not quiesce the engine fix - #393

Open
JesseMelon wants to merge 2 commits into
OpenPRoT:mainfrom
JesseMelon:i2c-quiesce-engine
Open

I2C DMA timeout does not quiesce the engine fix#393
JesseMelon wants to merge 2 commits into
OpenPRoT:mainfrom
JesseMelon:i2c-quiesce-engine

Conversation

@JesseMelon

Copy link
Copy Markdown
Contributor

No description provided.

@JesseMelon JesseMelon changed the title I2C DMA timeout does not quiesce the engine I2C DMA timeout does not quiesce the engine fix Aug 4, 2026
@JesseMelon JesseMelon linked an issue Aug 4, 2026 that may be closed by this pull request
@rusty1968
rusty1968 self-requested a review August 11, 2026 04:48

@rusty1968 rusty1968 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add targeted tests for the DMA guard: uncommitted drop must quiesce/reset, committed drop must be no-op, timeout path must auto-teardown, and busy-wait must remain bounded to avoid hangs.

Using type-state gets rid of the committed flag.

Drop the runtime `committed` flag from ArmedDma; commit(self) now consumes
the guard via mem::forget, so a committed transfer is no longer a droppable
value and Drop tears down unconditionally.

Add the two-image i2c_dma_abort hardware test (master DMA + clock-stretching
slave) exercising the commit no-op path and the timeout -> guard-drop ->
soft-reset teardown path.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

I2C DMA timeout does not quiesce the engine

2 participants