From e610485cd243b8296e738dd22ada639463cc0197 Mon Sep 17 00:00:00 2001
From: Andrew Udvare <audvare@gmail.com>
Date: Thu, 16 Dec 2021 08:29:34 -0500
Subject: [PATCH 1/2] externals/CMakeLists: fix detection/init of Switch
 controllers in SDL 2.0.18

Enable SDL_THREADS and SDL_ATOMIC
Also set SDL_WAYLAND=OFF due to build issue

Closes #7572
---
 externals/CMakeLists.txt | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 64d1e6aec..598f81978 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -52,11 +52,12 @@ endif()
 # SDL2
 if (YUZU_USE_EXTERNAL_SDL2)
     if (NOT WIN32)
-        # Yuzu itself needs: Events Joystick Haptic Sensor Timers Audio
+        # Yuzu itself needs: Events Joystick Haptic Sensor Timers Audio Threads Atomic
+        # Since 2.0.18 Threads/Atomic required for HIDAPI/libusb (see https://github.com/libsdl-org/SDL/issues/5095)
         # Yuzu-cmd also needs: Video (depends on Loadso/Dlopen)
         set(SDL_UNUSED_SUBSYSTEMS
-            Atomic Render Power Threads
-            File CPUinfo Filesystem Locale)
+            Render Power File CPUinfo
+            Filesystem Locale)
         foreach(_SUB ${SDL_UNUSED_SUBSYSTEMS})
           string(TOUPPER ${_SUB} _OPT)
           option(SDL_${_OPT} "" OFF)

From 9b3611eb8de712c59635747ecd0d33ddb964a032 Mon Sep 17 00:00:00 2001
From: Andrew Udvare <audvare@gmail.com>
Date: Thu, 16 Dec 2021 21:49:26 -0500
Subject: [PATCH 2/2] externals/SDL: update SDL to version with Wayland build
 fix

---
 externals/CMakeLists.txt | 8 ++++----
 externals/SDL            | 2 +-
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 598f81978..491f213d2 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -52,12 +52,12 @@ endif()
 # SDL2
 if (YUZU_USE_EXTERNAL_SDL2)
     if (NOT WIN32)
-        # Yuzu itself needs: Events Joystick Haptic Sensor Timers Audio Threads Atomic
-        # Since 2.0.18 Threads/Atomic required for HIDAPI/libusb (see https://github.com/libsdl-org/SDL/issues/5095)
+        # Yuzu itself needs: Atomic Audio Events Joystick Haptic Sensor Threads Timers
+        # Since 2.0.18 Atomic+Threads required for HIDAPI/libusb (see https://github.com/libsdl-org/SDL/issues/5095)
         # Yuzu-cmd also needs: Video (depends on Loadso/Dlopen)
         set(SDL_UNUSED_SUBSYSTEMS
-            Render Power File CPUinfo
-            Filesystem Locale)
+            CPUinfo File Filesystem
+            Locale Power Render)
         foreach(_SUB ${SDL_UNUSED_SUBSYSTEMS})
           string(TOUPPER ${_SUB} _OPT)
           option(SDL_${_OPT} "" OFF)
diff --git a/externals/SDL b/externals/SDL
index 2e9821423..e2ade2bfc 160000
--- a/externals/SDL
+++ b/externals/SDL
@@ -1 +1 @@
-Subproject commit 2e9821423a237a1206e3c09020778faacfe430be
+Subproject commit e2ade2bfc46d915cd306c63c830b81d800b2575f