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.
If I had to guess you're experiencing a bug with the firmware of your board or a driver issue. (check for bios and driver updates on the manufacturers page before proceeding)
Somewhere in your bios you should be able to control the USB ports.
Try looking for something along the lines of xHCI handoff and try toggling the options to see if that resolves it.
I am on the latest BIOS for the GPD Win Max 2. Judging off of their email response, I won't keep my hopes up that they will release anything to fix this. There were problems with video out on USB C hubs that they fixed with a BIOS update, but that was much earlier in the handhelds life span. They haven't done any BIOS updates since then.
The hub/docks in question do not have any drivers on the manufacturers website. They are advertised as plug and play. I have been occasionally updating my AMD chipset drivers as they come, but so far the updates have made no difference for this issue.
Ironically, I did have to disable XHCI on one of the ports to fix a issue with the dual SD card reader on this device, reducing it to USB 2.0 speeds. I toggled that setting back to see if it had any effect on the ethernet port, but no dice. I did find a toggle for xHCI handoff enable/disable; toggling it did not seem to have an effect on the ethernet port either.
The other commentor made a good point. It sounds like defective software for the dock. They are thinking if you disable the power management features you might be able to get it to fire up. Does the gigabit adapter show up at all in device manager?
If I boot into Linux first, and then restart to boot Windows, the ethernet adapter will show up in device manager, yes. I am currently using the Falwedi USB hub after booting into Linux first this morning. Under device manager, it is listed as "Realtek USB GbE Family Controller". Ill go ahead and toggle/disable the setting to "Allow the computer to turn off device to save power", but I can't imagine it will make a difference. Without booting Linux first, plugging in the USB hub will recognize all the other ports on it except the ethernet port. I can't tell that anything else is reported differently on plugging it in; just that the ethernet port never shows up.
Are you able to use an additional hub between the USBC port and dock? I'm wondering if that additional nested hub might bypass the issue at hand.
I'm not sure if this answers your question, but I have tried using additional USB ethernet adapters plugged into the dock. They have the same issue; unless its less than a 1Gb interface, they won't show up in Windows without booting Linux first. This applies to anything going through the USB C 3.2 port it seems like.