Skip to content

Commit 246b855

Browse files
committed
keyboard: Move HID code into USB poll
Automatically handles not doing anything if in USB suspend. Signed-off-by: Daniel Schaefer <dhs@frame.work>
1 parent ecab28b commit 246b855

File tree

1 file changed

+16
-20
lines changed

1 file changed

+16
-20
lines changed

keyboard/src/main.rs

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -475,25 +475,6 @@ fn main() -> ! {
475475
scan_timer = timer.get_counter().ticks();
476476
}
477477

478-
if !usb_suspended {
479-
let _ = keyboard_hid.interface().read_report();
480-
481-
// Setup the report for the control channel
482-
let keycodes = if let Some(keycode) = keycode {
483-
[keycode]
484-
} else {
485-
[Keyboard::NoEventIndicated]
486-
};
487-
match keyboard_hid.interface().write_report(keycodes) {
488-
Err(UsbHidError::WouldBlock) | Err(UsbHidError::Duplicate) | Ok(_) => {}
489-
Err(e) => panic!("Failed to write keyboard report: {:?}", e),
490-
}
491-
match keyboard_hid.interface().tick() {
492-
Err(UsbHidError::WouldBlock) | Ok(_) => {}
493-
Err(e) => panic!("Failed to process keyboard tick: {:?}", e),
494-
}
495-
}
496-
497478
// Wake the host.
498479
if keycode.is_some() && usb_suspended && usb_dev.remote_wakeup_enabled() {
499480
usb_dev.bus().remote_wakeup();
@@ -527,7 +508,22 @@ fn main() -> ! {
527508
//let kb = Matrix::default();
528509
//let kb = scanner.scan();
529510

530-
keyboard_hid.poll();
511+
let _ = keyboard_hid.interface().read_report();
512+
513+
// Setup the report for the control channel
514+
let keycodes = if let Some(keycode) = keycode {
515+
[keycode]
516+
} else {
517+
[Keyboard::NoEventIndicated]
518+
};
519+
match keyboard_hid.interface().write_report(keycodes) {
520+
Err(UsbHidError::WouldBlock) | Err(UsbHidError::Duplicate) | Ok(_) => {}
521+
Err(e) => panic!("Failed to write keyboard report: {:?}", e),
522+
}
523+
match keyboard_hid.interface().tick() {
524+
Err(UsbHidError::WouldBlock) | Ok(_) => {}
525+
Err(e) => panic!("Failed to process keyboard tick: {:?}", e),
526+
}
531527

532528
// let mut buf = [0u8; 64];
533529
// match serial.read(&mut buf) {

0 commit comments

Comments
 (0)