I’m poking around in the kernel source code a bit.
This is where the GET_CABLE_PROPERTY failed error is generated.
I added some debug lines to see if maybe it was failing once and then retrying and succeeding, but it seems it just tries ucsi_register_cable() once and then gives up. I would guess the whole init process is a one-shot thing.
Interestingly, this ucsi_register_cable() is called by ucsi_check_cable here that deals with cable identity and alt modes. One thing I see mentioned is PD (something that Framework struggles with), so that could be why they’re finally asking me about this in my support ticket in that thread.
I’d like to understand more about this interface and what it accomplishes.
I found this slide deck that gives me the gist online.
What would be nice is if I could find out what in the framework 13 ucsi_run_command() was communicating with. I guess it’s something like CPU → ??? → USB-C Device plugged in.