WIP use more low-level API for control transfers#18
WIP use more low-level API for control transfers#18tlyu wants to merge 5 commits intokeyboardio:mainfrom
Conversation
75ca72f to
95ab0e5
Compare
|
On further reflection, maybe we should rename |
|
For 3988c50, can you update it to talk about the why of the changes? |
Done. I also took a closer look and decided that some of those changes were fine after all (avoiding changing a disabled endpoint). The change that really needed to be undone was only clearing the halt condition if the endpoint status was set to STALL. |
80bc571 to
2629cf2
Compare
|
This is almost in a state suitable for use in an experimental snapshot. I've conditionalized the trace logging under |
750f349 to
9128955
Compare
9bc76df to
e3f8643
Compare
e7d070d to
a5ba581
Compare
75ff8f6 to
9bd4db9
Compare
This prevents some spurious wakeup interrupts. Mostly, it helps keep debug counters looking reasonable given what's actually happening on the bus.
Add error logging hooks for USB. This is conditionalized on -DUSBCORE_ERROR_HOOKS, because they can cause slowdowns in USB environments with lots of errors.
Working proof of concept. This is kind of mixed up with trace logging code for now, but I'll clean it up in a bit.
Drawbacks include some stricter constraints on the callers of
USBCore_::recvControl: the destination can't be of automatic duration, and the call will complete before the read actually occurs.