diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index d4f741505c13480da9467bf45894f142ea81b2a5..2696a8bf03fbd688765b94630ecc270b9480e852 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -16,14 +16,6 @@
 
 namespace Service::HID {
 
-int GetNumberLayoutsForController(size_t controller_id) {
-    if (controller_id == Controller_Handheld) {
-        return HID_NUM_LAYOUTS_HANDHELD;
-    } else {
-        return HID_NUM_LAYOUTS;
-    }
-}
-
 // Updating period for each HID device.
 // TODO(shinyquagsire23): These need better values.
 constexpr u64 pad_update_ticks = CoreTiming::BASE_CLOCK_RATE / 10000;
@@ -91,7 +83,11 @@ private:
         controller_header.left_color_buttons = JOYCON_BUTTONS_NEON_BLUE;
 
         for (size_t controller = 0; controller < mem.controllers.size(); controller++) {
-            for (int index = 0; index < GetNumberLayoutsForController(controller); index++) {
+            for (int index = 0; index < HID_NUM_LAYOUTS; index++) {
+                // TODO(DarkLordZach): Is this layout/controller config actually invalid?
+                if (controller == Controller_Handheld && index == Layout_Single)
+                    continue;
+
                 ControllerLayout& layout = mem.controllers[controller].layouts[index];
                 layout.header.num_entries = HID_NUM_ENTRIES;
                 layout.header.max_entry_index = HID_NUM_ENTRIES - 1;
diff --git a/src/core/hle/service/hid/hid.h b/src/core/hle/service/hid/hid.h
index a032f59dcd628d58af8cea1b118943b4872dca4a..b499308d63b3f02dc8440b7dc84ab342a126ab74 100644
--- a/src/core/hle/service/hid/hid.h
+++ b/src/core/hle/service/hid/hid.h
@@ -13,7 +13,6 @@ namespace Service::HID {
 
 constexpr u32 HID_NUM_ENTRIES = 17;
 constexpr u32 HID_NUM_LAYOUTS = 7;
-constexpr u32 HID_NUM_LAYOUTS_HANDHELD = 2;
 constexpr s32 HID_JOYSTICK_MAX = 0x8000;
 constexpr s32 HID_JOYSTICK_MIN = -0x8000;