https://github.com/libsdl-org/SDL/commit/b467276f4ace6962423e348ae558a80d459f3271
From b467276f4ace6962423e348ae558a80d459f3271 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Wed, 11 Feb 2026 16:53:13 -0800
Subject: [PATCH] Fixed initializing the PowerA Fusion Pro 4 on Steam Link
hardware
(cherry picked from commit 2b484a1ccbe8ed0952b0d3d4ca84ddb0c9be5b6c)
---
src/joystick/hidapi/SDL_hidapi_xboxone.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/joystick/hidapi/SDL_hidapi_xboxone.c b/src/joystick/hidapi/SDL_hidapi_xboxone.c
index c42c708ba5405..896423f848385 100644
--- a/src/joystick/hidapi/SDL_hidapi_xboxone.c
+++ b/src/joystick/hidapi/SDL_hidapi_xboxone.c
@@ -273,8 +273,14 @@ static bool SendSerialRequest(SDL_DriverXboxOne_Context *ctx)
static bool ControllerSendsAnnouncement(Uint16 vendor_id, Uint16 product_id)
{
- if (vendor_id == USB_VENDOR_PDP && product_id == 0x0246) {
- // The PDP Rock Candy (PID 0x0246) doesn't send the announce packet on Linux for some reason
+ // The PDP Rock Candy (PID 0x0246) and PowerA Fusion Pro 4 (PID 0x400b)
+ // don't send the announce packet on Linux for some reason.
+ //
+ // Just to be safe and cover future products, we'll always send the startup
+ // protocol sequence for PDP and PowerA controllers
+ if (vendor_id == USB_VENDOR_PDP ||
+ vendor_id == USB_VENDOR_POWERA ||
+ vendor_id == USB_VENDOR_POWERA_ALT) {
return false;
}
return true;