--- a/drivers/input/ps2d/src/mouse.rs +++ b/drivers/input/ps2d/src/mouse.rs @@ -1,8 +1,8 @@ use crate::controller::Ps2; use std::time::Duration; -pub const RESET_RETRIES: usize = 10; -pub const RESET_TIMEOUT: Duration = Duration::from_millis(1000); +pub const RESET_RETRIES: usize = 3; +pub const RESET_TIMEOUT: Duration = Duration::from_millis(250); pub const COMMAND_TIMEOUT: Duration = Duration::from_millis(100); #[derive(Clone, Copy, Debug)] @@ -260,7 +264,8 @@ MouseResult::Timeout(COMMAND_TIMEOUT) } else { log::warn!("unknown mouse response {:02X} after reset", data); - self.reset(ps2) + *self = MouseState::None; + MouseResult::None } } MouseState::Bat => { @@ -352,12 +357,14 @@ self.reset(ps2) } MouseState::Reset => { - log::warn!("timeout waiting for mouse reset"); - self.reset(ps2) + log::debug!("timeout waiting for mouse reset, fast-failing"); + *self = MouseState::None; + MouseResult::None } MouseState::Bat => { - log::warn!("timeout waiting for BAT completion"); - self.reset(ps2) + log::debug!("timeout waiting for BAT completion, fast-failing"); + *self = MouseState::None; + MouseResult::None } MouseState::IdentifyTouchpad { .. } => { //TODO: retry?