Feature/t500rs driver only - #219
Conversation
|
Heyo, what's your plan with this draft? Looks like the changes are more or less the same as in #218 but I guess the commit history is more squashed as suggested in #218 (comment). If you tried to follow the suggestions in #218 (comment), this PR kind of misses the mark a bit. For example, ddc0305 could've/should've been a preparatory PR, since it's more generic and touches other things than just the T500. It was kind of implied, but maybe not explicitly stated, but size of this PR is kind of the main issue here. The last few PRs had hundreds of comments and I can see that at least some of them aren't reflected in this version (which is understandable, there's a huge amount of context to keep track of). GitHub has a new feature, stacked PRs, that you can use to create a series of PRs that each depend on eachother. That way, you can split the total work into smaller bits that can be reviewed separately, and each thread is more focused. For example, for this PR something like
or something along those lines. This is a pretty good overview of what a good PR consists of. Note that it suggests keeping PRs under 400 lines of code, compared to the 2900 in this one :) Although, please don't take the 400 lines as a hard limit, I would imagine that the first T500 commit has to be a bit bigger since there's some boilerplate etc. that needs to exist. |
Add a model driver for the T500RS wheel base under src/tmt500rs, implementing the full effect set (constant, spring, damper, friction, periodic incl. square/ramp, incline) with slot-based effect upload, workqueue-driven packet dispatch, range/gain/autocenter handling and defensive state reset at probe. Wire the T500RS product ID (0xb65e) into the core probe dispatch and device table, and build the new object into the module. No other core changes: gain and autocenter requests can arrive from input event context (which may run with IRQs disabled) and from sysfs, both of which cannot perform the blocking HID output this wheel requires, so the driver itself defers them to a dedicated control worker with its own DMA-safe buffer, mirroring its expiry/synth worker pattern. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Document the T500RS report/effect format observed from captures, rename the existing effects doc to make its wheel family explicit, and note T500RS support in the README and contributing guide.
d75c624 to
e0eef1e
Compare
|
Hi @Kimplul, I am indeed in the works to split in chunks the driver. I will thy that "PR stack" feature github provides, hopefully it will make it clearer to review. Will cancel the previous ones |
No description provided.