atmel-samd: HID report descriptor for mouse had to be COMPILER_WORD_ALIGNED #118
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes #114. When the USB HID descriptor for the mouse was sent to the host, it was garbled. I forced the descriptor to be word-aligned, and then it was sent back properly.
There are hints that descriptors should be word-aligned. See for instance https://github.com/adafruit/circuitpython/blob/master/atmel-samd/asf/common/services/usb/udc/udd.h#L312. In many but not all places in the ASF library,
USB_DESC_STORAGE
declarations areCOMPILER_WORD_ALIGNED
, but not all. Perhaps it's an accident that most of them work: the preceeding declarations might make this so.(Would LTO maybe have rearranged things to accidentally cause this?)
I did not fix other places that might have this problem, such as https://github.com/adafruit/circuitpython/blob/master/atmel-samd/asf/common/services/usb/class/hid/device/kbd/udi_hid_kbd.c#L120.