User Details
- User Since
- Jul 12 2022, 11:32 AM (192 w, 5 d)
Today
Can confirm this works on my machine too! Although sometimes when I press the button fast enough, it doesn't register. It always does when I hold it down for more than a fraction of a second though. Assuming this will be fixed once we're able to pass GPIO interrupts to iichid.
i confirm I saw this work on his machine
If you commit the rest of the ICM code you got from hselasky, I'll work on making it function on my TB3 devices.
Yesterday
If you remove all of the TB3 PCI IDs from the NHI and PCIB drivers, the driver is basically useless for TB3 since it won't probe and attach to anything but generic USB4-capable controllers like the "Pink Sardine" ones (as-is).
I have not looked into this yet, but I think this revision causes S0i3 entry to fail for some reason (even though power consumers should still be switched to D3). So changing status to planned changes.
logic looks sound!
It would be nice to describe somewhere how the new states map to ACPI sleep states.
thanks for this!
overall looks good
Fri, Mar 13
Thu, Mar 12
Thu, Mar 5
i'm sorry, I must resign from this revision. I wish you the best of luck in getting this accepted into posix!
Wed, Mar 4
ah, right, sorry, I didn't see there were other reviews
formatting
I think we should consider renaming these constants, perhaps doing something as radical as POWER_SSTATE_TRANSITION_* => POWER_*, or perhaps keeping STATE (instead of SSTATE), before they are made publicly available (after which, we will have to provide them (almost) indefinitely).
Remove comment about overriding next D-state, as it was confusing and was anyway explained elsewhere.
rebase
Tue, Mar 3
If I had access to the specs, I would like to get ICM/HCM working (which includes investing time in making that functionality in TB3 work). It's mildly annoying how I need to have separate RJ-45 dongles for communication between TB nodes when (in reality) I could just get 2 hosts to talk directly with each other over another IP-like protocol using a TB3/4 capable cable.
I assume that TR has an ICM, but if you've removed the ICM code from freebsd then that's moot. I would kinda recommend bringing the ICM code back and supporting TR and ICL controllers with it until you've written a comprehensive HCM. Just stay away from AR host controllers.
The relationship between TB3 and USB4 isn't as simple as you suggest. There are optional vs mandatory feature considerations, there are differences in the bus properties and device config registers, there are differences in the necessary behavior of the Connection Manager, not to mention that an HCM is mandatory for USB4 but not for TB3, and there are even differences in the NHI programming interface. A better comparison is TB4 and USB4, their programming interfaces and functional attributes are more closely related, with TB4 being a superset of USB4.
completely remove last remnants of ICM support, and assume we're always just using HCM
One thing I found interesting in this exercise is that the PCI IDs are flip flopped between FreeBSD and Linux: the NHI PCI IDs on FreeBSD are the TB PCIB PCI IDs and vice versa.
I'm not entirely sure if titan ridge supports having a HCM (USB4) or if it is ICM-only (linux uses its ICM it would seem), and short of checking if the progif is USB4 (0x40) or just trying it out, I don't know how to be sure a device supports HCM. In any case, D52861 will end up removing support for non-generic USB4 NHIs.
Sat, Feb 28
Fri, Feb 27
Check trans bounds while still unsigned
Thu, Feb 26
casting to enum power_sstate_transition can make uint32_t signed
- move FWRITE check outside switch()
- check trans is in enum power_sstate_transition
- uint32_t for PIOTRANSITION
- check writable for PIOTRANSITION
- style
Wed, Feb 25
I thought about making this a sysctl and am still open to that, but having this as a device node does give us room to expand the interface in the future. No specific plans, but we may e.g. want to be able to report state change events.
Rebase
Tue, Feb 24
haven't done a hugely in-depth review yet. Overall looks pretty good!
Mon, Feb 23
Sat, Feb 21
update names
update HISTORY & names
update history section
Fri, Feb 20
remove LIBRARY
remove LIBRARY
Feb 19 2026
use posix 2024 as standard
use posix 2024 as standard