| Age | Commit message (Collapse) | Author |
|
|
|
+ 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.
|
|
+ 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.
|
|
+ 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.
|
|
+ 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.
|
|
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`.
|
|
+ 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ Courtesy of @BDave95
|
|
+ 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.
|
|
MmAaXx500-refactor-duration
|
|
- do the calculation in only one place
- avoid losing 1 ms (if it ever matters)
|
|
Avoid subtracting twice from the length of the effect
first time in t300rs_calculate_periodic_values
second time in t300rs_update_periodic
|
|
|
|
+ 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.
|
|
"HID: change return type of report_fixup() to const" fe73965
|
|
Effect corrections part3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Effect corrections part2
|
|
|
|
|
|
|
|
- unified handling of all condition effects for uploads and updates
- added new saturation parameters
- added right, left, and right&left update type for saturation
- added right&left update type for coefficient
|
|
Force effect corrections part1
|
|
|
|
|
|
|
|
|
|
+ This avoids a slight stutter when an effect is restarted. I also had a
bug in the original code that effectively stopped the playing of some
effects, whoops
|
|
|
|
|
|
|
|
|
|
- Update the effects documents
- Rename `hid-tm*` to `tm*` for folders
- Move `Makefile` and `Kbuild` to root
- Add `deps/` and move in [hid-tminit](https://github.com/scarburato/hid-tminit/commit/9375f6c7d83af5dd6c8b8fe30351d0f36043b20a)
|
|
|