aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
9 daysremove deadzone udev rulesHEADmasterKimplul
+ Unnecessary, now that driver itself sets the wanted deadzone. Thanks @kakra!
9 daysadd module descriptionKimplul
2026-08-09Merge pull request #211 from kakra/t300-correctness-fixesKimplul
fix force feedback arithmetic and wheel input filtering
2026-08-09remove generic input filtering from wheel and pedal axesKai Krakow
+ HID derives fuzz and flat from the logical axis range. On the tested T300 this gives steering fuzz=255 and flat=4095. It filters small corrections and adds a large centered deadzone before applications apply their own steering model. + Flat is also centered for pedal axes, while their rest position is an endpoint. Fuzz without an endpoint deadzone can retain a small nonzero value after the hardware has returned to rest. Both behaviours are inappropriate for wheel and pedal input, and applications already provide the required steering and endpoint deadzones. + Override fuzz and flat for every available wheel and pedal axis in input_configured on devices handled by hid-tmff2, following the existing hid-universal-pidff precedent for high-resolution racing devices. Skip absent axes through the input device's absbit mask.
2026-08-09handle full signed effect magnitude rangeKai Krakow
+ Direction scaling can produce 32768 for the valid input pair -32768 and a negative full-scale sine value. Storing the intermediate result in s16 wraps it before constant, ramp or periodic effects are converted. + Keep direction-scaled values in s32 until their destination range is known. Periodic effects cannot represent a magnitude above S16_MAX, so clamp the asymmetric endpoint after making the magnitude positive. This also prevents the following headroom calculation from using a negative wrapped magnitude.
2026-08-09avoid signed overflow when scaling gainKai Krakow
+ FF_GAIN and the driver gain both use the full 16-bit range. Their product can exceed INT_MAX. Signed overflow is undefined and happens for common settings such as 75 percent times 75 percent. Use a u32 intermediate for the scaling operation. + Pass the configured gain directly when initializing or updating the hardware. This also removes two redundant multiply-divide expressions which could overflow before cancelling out.
2026-08-09use an unsigned 16-bit type for gainKai Krakow
+ Gain is documented and sent to the hardware as a value in the range 0 to 65535, but the module parameter and sysfs attribute accept wider integer values. Store gain as a u16 and parse sysfs writes with kstrtou16 so out-of-range values are rejected instead of being silently changed. + This constrains only the configured value. Calculations combining gain values still require a wider intermediate to cover the product of two full-range 16-bit values.
2026-08-08add a few words about immutable distrosKimplul
+ As requested in #153.
2026-03-10mention DKMS dep in READMEKimplul
2026-02-08bump version numberKimplul
+ Seems appropriate, considering the recent new wheels introduced
2026-02-08prefer linux-headers-genericKimplul
2026-01-26Revert "use on_hid_hw_open instead of input_dev->open"Kimplul
This reverts commit c26573d77369c042dc2b9a881a7f2ff88ddc0dd9. + `on_hid_hw_open` is apparently new enough that common distros don't have it yet, so let's wait a few years and try again. The old method works well enough and if not, just set `open_mode=0`.
2026-01-20mention T598 in READMEKimplul
2026-01-20bump hid-tminitKimplul
+ Adds initialization to the T598, currently uses the T248 path (should probably be renamed to tmadv or something, as soon as I figure out how to separate TXX8 wheels from one another)
2026-01-20mention open_mode in READMEKimplul
2026-01-04use on_hid_hw_open instead of input_dev->openKimplul
+ Seems some applications can mess with input_dev->open, still unclear how but on_hid_hw_open seems to be a bit more reliable so use it for now at least
2025-12-11add TS-PC to READMEKimplul
+ Closes #177
2025-12-11Merge branch 'tspc'Kimplul
2025-12-01fix maybe uninitialized variableKimplul
+ Closes #183
2025-12-01fix possibly uninitialized variableKimplul
2025-11-23remove extra whitespaceKimplul
2025-11-23correct tspc range to be 1080Kimplul
2025-11-23fix TS-XW -> TS-PC in init messageKimplul
2025-11-23add alt mode sysfs fileKimplul
2025-11-23add tspc mode switch for testingKimplul
2025-11-23point to tspc branch in hid-tminitKimplul
2025-11-23apply initial tspc patchesKimplul
+ Courtesy of @BDave95
2025-11-07highlight ramp <-> sawtooth relationshipKimplul
2025-11-03minimize critical section in work handlerKimplul
+ Effects handlers were being called in a locked context, which in this case happened to work due to how `hid_hw_request` is implemented. Now, only the selected state is updated and the heavy lifting of making the wheel aware of the requested changes is done after the critical section.
2025-10-03Silence deprecation warning with DKMS >= 3.1.8Kimplul
2025-07-28Merge branch 'MmAaXx500-refactor-duration'Kimplul
2025-07-28Merge branch 'refactor-duration' of github.com:MmAaXx500/hid-tmff2 into ↵Kimplul
MmAaXx500-refactor-duration
2025-07-28Merge branch 'MmAaXx500-fix-periodic-len'Kimplul
2025-07-24refactor effect length calculationMmAaXx500
- do the calculation in only one place - avoid losing 1 ms (if it ever matters)
2025-07-24fix periodic effect length on updateMmAaXx500
Avoid subtracting twice from the length of the effect first time in t300rs_calculate_periodic_values second time in t300rs_update_periodic
2025-06-28bump tminitKimplul
2025-04-22Merge pull request #156 from danielpokladek/patch-1Kimplul
Adds reminder to add MOK certificate if using Secure Boot + DKMS.
2025-04-20Adds reminder to add MOK certificate if using Secure Boot + DKMS.Daniel Pokladek
2025-04-12fix typo in REAMDEKimplul
2025-02-03Separate uaccess to another udev fileKimplul
+ My understanding is that mainly the SteamDeck requires uaccess, most other systems can do without. Unfortunately, due to a bug in SDL, uaccess causes most other systems to not detect input, so we don't want uaccess to be on by default, at least for now
2025-01-26irqsave/irqrestore spinlocksKimplul
2024-12-28Merge pull request #135 from foriequal0/docs/linuxconsole-toolsKimplul
Update README to mention linuxconsole tools dependencies
2024-12-28Update README to mention linuxconsole tools dependenciesSeongChan Lee
2024-12-18add some notes about T-GT IIKimplul
2024-12-18make firmware check a warningKimplul
+ Apparently this allows the T-GT II to work, as it shows up as a PS4 T300 RS, just that it has a different firmware version. Eventually I should maybe look into the firmware response a bit closer and check if I can fish out wheel information or something along those lines to improve wheel detection.
2024-12-08steamdeck installation is apparently a bit trickyKimplul
2024-12-07fix jscal for T248Kimplul
2024-12-07mention udev make command in dkms install as wellKimplul
2024-12-07provide make command to install udev rulesKimplul
+ I guess it's kind of silly to require people to create and populate files manually, no clue why I haven't done this before
2024-11-24add jscal commands to udev exampleKimplul
+ I've been meaning to do this for a while (apparently since #42), finally got around to doing it.