Thanks, that helped understanding what's going on there. I guess the problem is the upstream commit 87d0e2f41b8cc2018499be4e8003fa8c09b6f2fb usb: typec: ucsi: add a common function ucsi_unregister_connectors() This commit looks as if it were a harmless cleanup, but this failed in a subtle way. Namely, in the error scenario, the driver gets an error at ucsi_register_altmodes(), and goes to the error handling to release the resources. Through this refactoring, the release part was unified to a funciton ucsi_unregister_connectors(). And there, it has a NULL check of con->wq, and it bails out the loop if it's NULL. Meanwhile, ucsi_register_port() itself still calls destroy_workqueue() and clear con->wq at its error path. This ended up in the leftover power supply device with the uninitialized / cleared device. Now I'm building yet another kernel with the revert of the commit above in OBS home:tiwai:bsc1202386-2 repo. The test kernel will appear at http://download.opensuse.org/repositories/home:/tiwai:/bsc1202386-2/standard/ Please give it a try later.