From ace5edfda2f303a3219b69610f7579697e6ad7aa Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sun, 23 Aug 2026 14:21:42 +0300 Subject: [PATCH] Kernel: "Recognize" USB wireless controllers Apparently USB device descriptor is allowed to have class WirelessController if and only if it is a bluetooth controller(?) :D Now we print ENOTSUP instead of EINVAL when encountering these --- kernel/include/kernel/USB/Definitions.h | 1 + kernel/kernel/USB/Device.cpp | 3 +++ 2 files changed, 4 insertions(+) diff --git a/kernel/include/kernel/USB/Definitions.h b/kernel/include/kernel/USB/Definitions.h index d70487e7..b1d94a2f 100644 --- a/kernel/include/kernel/USB/Definitions.h +++ b/kernel/include/kernel/USB/Definitions.h @@ -30,6 +30,7 @@ namespace Kernel Hub = 0x09, BillboardDeviceClass = 0x11, DiagnosticDevice = 0xDC, + WirelessController = 0xE0, Miscellaneous = 0xEF, VendorSpecific = 0xFF, }; diff --git a/kernel/kernel/USB/Device.cpp b/kernel/kernel/USB/Device.cpp index f6770937..4572ec67 100644 --- a/kernel/kernel/USB/Device.cpp +++ b/kernel/kernel/USB/Device.cpp @@ -134,6 +134,9 @@ namespace Kernel case USB::DeviceBaseClass::DiagnosticDevice: dprintln_if(DEBUG_USB, "Found DiagnosticDevice device"); return BAN::Error::from_errno(ENOTSUP); + case USB::DeviceBaseClass::WirelessController: + dprintln_if(DEBUG_USB, "Found WirelessController device"); + return BAN::Error::from_errno(ENOTSUP); case USB::DeviceBaseClass::Miscellaneous: dprintln_if(DEBUG_USB, "Found Miscellaneous device"); return BAN::Error::from_errno(ENOTSUP);