Why does a specific phone not work when connected to my PC, but only on the rear USB ports?

This is a peculiar issue. I cannot get a Oneplus Nord 2 smartphone to connect over USB, but only for the ports on the back of the PC (on the IO shield that is – I do have a PCI-E card with extra USB 3 A and C ports, and they do work).

I see this in dmesg when plugging into the rear ports

[ 9596.985248] usb usb1-port2: Cannot enable. Maybe the USB cable is bad?
[ 9597.873265] usb usb1-port2: Cannot enable. Maybe the USB cable is bad?
[ 9597.873330] usb usb1-port2: attempt power cycle
[ 9598.824919] usb usb1-port2: Cannot enable. Maybe the USB cable is bad?
[ 9599.713121] usb usb1-port2: Cannot enable. Maybe the USB cable is bad?
[ 9599.713181] usb usb1-port2: unable to enumerate USB device

Things I’ve determined:

  • As we know, this Oneplus phone doesn’t work on the back IO shield ports
  • On the front and PCI-E USB ports, it works fine
  • (Using either USB 2 or USB 3 capable cables produces the error on the problematic ports.)
  • Plugging in any other phone into those ports using a USB A-C cable works though, and this includes a USB 3 phone, and USB 2-only compatible phone.
  • Using any USB 2 device (such as a mouse or USB drive) on those ports works too.
  • Edit: I tried with a USB hub plugged into the rear port, and the phone plugged into the hub, and this works. So, something about the phone itself not playing nice with the PC’s USB controller…?

I don’t know what’s left to rule out. The phone itself seems to be OK, given that I can use it on the PC’s front USB port or a USB hub, and I can use the rear ports to communicate over USB to other smartphones without the need for a hub. I’m using Arch Linux, and the motherboard is an Asus X570-Plus, in case that helps.


Update 1: I tried in Windows and can reproduce the issue – I see the phone model number in the USB devices list in Device Manager on the front port, but on the rear, nothing comes up.

All the affected ports are USB 3 ports, although I don’t have a way to disable USB 3 in BIOS to see if that does anything – for what it’s worth, a USB 2 cable has the same issue, but I’m not sure if the fact it’s a USB 3 controller still has anything to do with it.

The phone itself only supports USB 2 anyway, so using a USB 3 cable should have no difference to a USB 2 anyway.

Kernel version is 6.17.4-arch2-1

Update 2: I’ve borrowed another Nord 2 and I get the exact same issue. I’m now fairly certain there is some incompatibility with the USB controller for those ports, and whatever USB controller is being used in the Nord 2.