Skip to content

Commit ecab28b

Browse files
committed
keyboard: Avoid HID activity in USB suspend
Signed-off-by: Daniel Schaefer <dhs@frame.work>
1 parent 8d9f343 commit ecab28b

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

keyboard/src/main.rs

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

478-
let _ = keyboard_hid.interface().read_report();
478+
if !usb_suspended {
479+
let _ = keyboard_hid.interface().read_report();
479480

480-
// Setup the report for the control channel
481-
let keycodes = if let Some(keycode) = keycode {
482-
[keycode]
483-
} else {
484-
[Keyboard::NoEventIndicated]
485-
};
486-
match keyboard_hid.interface().write_report(keycodes) {
487-
Err(UsbHidError::WouldBlock) | Err(UsbHidError::Duplicate) | Ok(_) => {}
488-
Err(e) => panic!("Failed to write keyboard report: {:?}", e),
489-
}
490-
match keyboard_hid.interface().tick() {
491-
Err(UsbHidError::WouldBlock) | Ok(_) => {}
492-
Err(e) => panic!("Failed to process keyboard tick: {:?}", e),
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+
}
493495
}
494496

495497
// Wake the host.

0 commit comments

Comments
 (0)