From 726e7581049ef7d7c8269c17485e974ed584a154 Mon Sep 17 00:00:00 2001 From: Niklas Sombert Date: Sat, 23 Dec 2023 18:50:42 +0100 Subject: [PATCH] Don't try to initialize mouse or keyboard if there's no port --- kernel/ps2/src/lib.rs | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/kernel/ps2/src/lib.rs b/kernel/ps2/src/lib.rs index 208354d84c..aad42bd746 100644 --- a/kernel/ps2/src/lib.rs +++ b/kernel/ps2/src/lib.rs @@ -111,17 +111,21 @@ pub fn init() -> Result<&'static PS2Controller, &'static str> { controller.write_config(config); // Step 10: Reset Devices - let keyboard_ref = PS2Keyboard::new(&controller); - if let Err(e) = keyboard_ref.reset() { - warn!("couldn't reset the keyboard; assuming there is none: {e}"); - } else { - controller.keyboard_attached = true; + if port_1_works { + let keyboard_ref = PS2Keyboard::new(&controller); + if let Err(e) = keyboard_ref.reset() { + warn!("couldn't reset the keyboard; assuming there is none: {e}"); + } else { + controller.keyboard_attached = true; + } } - let mouse_ref = PS2Mouse::new(&controller); - if let Err(e) = mouse_ref.reset() { - warn!("couldn't reset the mouse; assuming there is none: {e}"); - } else { - controller.mouse_attached = true; + if port_2_works { + let mouse_ref = PS2Mouse::new(&controller); + if let Err(e) = mouse_ref.reset() { + warn!("couldn't reset the mouse; assuming there is none: {e}"); + } else { + controller.mouse_attached = true; + } } debug!("Final PS/2 {:?}", controller.read_config());