From nobody Fri Oct 2 13:07:19 2026 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54BE335C6A3 for ; Fri, 31 Jul 2026 05:42:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785476548; cv=none; b=HfNDOAKtXEL0FNWI/gGVzpticnGgCCRSD4Oq0XQSkvAX9zzKILHVcoa0VInEvuuFIsq+Xp8r2IFxpIxlcHtI8Gy8S0OHY/M6AuotOudmdkX5qk6ivNSuI5snpEMIywk5siXKsqCWfVZiZzReFBtuPJJyXzS41L5Y+eLG3TT9RVM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785476548; c=relaxed/simple; bh=HL7q5zTLUMwMbIHiiJUYnijU/84M/zm0u4bGEcYkRo4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X1xODfZMCAej2gBKfpt0MKuPJHCfDsMo2FTBOtvGV+2iuv4u7SL1q6q6ktl6PD4F30oJZc4e2+x4b3YAW2Kta/VMUAvb1eBPkqYTbhETNQfqU4t3AgzAIuIsG8M3L9LYgHqZi0KOKU/uQGQE3WXWGQsnrqSInevGXiiVTjBLXiQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=g9SiNvih; arc=none smtp.client-ip=209.85.221.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="g9SiNvih" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-47640541585so372955f8f.1 for ; Thu, 30 Jul 2026 22:42:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785476545; x=1786081345; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Foj1K9Ubp68YMleene5c/TgrPIeWOgq/EfFOV7pa8SE=; b=g9SiNvih55CX/SqilkVxLe4eDS4KFBj367Q8cmVSDroWtKBQMCxNr1oyfuXbTBU6NN WQa29tqpyIyIUmQqPXKwJZHRRta8Zix81ssM8OFTAylqHyrHlH8mZsIyTXTQfb5ooWtD 9Tx/g7bFiH0d3oAdCSQsqKZxUoN/fx4+R8xhyLCVlSknVdzT8MONnei9CsuSWoy3cNyI 4q8zBeWTXMNlfhR/3egEKeaYESqnplLC8taENTACL9KW++NpIXVtzr3CWWkZo8VDOENl 4g46/Xndqcyw4tuUJi5wShj/ZthgIH8VjvcOGeEXBKuViI9/xfaqn8yfuaXBhctAPJcd s+kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785476545; x=1786081345; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Foj1K9Ubp68YMleene5c/TgrPIeWOgq/EfFOV7pa8SE=; b=MRWKvr0nCI6o08ZsCdzjkdZv2Ig90sH8cjQhtR2/StQjckT/L3A0ArODNQ8SSEysQy sTDFQ1l9tUQCAomXjnRUV+rlIJNgMYb2epTlMfiUiLGz8q20JlrS8niSmbDmQetJiR8i 6rog7mJFNApRjjve1T9feyhdZ3fl5YDtPZ3B7p3zBEOb6SCMxiDd/ffkFacSjcYyLOnC 75/jau+GDrzNCnJLgctO0RIBGbMRAtoWMHSwg1Q1cxfBuH2j91RSqwBMqSJqiBgFAf58 Q1C3Ffskbzhaw6qWz9uj4/pTTf/xmhO65uoFZmdH+JtnXFk0w7pJycpxNBFN5YGETbJb ohbA== X-Forwarded-Encrypted: i=1; AHgh+RpJTHZVDXfxxYfad9TEsEWE+TP9ptvQueNU45sDLMVIc5xEywD9/USpxD6jjlJTZ2sKNJb6lf69b13k/fA=@vger.kernel.org X-Gm-Message-State: AOJu0YwCEc/Au/GDIM0uB6gKBtm3yGPBrjfvRcUAbCCuNke1vm6QF9OS i8Q7ND8dwVHXJkneoQHzkAl0KAx2GJAuRqPgqsuX5cHZNEnfzqeDfw/L X-Gm-Gg: AR+sD11KZh7sfED31BVETXyQy6Mjw2woUqtq2a8x0G0NQu9hDvIVM8dpJxICSPWrfB1 Sljctm2YAZ/99MyxfJS/7A6jzPQMP/2P1iwpcRHauQbo7s80lRcGslNxXPH0hNTkewiqCtZvb9u oJqTgP0YDboGGyHddqsx3pvUz+Hmai6nHjM7RySV1Pfv12KC3NIlGQQDPHT+e+aC5Wju/qpk1Dj Z44KU807LB2O8TcQJlTnvXsjyOWSf4nhJp27c2SugNCV9FqvqbBxnUsYH9vX4mq6onbkttFyS8S mGOsURIPbMBbnLE+ONLXSU5y2s8vT68mp5nLj1bh5u2lgbBjN+DVrQuZTypnjU+cCwIkPAH2MpH I1GyC40rY0upW0BCUWlwSk5m71COORCkcP5bCzsXT/MA90WopLLIT+FiXIiBc0iTt3leK6hw6Fd fUbnSwedHAjbEqyFarAvje7DgLQYUZCLOdUk5FAWQOEuIySLApDHjxeHo5JBSbNTtICMczFaKFO I9UVnhx9q7EaL8qVLdI X-Received: by 2002:a05:6000:22c7:b0:47d:ea8a:d224 with SMTP id ffacd0b85a97d-47fd2ad2a58mr1628994f8f.23.1785476545375; Thu, 30 Jul 2026 22:42:25 -0700 (PDT) Received: from mortifia-tour.localdomain ([2a01:cb11:e0e:6900:846:ff2d:816e:3783]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47fd45a0ae0sm412873f8f.33.2026.07.30.22.42.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jul 2026 22:42:23 -0700 (PDT) From: Guillaume Casal To: dmitry.torokhov@gmail.com Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, dbdaniel42@gmail.com Subject: [PATCH v3 1/4] input: Add FF_TRIGGER_RUMBLE effect type Date: Fri, 31 Jul 2026 07:41:56 +0200 Message-ID: <20260731054159.1982164-2-guillaume.casal.42@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260731054159.1982164-1-guillaume.casal.42@gmail.com> References: <20260730134004.1118476-1-guillaume.casal.42@gmail.com> <20260731054159.1982164-1-guillaume.casal.42@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Some gamepads carry rumble motors behind their triggers, in addition to the ones in the grips that FF_RUMBLE drives: Xbox controllers call them impulse triggers, and handhelds such as the ASUS ROG Xbox Ally X have them too. The force feedback API cannot reach those motors. Add FF_TRIGGER_RUMBLE as a new effect type carrying its own struct ff_trigger_rumble_effect, and move FF_EFFECT_MIN down to it, in the same way FF_HAPTIC was added. v1 took the approach of the 2022 series and added two members to struct ff_rumble_effect instead: https://lore.kernel.org/linux-input/20260730095317.767418-1-guillaume.cas= al.42@gmail.com/ That is not safe. EVIOCSFF copies the whole struct ff_effect from userspace, and an application that leaves the tail of the union uninitialised, which is common when only strong_magnitude and weak_magnitude are set, would have had that stack content interpreted as trigger magnitudes. Working programs would start buzzing their triggers at random. Keeping the size of the union unchanged makes the ABI compatible in layout, not in meaning. A distinct effect type has no such problem: no existing application ever emits it, so no uninitialised byte can be mistaken for a magnitude. It also removes the need for a separate capability bit, since userspace discovers the type in the EVIOCGBIT(EV_FF) bitmap exactly as it does for FF_RUMBLE. Based on an earlier attempt by Daniel Bomar: https://lore.kernel.org/lkml/20220410220449.5071-1-dbdaniel42@gmail.com/ Signed-off-by: Guillaume Casal --- diff --git a/include/uapi/linux/input.h b/include/uapi/linux/input.h --- a/include/uapi/linux/input.h +++ b/include/uapi/linux/input.h @@ -448,9 +448,27 @@ }; =20 /** + * struct ff_trigger_rumble_effect - parameters of a trigger rumble effect + * @left_magnitude: magnitude of the motor behind the left trigger + * @right_magnitude: magnitude of the motor behind the right trigger + * + * Some gamepads carry rumble motors behind their triggers, in addition to + * the ones in the grips that FF_RUMBLE drives. Xbox controllers call them + * impulse triggers. + * + * Magnitudes span 0 to 0xffff, as for struct ff_rumble_effect. The effect + * has no direction: each magnitude addresses one fixed actuator. + */ +struct ff_trigger_rumble_effect { + __u16 left_magnitude; + __u16 right_magnitude; +}; + +/** * struct ff_effect - defines force feedback effect * @type: type of the effect (FF_CONSTANT, FF_PERIODIC, FF_RAMP, FF_SPRING, - * FF_FRICTION, FF_DAMPER, FF_RUMBLE, FF_INERTIA, or FF_CUSTOM) + * FF_FRICTION, FF_DAMPER, FF_RUMBLE, FF_TRIGGER_RUMBLE, FF_INERTIA, or + * FF_CUSTOM) * @id: an unique id assigned to an effect * @direction: direction of the effect * @trigger: trigger conditions (struct ff_trigger) @@ -483,6 +501,7 @@ struct ff_periodic_effect periodic; struct ff_condition_effect condition[2]; /* One for each axis */ struct ff_rumble_effect rumble; + struct ff_trigger_rumble_effect trigger_rumble; struct ff_haptic_effect haptic; } u; }; @@ -491,6 +510,7 @@ * Force feedback effect types */ =20 +#define FF_TRIGGER_RUMBLE 0x4e #define FF_HAPTIC 0x4f #define FF_RUMBLE 0x50 #define FF_PERIODIC 0x51 @@ -501,7 +521,7 @@ #define FF_INERTIA 0x56 #define FF_RAMP 0x57 =20 -#define FF_EFFECT_MIN FF_HAPTIC +#define FF_EFFECT_MIN FF_TRIGGER_RUMBLE #define FF_EFFECT_MAX FF_RAMP =20 /* From nobody Fri Oct 2 13:07:19 2026 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0F7E35C692 for ; Fri, 31 Jul 2026 05:42:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785476549; cv=none; b=oELDHJ4h9rywJjPciHXOrg117ukXB2cQDmPiC8zPk0JohrOYDS7NoXS1USRLT3zDDuXAy/5J6OZDFz2GXFI30v4jPhwMRpXDpSTcsXEdrEnGabPN8nStWypc6Y8GnD+kGrrs+TZsn1ZGfr5TBFBYPrvly1c4ZXTyI73HstVIG/0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785476549; c=relaxed/simple; bh=U6QB4MnHdBIHYeizwxxukTDFw4uQE3ezii4oQvWyL/I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sSic0AbmRbHX0UV7ztVNIZ6uHC/8QiP9F5vXx/Uz0YZnoE4ui2PdKAZSN2qnBpzijbt9ioN0fQnkIDlGqda1GSB+m8EJ4izoGpVXQWmT3uzQsjY5OQ7YAfDCBabZ5zuWgcuhrpkPjt8O8LT3n5K3OWUwY2t1WlfRUAIoSXIITHw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gfjnbIy+; arc=none smtp.client-ip=209.85.221.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gfjnbIy+" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-47db714766aso931433f8f.0 for ; Thu, 30 Jul 2026 22:42:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785476546; x=1786081346; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=K4/IxvVyXaXnWBb9xawSOoIIvBUnkDkziVXhjgbdIiU=; b=gfjnbIy+O0k7UJ6UIEuD3ymNlk4RqKy74yM2fQZe+hpBo+a+2ShQa5nTvS7y/CD0yQ 56iDvqPdgj2D4rMCnxAC/HtCTTh+ehzW2Vtm64/zjfWtPJPidaiawsxhrZ28mcAAzZFb +Hjvg1nPv2kHb1F/vuqluNg4fTKZqpbS7B3EozIrQdPQ6jGdaJxMcURJqr+tt5zNefxH J1sbRItFxL+5RnekPRqHNFFyyO4FopB+/yq5f3k4VZUWpv8PhoQJX81D8EYGnmGhIJ3w 5b4C7W8X3dJWl0fnzFT7XwYOjI/ql2eR7LG+g00Fpv7GGWAWkAt5KTDduhLsbdMC3gPc ZhIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785476546; x=1786081346; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=K4/IxvVyXaXnWBb9xawSOoIIvBUnkDkziVXhjgbdIiU=; b=c7SHUrwHsEiDn5SvGbOzmmE0d1gmBYuS+ak+uILEfeXX9VsnPCV0ylvNVeMuWEgjBA I70gorJM4BV14uM/aSflJ79pJOcCm/+MEDHCxJx1+TJvdQFmK0FV2z6/IdbyY+w+WCWF LXMaEkx7D0BjxDPIHWx1f0KOEdihOEmtYRrD7t/4tv0r+wp8o+D1OxbUVtiqSG8WH3C0 9y6uv64iobFZ4SsDeHx4enWRXjHDJddIc5JIx1zOAMoTMErrnUUMvjTY+RqjRd/mVwgM GCW3kBxWw7zUtszCai7W+ay77l+/Wmjf3CcqyTBAZtSY4aeEG59OzZpXgE2qUrr0WzE+ IK2A== X-Forwarded-Encrypted: i=1; AHgh+Rq1qVEq5W7ClD5Tgmj7ofBOipr8jzdvIv5136XrJWmwRFAleABv+95Ebcb9yvIL6e+R1e9EcwkqfZCc6YY=@vger.kernel.org X-Gm-Message-State: AOJu0YwEOvBi5X0g5pN1vlxb16tRvX9Rvmyt5PJ9qbV3NM/rSgW2PVYE 7zkohQc+fXVAyiH1KPiTOXq9PLNTsf+/RrwXcqO9Tb0nYy1brZMtMmLC7M7Xr+8v X-Gm-Gg: AR+sD11P+Sr82JzrtrqxqMZRubRylhGLzpDgyt3vZmtH5yivYWoVhs27TPNjkXuxb3h uzdLYA1HqCtDj/+dV5MePPOJVW57+dA0gHp4sNcXHmnEptw1fMm6IXQ0/A2+yjNQO7U3kCn8xUK yvVzQKpzVuhdgMSVAuBRhJ6GXwuWCaz3c31yE9S+1Tg7znDtu09JnXTa9YgFa5icH392SOma1zD 05f+PtWR2gTOTIZe7LRShyJPl0d4wrPUswKLIGuIFcdmNCkRIRx6LooAbePkpsqvv7+gDHdztDC ziT4peHlP/xgjbE2UsUihfFKXsmmsCLd5Hy7cLUEeHIUUm2IEM/lzf2FZMcfWkyWFwnVbKVIv6H i0q6QbB+IrbNogBcgR55eyoZxzaSyR2HZ1+vgWgzEVn6cVqZW2iPnf2r7aA3nRR94cAaQ1YodVb VMKxSRIZRkssHzT9voCllXbmexGh1KuVTka+87G29eUTUEmwyFpJLkSE0NECyOmRdWf432rMrST 06BPUCawe57zHgyzfl9OTWv45+MkEk= X-Received: by 2002:a05:6000:2989:20b0:47f:9208:9e4 with SMTP id ffacd0b85a97d-47fd33c1111mr664319f8f.31.1785476546290; Thu, 30 Jul 2026 22:42:26 -0700 (PDT) Received: from mortifia-tour.localdomain ([2a01:cb11:e0e:6900:846:ff2d:816e:3783]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47fd45a0ae0sm412873f8f.33.2026.07.30.22.42.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jul 2026 22:42:25 -0700 (PDT) From: Guillaume Casal To: dmitry.torokhov@gmail.com Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, dbdaniel42@gmail.com Subject: [PATCH v3 2/4] input: ff-memless: Handle FF_TRIGGER_RUMBLE Date: Fri, 31 Jul 2026 07:41:57 +0200 Message-ID: <20260731054159.1982164-3-guillaume.casal.42@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260731054159.1982164-1-guillaume.casal.42@gmail.com> References: <20260730134004.1118476-1-guillaume.casal.42@gmail.com> <20260731054159.1982164-1-guillaume.casal.42@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Combine trigger rumble effects the way the other types are combined, so that drivers using input_ff_create_memless() receive them. Because ml_get_combo_effect() groups playing effects by type, a trigger rumble effect forms its own combo and reaches the driver in its own play_effect() call, leaving FF_RUMBLE untouched. An effect that has finished still contributes its type to the combo with zero magnitudes, so the existing stop path works unchanged. Signed-off-by: Guillaume Casal --- diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c --- a/drivers/input/ff-memless.c +++ b/drivers/input/ff-memless.c @@ -289,6 +289,15 @@ min(weak + effect->u.rumble.weak_magnitude, 0xffffU); break; =20 + case FF_TRIGGER_RUMBLE: + effect->u.trigger_rumble.left_magnitude =3D + min((u32)new->u.trigger_rumble.left_magnitude * gain / 0xffff + + effect->u.trigger_rumble.left_magnitude, 0xffffU); + effect->u.trigger_rumble.right_magnitude =3D + min((u32)new->u.trigger_rumble.right_magnitude * gain / 0xffff + + effect->u.trigger_rumble.right_magnitude, 0xffffU); + break; + case FF_PERIODIC: i =3D apply_envelope(state, abs(new->u.periodic.magnitude), &new->u.periodic.envelope); From nobody Fri Oct 2 13:07:19 2026 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0744235C68D for ; Fri, 31 Jul 2026 05:42:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785476551; cv=none; b=hG3zEqA7tbBJ2CsSJdYEfn9HrnSjs4FkwlK1ggjpl6mwgwMhlcYoXKbnxj+yPMTCfKoZZ/OPaxBgy7GXlcSQ/T8Z23jAULFvYqy8iz2PdH4JXg7HLlSVvFeDGUr2bUWNPwEXO1Ua3zTZcAcIfojqj0Fp4IgreQXPqG0T7Tolgq8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785476551; c=relaxed/simple; bh=eEglfdU5NKeCVkGM1ZbDEcNdiQaf6a8VpYub4K+kR2A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PVL6mbn29/2O1A+qJIHLcgIaW10aOBvcNrFr3hF7he/k+dfS0psJ6oqgLVYeGR3v/aT+gPjZeW0eWaIw+tIfQJD1WSzqAyg1Hah9NHIgw33RBomR9cQ3XBumdnnV4uY+U3Z1oFkekBFGMufxXIJ9mg0FsQftRN4h9S9XBODvGF4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ggXY5dOc; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ggXY5dOc" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-47ddf7b09e5so623058f8f.1 for ; Thu, 30 Jul 2026 22:42:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785476547; x=1786081347; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=cXlmEM+opo6hR1/SsuBV9a6HOAEDgwAGIwmp3dr8Q0U=; b=ggXY5dOcUETYJARjzS0VzOkwtZaZ+EdapAHc4p3yxOGHaDynk4hDBP2iPXYX1qkVC9 ghdCHpFE4S3Etj/hl5L/0JaOtMO0Zx6icv2KgOd3hLjlXm9tUOp+e1D+nI+XyRet6TdE +KOtYLG2QOy464ZuBxTKy7RsAUwlQjYBd1iwnrDrpwc8+bM9BVTQfEVawKThdYRLP09c /qGtBlnTQil7dcx1qnxJ0RYiCFdfnpZqMWIqSeVcnOB6rweYGpE9p1KUAe68zxkWRzAZ KzuqyrEr4tuuRQGpAiM2GQkMzc02abT88pdwlvyRnWobKw2kfQw9K5Wap/XTc/XY9A2X MLpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785476547; x=1786081347; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=cXlmEM+opo6hR1/SsuBV9a6HOAEDgwAGIwmp3dr8Q0U=; b=DeDs4CT4Q2/VLxb9aVgXXl68hj0oX+M2DuVewG5jZj17vFgrJeLItNzkgKsHDEZjy4 CkGdHmn+3r0ev7/MJozFp4gE/d5ztopbeAPTtFCNzfa8uRX1KgZcwlb3q1kUbyf3uq39 AqdF9LINRZ392K4JDp8Lly95GKz0XGG0yXqGoNgDrHo8Xg3Xxty50ew8mIouw5kvP518 bpa6ScoNP6H3ZGyrEjC77+X9vujNblBoXUTYkjo+hAk2wFmNkWwZun2om5X1HDFKPUE1 U44Yb/wTkK9hm2FESeDWDvZxDmrdFij6Ejj2OXHANRz9xi74zJDib7BKIPjvt7f64gZO IPfg== X-Forwarded-Encrypted: i=1; AHgh+Rqhf86nWDYMSMKaW6hBKQ9vaqYSdzD6tnssXCg0zi2Xvr5jZ/94JWTr+pzzo/tJbyIIi412Ly0QtvcTLzs=@vger.kernel.org X-Gm-Message-State: AOJu0Yyxt05/1rSx7AC0X0Zsp8OxQqQOWOKcOvr4r3nHNXCdz45tZXc/ HX27E3XU/8BWbZwDJE65OtYTwjxH0rufUxWRRHT+TQAF/2wc9AuHIggn X-Gm-Gg: AR+sD10akNHtSUzfIFIq7DxyOvQoCHGZMTTtRtD02eUT4155IPG2kQzKSEBoIL+DoBx Lk2FqOC1iuW91rWBXzreYdRgnCDGPJ6F7g+pcGvr4UsACcBV747g0MqR8NqIFLueAOUUlhqZub1 wN9jZA/A5K6YS21BgfLXrEDaKUa8GyoMhi7bwV8nv9lUOalc2tF6FzxuIs0RiRnxfmRJjmuz7L8 VyJ8VPxiGkj3R8wksMuZH1JV0MgYdbrqxBh7q2JdwBT4Iy06ekrTyLoZaK+vy5YqoccfzO3Mb/j 73ujqk2e25Iuzm7322SooUcRMIx+pdzGHMZPE73N8s6s16IIaQ4L8CUshAZ6fOdSjLhcEE7bTY1 Gx0kZ4kLrLzW8SVYYZZxBdCEwEW/KrXnxhEDR1+vzo/8pRRk/VRRFIMIY3eauv6sdBeXjO7R2f8 J+OkW3Lnczcx2mLgNlYYZsdwbJ6j4UP+AOtwHo+Ui883bOe+rD55LdEjS1hNl0kUYYRR/nCdnwz MfQ+hI0iXcLv/nDcjyfnxLar7JaVKc= X-Received: by 2002:a05:6000:2892:b0:475:f100:35ff with SMTP id ffacd0b85a97d-47fd2b698b9mr1419677f8f.60.1785476547145; Thu, 30 Jul 2026 22:42:27 -0700 (PDT) Received: from mortifia-tour.localdomain ([2a01:cb11:e0e:6900:846:ff2d:816e:3783]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47fd45a0ae0sm412873f8f.33.2026.07.30.22.42.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jul 2026 22:42:26 -0700 (PDT) From: Guillaume Casal To: dmitry.torokhov@gmail.com Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, dbdaniel42@gmail.com Subject: [PATCH v3 3/4] HID: debug: Add FF_TRIGGER_RUMBLE name Date: Fri, 31 Jul 2026 07:41:58 +0200 Message-ID: <20260731054159.1982164-4-guillaume.casal.42@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260731054159.1982164-1-guillaume.casal.42@gmail.com> References: <20260730134004.1118476-1-guillaume.casal.42@gmail.com> <20260731054159.1982164-1-guillaume.casal.42@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Without an entry in the force[] array, hid_resolv_event() prints the raw hex code instead of the name in debugfs. Signed-off-by: Guillaume Casal --- diff --git a/drivers/hid/hid-debug.c b/drivers/hid/hid-debug.c --- a/drivers/hid/hid-debug.c +++ b/drivers/hid/hid-debug.c @@ -3583,6 +3583,7 @@ }; =20 static const char *force[FF_CNT] =3D { + [FF_TRIGGER_RUMBLE] =3D "FF_TRIGGER_RUMBLE", [FF_RUMBLE] =3D "FF_RUMBLE", [FF_PERIODIC] =3D "FF_PERIODIC", [FF_CONSTANT] =3D "FF_CONSTANT", From nobody Fri Oct 2 13:07:19 2026 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B301435C6AE for ; Fri, 31 Jul 2026 05:42:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785476551; cv=none; b=jdFjsIulIbSfr0rQs4IpC1at4GhKD9gb0TqQwq0RrJI1PjufXvC2UVk/Jgh5W3ShPxOh65SgA+LNFFUY03mgAuU+8kagWhpqt2NSl6VxUkRHs+U4wq/FeCXa2AeLwvua9XMjeytWz2hxMewypQ54A2aQ8BDwfQfWE0GaH+Lei5E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785476551; c=relaxed/simple; bh=grIx/OkVxWnPtBhheXO3mljvVe0MI7LlAzHhBFURjQA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=E/FGU6kbz5nhzVwhfFWFv1HO6p6V3dZPjULVzdn/kcdKykVofpaHhL5LcMWb9H6M0TrzvFear4Kw6mDnB2a2Lro655TgMKXZSIE0908bkpeAuW2HvJ5po2C6IpgiSQ5ALVpdDScYi37brA/7mXsLZ3c28WMIn+dnqZoZCQLYRuM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JAVHOZ8b; arc=none smtp.client-ip=209.85.221.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JAVHOZ8b" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-471eeac43bfso521646f8f.3 for ; Thu, 30 Jul 2026 22:42:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785476548; x=1786081348; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=EzVRN5A4VxKL2AL6Q8Jif/vHDX/nsL6ttUQeuroK6N0=; b=JAVHOZ8bEQs+zZ4maFKXAnjhFi52/Fc1s6YJ50+0Z95PH5vWnnpOV54qGeGPaZR0nX L3rGK1b8tpOm6f3191yzOcJDb5moEbGKOYSIhleGrDX2bGqJt6tIBjbX3qnrWehsj4EB U1Yrx+kTO+5qYw2LpabrRk1vFcSz1hl+8QRp39KdHmTFob4x9ThIqVk7KM9l23R8QB7H Ebqk17jcNDz0gf7qho/rUMuyLRE79LvfgozeW1uKsocbJdQFa5aO3UoiCK7hYSD8XJko PeVpa+nn53kW4X7kX5hFvPKaQdtNFgmyNEcEa4elN7Fh8to1dmZktz+1iRdovHQs61Rt x89g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785476548; x=1786081348; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=EzVRN5A4VxKL2AL6Q8Jif/vHDX/nsL6ttUQeuroK6N0=; b=WQ4Yp1XdzU+1wlbCmSSl/wDXpjHlTCkugFalgBOAeBHnJqad0rrZ0HL0jBVUJxStM/ bVJo5mqZhIKrgs0LwaJU5NFiWi4Igq2twGEKpnkVAKytbzAq86hGd3EweFUGLRLk5e/3 qUJ0BPUFM0ltBs2pFxRPQAsAMgc6mGLxFw6Y40fKtwxBkERNDkhXJ66L+s16cO7qAg6M dCIH4esDppFi1JMlWACIIW5y4VIRz8JhrP2Qg9MWOMuT2qQ7CbNOk/MZcJow6aiXj9hz BLVUi/hnmBgE6uXg10En7Iqvr/2Yit7EF6dXDTM6CEFx2sXV+8dZ0dmPHUfVMcbOTGim 1Efg== X-Forwarded-Encrypted: i=1; AHgh+RoLhWKXmoYrVCt8U9pRbu/KfFqHKA1yAPXEunTpnPCpzp0EyBzCKslk7asw3ieJPzshAhvs+rJmzYaeCJU=@vger.kernel.org X-Gm-Message-State: AOJu0YzHHyYkQc1b2fn/pZmWkQx4HtMMeppQ/ygHw6M9aF7fasOOU4bp 4Zg84sebrHfCqOHkUMT//tcPxTEOyFWlEZnDyIrm3cv/T+hIdtpmctG1 X-Gm-Gg: AR+sD1252gBAja5Wsn4DsCBNOq283+DpBHA5FjcCik9//gKQktTSs5nRNU3xsvgPmqi ABgtjsiTVN1hA/wz+mY9skpgAgqG7Txq7sz1ZjT3LDrfw/CQvoNesYdXCvi0ErUdJTIuGZHX8MN SvdBTW1qWNd6o90eR2sR0+A4kJetkxCPoY8Zj6MfIoIjqBnojIUhIZXTiDEb7/AnbtHeJi5il4t r7x0sdAwLoJAT3A36L51gw0ZDaeKhFr+kO1ZIo4sc/qmS7BxHbmP4zXDnajs1wS10NuXA9nTemN vW680JqgPd4me2myOZxfLETz30JKpbJxQd7vWcbZ3E2sDVFq0+96gUYPYp6Z033WHug8iiEA2WI 400xtfdq1YsPXk5pw6qXmVKYGk541INu1IMMMAuqFn3/SBEBAEjX5mIsS23wPxlFFEjkCT+MbAQ Uj7UExwuCcXaaUJTvxMyTukHUUMjxMypDlpwOWVY7Ia1g9RYkeUXvZqAveT+XeJdzC80+2FKfJc sCju7hh+pQ2V7gGvmeJcWWM8XN/f9eg X-Received: by 2002:a05:6000:24c1:b0:470:2fb1:3dbc with SMTP id ffacd0b85a97d-47fd2b40e32mr1600723f8f.35.1785476548033; Thu, 30 Jul 2026 22:42:28 -0700 (PDT) Received: from mortifia-tour.localdomain ([2a01:cb11:e0e:6900:846:ff2d:816e:3783]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-47fd45a0ae0sm412873f8f.33.2026.07.30.22.42.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jul 2026 22:42:27 -0700 (PDT) From: Guillaume Casal To: dmitry.torokhov@gmail.com Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, dbdaniel42@gmail.com Subject: [PATCH v3 4/4] Documentation: input: Document FF_TRIGGER_RUMBLE Date: Fri, 31 Jul 2026 07:41:59 +0200 Message-ID: <20260731054159.1982164-5-guillaume.casal.42@gmail.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260731054159.1982164-1-guillaume.casal.42@gmail.com> References: <20260730134004.1118476-1-guillaume.casal.42@gmail.com> <20260731054159.1982164-1-guillaume.casal.42@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" List the new effect type alongside the others so that userspace developers can find it when querying device capabilities. Signed-off-by: Guillaume Casal --- diff --git a/Documentation/input/ff.rst b/Documentation/input/ff.rst --- a/Documentation/input/ff.rst +++ b/Documentation/input/ff.rst @@ -85,6 +85,7 @@ - FF_FRICTION can simulate friction - FF_DAMPER can simulate damper effects - FF_RUMBLE rumble effects +- FF_TRIGGER_RUMBLE rumble effects in the triggers - FF_INERTIA can simulate inertia - FF_GAIN gain is adjustable - FF_AUTOCENTER autocenter is adjustable