浏览代码

Kernel/USB: Tighten up USBManagement enumeration code a bit

Liav A 4 年之前
父节点
当前提交
d16d116b65
共有 1 个文件被更改,包括 33 次插入32 次删除
  1. 33 32
      Kernel/Bus/USB/USBManagement.cpp

+ 33 - 32
Kernel/Bus/USB/USBManagement.cpp

@@ -22,38 +22,39 @@ UNMAP_AFTER_INIT USBManagement::USBManagement()
 
 UNMAP_AFTER_INIT void USBManagement::enumerate_controllers()
 {
-    if (!kernel_command_line().disable_usb()) {
-        PCI::enumerate([this](PCI::Address const& address, PCI::ID) {
-            if (PCI::get_class(address) == 0xc && PCI::get_subclass(address) == 0x3) {
-                if (PCI::get_programming_interface(address) == 0x0) {
-                    if (kernel_command_line().disable_uhci_controller())
-                        return;
-
-                    if (auto uhci_controller_or_error = UHCIController::try_to_initialize(address); !uhci_controller_or_error.is_error())
-                        m_controllers.append(uhci_controller_or_error.release_value());
-
-                    return;
-                }
-
-                if (PCI::get_programming_interface(address) == 0x10) {
-                    dmesgln("USBManagement: OHCI controller found at {} is not currently supported.", address);
-                    return;
-                }
-
-                if (PCI::get_programming_interface(address) == 0x20) {
-                    dmesgln("USBManagement: EHCI controller found at {} is not currently supported.", address);
-                    return;
-                }
-
-                if (PCI::get_programming_interface(address) == 0x30) {
-                    dmesgln("USBManagement: xHCI controller found at {} is not currently supported.", address);
-                    return;
-                }
-
-                dmesgln("USBManagement: Unknown/unsupported controller at {} with programming interface 0x{:02x}", address, PCI::get_programming_interface(address));
-            }
-        });
-    }
+    if (kernel_command_line().disable_usb())
+        return;
+
+    PCI::enumerate([this](PCI::Address const& address, PCI::ID) {
+        if (!(PCI::get_class(address) == 0xc && PCI::get_subclass(address) == 0x3))
+            return;
+        if (PCI::get_programming_interface(address) == 0x0) {
+            if (kernel_command_line().disable_uhci_controller())
+                return;
+
+            if (auto uhci_controller_or_error = UHCIController::try_to_initialize(address); !uhci_controller_or_error.is_error())
+                m_controllers.append(uhci_controller_or_error.release_value());
+
+            return;
+        }
+
+        if (PCI::get_programming_interface(address) == 0x10) {
+            dmesgln("USBManagement: OHCI controller found at {} is not currently supported.", address);
+            return;
+        }
+
+        if (PCI::get_programming_interface(address) == 0x20) {
+            dmesgln("USBManagement: EHCI controller found at {} is not currently supported.", address);
+            return;
+        }
+
+        if (PCI::get_programming_interface(address) == 0x30) {
+            dmesgln("USBManagement: xHCI controller found at {} is not currently supported.", address);
+            return;
+        }
+
+        dmesgln("USBManagement: Unknown/unsupported controller at {} with programming interface 0x{:02x}", address, PCI::get_programming_interface(address));
+    });
 }
 
 bool USBManagement::initialized()