From b6a55c2856d3a65f18554d0e1e3b0c0f3e00c0cd Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 3 Sep 2025 15:36:58 -0700 Subject: [PATCH] Wait a bit for initialization to complete before requesting calibration data Fixes https://github.com/libsdl-org/SDL/issues/13856 --- src/joystick/hidapi/SDL_hidapi_switch2.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/joystick/hidapi/SDL_hidapi_switch2.c b/src/joystick/hidapi/SDL_hidapi_switch2.c index 13367d4438..7b1978e79b 100644 --- a/src/joystick/hidapi/SDL_hidapi_switch2.c +++ b/src/joystick/hidapi/SDL_hidapi_switch2.c @@ -349,10 +349,12 @@ static bool HIDAPI_DriverSwitch2_InitUSB(SDL_HIDAPI_Device *device) } RecvBulkData(ctx, calibration_data, 0x40); + SDL_Delay(1); + flash_read_command[12] = 0x80; res = SendBulkData(ctx, flash_read_command, sizeof(flash_read_command)); if (res < 0) { - SDL_LogWarn(SDL_LOG_CATEGORY_INPUT, "Couldn't read calibration data: %d", res); + SDL_LogWarn(SDL_LOG_CATEGORY_INPUT, "Couldn't request calibration data: %d", res); } else { res = RecvBulkData(ctx, calibration_data, sizeof(calibration_data)); if (res < 0) { @@ -366,7 +368,7 @@ static bool HIDAPI_DriverSwitch2_InitUSB(SDL_HIDAPI_Device *device) flash_read_command[12] = 0xC0; res = SendBulkData(ctx, flash_read_command, sizeof(flash_read_command)); if (res < 0) { - SDL_LogWarn(SDL_LOG_CATEGORY_INPUT, "Couldn't read calibration data: %d", res); + SDL_LogWarn(SDL_LOG_CATEGORY_INPUT, "Couldn't request calibration data: %d", res); } else { res = RecvBulkData(ctx, calibration_data, sizeof(calibration_data)); if (res < 0) {