diff --git a/src/core/libraries/usbd/usbd.cpp b/src/core/libraries/usbd/usbd.cpp index c5a644bb3..fb56b715c 100644 --- a/src/core/libraries/usbd/usbd.cpp +++ b/src/core/libraries/usbd/usbd.cpp @@ -44,18 +44,16 @@ void PS4_SYSV_ABI sceUsbdExit() { s64 PS4_SYSV_ABI sceUsbdGetDeviceList(SceUsbdDevice*** list) { LOG_DEBUG(Lib_Usbd, "called"); - static ssize_t last_count = -1; - ssize_t count = libusb_get_device_list(g_libusb_context, list); - if (count <= 0) + if (count < 0) return libusb_to_orbis_error((int)count); - if (count != last_count) { - LOG_INFO(Lib_Usbd, "Found {} USB devices", count); - last_count = count; - } + if (count > 2) + LOG_WARNING(Lib_Usbd, "Too Many USB Devices Connected"); + libusb_unref_device((*list)[2]); + count = 0; - return ORBIS_OK; + return libusb_to_orbis_error((int)count); } void PS4_SYSV_ABI sceUsbdFreeDeviceList(SceUsbdDevice** list, s32 unref_devices) {