To diagnose if USB problem is software, I recommend this:
1. Run linux, live-usb will suffice. I recommend debian or ubuntu.
2. run terminal command
to list all live USB devices
example output:
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 1130:f211 Tenx Technology, Inc. TP6911 Audio Headset
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
3. run terminal command
to display kernel log messages in real time; at this point connect your working USB device to USB ports of your PC and look at kernel log messages. If USB port is working, you will see output like this:
[Dec27 17:33] usb 3-1: new full-speed USB device number 2 using ohci-platform
[ +0.231052] usb 3-1: New USB device found, idVendor=1130, idProduct=f211, bcdDevice= 5.10
[ +0.000018] usb 3-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ +0.000011] usb 3-1: Product: USB AUDIO
[ +0.009990] input: USB AUDIO as /devices/platform/ff5d0000.usb/usb3/3-1/3-1:1.3/0003:1130:F211.0001/input/input3
[ +0.060824] hid-generic 0003:1130:F211.0001: input,hidraw0: USB HID v1.10 Device [USB AUDIO ] on usb-ff5d0000.usb-1/input3
[ +0.005193] input: USB AUDIO as /devices/platform/ff5d0000.usb/usb3/3-1/3-1:1.4/0003:1130:F211.0002/input/input4
[ +0.057555] hid-generic 0003:1130:F211.0002: input,hidraw1: USB HID v1.10 Device [USB AUDIO ] on usb-ff5d0000.usb-1/input4
[ +0.108495] usb 3-1: usbmixer: volume control quirk for Tenx TP6911 Audio Headset
[ +0.000025] usb 3-1: usbmixer: volume control quirk for Tenx TP6911 Audio Headset
[ +0.000733] usbcore: registered new interface driver snd-usb-audio
ctrl-c to exit
If you had zero output on some ports, then problem is in hardware.