I have a couple of X200's, all running coreboot 4.10. The dock works fine there. When I press the undock button (either on the side or with Fn+F9), the system undocks, and when I put the laptop back in the dock, the led goes red again, and the USB ports start working again. The same happens when the system is suspended and resumed.
However, since coreboot 4.11, the re-docking part is completely broken. I can press the undock button(s), which work fine, but when I re-dock the laptop, the led remains green and USB does not work. Also, when I suspend and resume the laptop, the system undocks immediately after resuming from S3, even though no button was pressed and it's still physically docked.
The only way to recover from this is by rebooting.
In coreboot 4.13, this bug is still present. So I decided to bisect the issue, and I found the offending commit:
96ae7a3a2d38b96c1dfee57fda2c2eaab7e9e762 is the first bad commit commit 96ae7a3a2d38b96c1dfee57fda2c2eaab7e9e762 Author: Bill XIE persmule@hardenedlinux.org Date: Wed Oct 16 23:22:10 2019 +0800
mb/lenovo/x200: Add ThinkPad X301 as a variant
It is similar to X200s, with U-series CPU, slightly different gpio setup, no docking support, and no superio chip.
https://review.coreboot.org/c/coreboot/+/36093
Looking at the changes, this seems pretty plausible. I would like to get coreboot 4.14 running properly again with docked X200's, but I'm not sure (yet) what the exact cause of the breakage is.