SDL: Make sure we synchronously re-enable USB reporting mode for Switch controllers (thanks @SortaCore!)

From b7c6fec10a152e47f8fa18350134188b75e9df0b Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Wed, 8 Feb 2023 14:22:39 -0800
Subject: [PATCH] Make sure we synchronously re-enable USB reporting mode for
 Switch controllers (thanks @SortaCore!)

Fixes https://github.com/libsdl-org/SDL/issues/3450
---
 src/joystick/hidapi/SDL_hidapi_switch.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/joystick/hidapi/SDL_hidapi_switch.c b/src/joystick/hidapi/SDL_hidapi_switch.c
index e3ba8863c007..5ef5b8908c53 100644
--- a/src/joystick/hidapi/SDL_hidapi_switch.c
+++ b/src/joystick/hidapi/SDL_hidapi_switch.c
@@ -2161,7 +2161,11 @@ static SDL_bool HIDAPI_DriverSwitch_UpdateDevice(SDL_HIDAPI_Device *device)
                 const int INPUT_WAIT_TIMEOUT_MS = 100;
                 if (now >= (ctx->m_ulLastInput + INPUT_WAIT_TIMEOUT_MS)) {
                     /* Steam may have put the controller back into non-reporting mode */
+                    SDL_bool wasSyncWrite = ctx->m_bSyncWrite;
+
+                    ctx->m_bSyncWrite = SDL_TRUE;
                     WriteProprietary(ctx, k_eSwitchProprietaryCommandIDs_ForceUSB, NULL, 0, SDL_FALSE);
+                    ctx->m_bSyncWrite = wasSyncWrite;
                 }
             } else if (device->is_bluetooth) {
                 const int INPUT_WAIT_TIMEOUT_MS = 3000;