First off, if there is a better place or forum to ask this, I will take suggestions. I haven't gone to any Linux forums because most of the ones I looked at did not want to support anything specifically Windows related, and this is primarily an issue in Windows.
I am using a GPD Win Max 2, a handheld laptop, with a docking station + external graphics card setup. The GPD has 2 USB C ports, one 3.2 and one 4.0. The 4.0 is used by the external graphics card, while the 3.2 is used by the dock. The dock has a 1Gb ethernet port on it, but it does not work in Windows 10 under normal use. All the other ports on the dock are recognized, but the ethernet port never shows up in device manager. But if I boot into Linux and then restart back into Windows, the ethernet port will work then. I don't even have to have the USB dock connected while running Linux. After a hard power cycle and plugging the dock within 5-10 minutes of starting, the ethernet port will be working in Windows.
Other observations and information: -I have a 100Mb USB A ethernet adapter that works in Windows when connected to the dock. I have also tested a 1Gb USB A adapter, and that did not work. It seems 1Gb or higher does not get recognized without going through Linux first. -The ethernet port does work if I use the dock on the 4.0 port instead, but this isn't viable in my use case. I would have assumed it was a limitation of USB C 3.2 until... -I was distro hopping when I discovered this; I had originally written off the ethernet port until I started trying out Linux. This behavior has happened in Pop OS, Garuda, and Fedora. I have not tested to see if this issue exists in Windows 11, nor do I care to. -I already tried contacting GPD's support email about it. They were less than helpful. Left it at "compatibility issue" and would not explain further. I highly recommend not buying any GPD products. This is not the first time I have had hardware issues that went unresolved with them.
Frankly, I would love just to hear an explanation for why this workaround works. I think I would have been a lot less frustrated if it really was just a "compatibility issue" and there was nothing to do besides buy new hardware. The fact that it runs without issue in Linux gives me hope that its something that can be resolved in Windows.
Another comment told me to run lsusb -v and the ethernet ports showed up there. Would lsusb -t provide something more relevant? Also, to be clear, the docks work fine in Linux. I am concerned about the ethernet not showing up in Windows without booting Linux first.