From b350d3cca3c9cdf922d141d75ce259b63564e24e Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Thu, 9 Jul 2020 17:17:44 -0500 Subject: [PATCH] InputCommon/GCAdapter: Unbreak Mayflash GCAdapters by allowing libusb_control_transfer call to fail. --- Source/Core/InputCommon/GCAdapter.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/Core/InputCommon/GCAdapter.cpp b/Source/Core/InputCommon/GCAdapter.cpp index 3b8e823b24..ab9618efdf 100644 --- a/Source/Core/InputCommon/GCAdapter.cpp +++ b/Source/Core/InputCommon/GCAdapter.cpp @@ -303,9 +303,11 @@ static bool CheckDeviceAccess(libusb_device* device) ERROR_LOG(SERIALINTERFACE, "libusb_detach_kernel_driver failed with error: %d", ret); } - ret = libusb_control_transfer(s_handle, 0x21, 11, 0x0001, 0, nullptr, 0, 10000); - if (ret < 0) - ERROR_LOG(SERIALINTERFACE, "libusb_control_transfer failed with error: %d", ret); + // This call makes Nyko-brand (and perhaps other) adapters work. + // However it returns LIBUSB_ERROR_PIPE with Mayflash adapters. + const int transfer = libusb_control_transfer(s_handle, 0x21, 11, 0x0001, 0, nullptr, 0, 1000); + if (transfer < 0) + WARN_LOG(SERIALINTERFACE, "libusb_control_transfer failed with error: %d", transfer); // this split is needed so that we don't avoid claiming the interface when // detaching the kernel driver is successful