bors[bot]
37da84129d
Merge #657
...
657: Async usb stack r=Dirbaio a=Dirbaio
TODO
- [x] Make it work on nRF
- [x] Add a way for classes to handle their own EP0 control requests - thanks `@alexmoon!`
- [x] Handle CONTROL OUT requests with data.
- [ ] Impl AsyncRead/AsyncWrite for CDC ACM -- will do later, it's not trivial
- [x] Cleanup unwraps/asserts/panics
- [x] Cleanup logs (make everything trace/debug, not info)
- [ ] Port synopsys-usb-otg
- [ ] Port stm32-usbd
- [ ] Add more classes? HID, MSD?
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
Co-authored-by: alexmoon <alex.r.moon@gmail.com>
2022-04-07 23:03:39 +00:00
Dario Nieuwenhuis
9252e8bb88
Update cargo-batch.
2022-04-08 00:35:00 +02:00
bors[bot]
637ec36f9c
Merge #700
...
700: Add back support for cloning sender/receiver r=Dirbaio a=lulf
The automatic derive clone does not work because RawMutex is not Clone.
Co-authored-by: Ulf Lilleengen <lulf@redhat.com>
2022-04-07 19:27:36 +00:00
Dario Nieuwenhuis
d2494486d1
Merge pull request #701 from alexmoon/async-usb-stack
...
Async-ify Driver::enable and UsbDeviceBuilder::build
2022-04-07 19:55:00 +02:00
alexmoon
7f9dd1a37b
Fix spurious ControlPipe::data_in errors
2022-04-07 10:54:21 -04:00
alexmoon
6abbfa9a92
Async-ify Driver::enable and UsbDeviceBuilder::build
2022-04-07 10:51:26 -04:00
Ulf Lilleengen
9206584aa9
Add back support for cloning sender/receiver
...
* Remove level of import indirection for Channel and Signal.
2022-04-07 15:15:44 +02:00
bors[bot]
b6f40aca57
Merge #679
...
679: Reexport unborrow macro in HALs r=Dirbaio a=matoushybl
Removes the need to depend on embassy-hal-common in the case of developing custom peripheral drivers.
Co-authored-by: Matous Hybl <hyblmatous@gmail.com>
2022-04-07 11:41:15 +00:00
Matous Hybl
eb6910fa86
Reexport unborrow macro in HALs
2022-04-07 12:57:02 +02:00
bors[bot]
fee0aef076
Merge #696
...
696: Add async Mutex. r=Dirbaio a=Dirbaio
What it says on the tin :)
It allows sharing data between tasks when you want to `.await` stuff while holding it locked.
Co-authored-by: Dario Nieuwenhuis <dirbaio@dirbaio.net>
2022-04-06 10:20:43 +00:00
alexmoon
a1754ac8a8
embassy-usb-hid bug fixes
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
22a47aeeb2
usb: abort control data in/out on reset or when receiving another SETUP.
...
This removes the horrible timeout hack.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
f6d11dfba5
usb: fix slow enumeration with EP0 max_packet_size of 8 or 16.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
b2e517bb28
usb/serial: add multitask example.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
3dbb7c9e15
usb/hid: add keyboard example.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
de9acf5d48
usb/hid: fix infinite loop when N=0
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
6d514a0b31
usb/hid: update for endpoint state changes.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
fa9eadcee9
Add docserver metadata.
2022-04-06 05:38:11 +02:00
alexmoon
2ce435dc34
Add basic device state handling for endpoints.
2022-04-06 05:38:11 +02:00
alexmoon
99f95a33c3
Simplify hid output report handling
2022-04-06 05:38:11 +02:00
alexmoon
c8ad82057d
Reduce memory overhead and simplify logic for merging endpoint and control request output reports.
2022-04-06 05:38:11 +02:00
alexmoon
c309531874
Remove output() and split() methods from HidClass when there is no out endpoint, and route set_report requests for output reports to RequestHandler::set_report in that case.
2022-04-06 05:38:11 +02:00
alexmoon
daf2379fa4
Make the interupt IN endpoint non-optional
2022-04-06 05:38:11 +02:00
alexmoon
a51de5a39a
Remove the feature report reader
2022-04-06 05:38:11 +02:00
alexmoon
cf89c85569
Log when reports are dropped without being read.
2022-04-06 05:38:11 +02:00
alexmoon
5ee7a85b33
Async USB HID class
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
8fe3b44d82
usb: log on reset, resume, suspend
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
522a87ae42
usb: centralize all control logging in control.rs
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
d7d199f2ac
nrf/usb: unify in/out wakers for ep0
2022-04-06 05:38:11 +02:00
alexmoon
f5ba022257
Refactor ControlPipe to use the typestate pattern for safety
2022-04-06 05:38:11 +02:00
alexmoon
77e0aca03b
Move data chunking from the driver to the lib
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
1672fdc666
usb-serial: make inner guts private.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
cdb7bae51a
examples/nrf: don't build usb stuff in stable.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
a435d78cf7
usb: cleanup and simplify error handling.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
60d3d11197
usb: cleanup logging.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
d1e4b3d7d5
usb: add -usb-serial crate, fix warnings and stable build.
2022-04-06 05:38:11 +02:00
alexmoon
c06488eb29
Support multi-frame data phase control requests
2022-04-06 05:38:11 +02:00
alexmoon
d40ebcccf6
Add handlers for standard reqs to ControlHandler
2022-04-06 05:38:11 +02:00
alexmoon
13370c28db
Add a control_buf to UsbDevice
2022-04-06 05:38:11 +02:00
alexmoon
c53bb7394a
Switch to ControlHandler owned bufs for control_in()
2022-04-06 05:38:11 +02:00
alexmoon
a22639ad92
Remove UnsafeCell from cdc_acm::Control
2022-04-06 05:38:11 +02:00
alexmoon
46bafecb2a
Only copy through RAM when needed
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
d7b1f8ca57
usb: update docs on ControlHandler.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
e99a3a1da4
usb: simplify buffer handling for Control IN transfers.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
bfce731982
usb: nicer names for control structs.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
2b547f311e
usb: move all control-related stuff to mod control
.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
15cc97d794
usb: associate ControlHandlers with interfaces, automatically route requests.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
3412e5dc4a
usb: cleanup giant matches in control code.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
a2f5763a67
usb: add add_class
to builder, so that FooBarClass::new(&mut builder)
can set up everything.
2022-04-06 05:38:11 +02:00
Dario Nieuwenhuis
a062baae38
nrf/usb: fix wrong DMA read size
2022-04-06 05:38:11 +02:00