fix: comprehensive boot hardening — crashes, warnings, sensors, bare-metal PS/2
- firmware-loader: handle missing INIT_NOTIFY gracefully (Option<RawFd>) - driver-params: suppress ENODEV (19) on missing driver-manager scheme - compositor: add wl_seat.name + pointer capabilities for Qt6 compat - greeter: use redox QPA (libqredox.so) instead of broken Qt6 Wayland - greeter: reduce DRM wait 10s→2s, kded6 offscreen QPA to avoid crash - thermald: add CPU die temperature via MSR IA32_THERM_STATUS (Linux coretemp) - pcid: diagnostic MCFG warning with Q35 guidance, address validation - dhcpd: auto-interface detection (P0-dhcpd-auto-iface.patch wired) - procmgr: SIGCHLD EPERM→debug (kernel limitation, not a bug) - ps2d LED: warn→debug on modern hw without real PS/2 controller - ps2d mouse: 10×1s→3×250ms retry, fast-fail on unknown response - i2c RON: handle empty response from i2cd when no adapters present - base recipe: wire 6 new/improved patches - config: remove INIT_SKIP, enable all 14 previously-suppressed daemons
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
--- 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?
|
||||
Reference in New Issue
Block a user