Broken usb port causing suspend to fail

So a while back I dropped my laptop and it landed right on an occupied USB port. This port now no longer works, and from what I can tell is causing my machine to fail to suspend. How do I go about fixing this?
Journalctl link: http://0x0.st/HF2T.txt
INXI:

System:
  Kernel: 6.7.7-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
    clocksource: hpet avail: acpi_pm
    parameters: BOOT_IMAGE=/boot/vmlinuz-6.7-x86_64
    root=UUID=b9be9256-4c8e-43ae-ab5d-ede8311a152f rw quiet splash
    resume=UUID=bbc9a091-ec83-432b-9d73-7b0d00189f33 udev.log_priority=3
    amd_pstate=passive
  Desktop: KDE Plasma v: 5.27.11 tk: Qt v: N/A wm: kwin_wayland dm: SDDM
    Distro: Manjaro base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 82KT v: IdeaPad 3 14ALC6
    serial: <filter> Chassis: type: 10 v: IdeaPad 3 14ALC6 serial: <filter>
  Mobo: LENOVO model: LNVNB161216 v: SDK0T76465WIN serial: <filter>
    part-nu: LENOVO_MT_82KT_BU_idea_FM_IdeaPad 3 14ALC6
    uuid: 04b3cb81-9017-4323-8e8e-84a93805cc7c UEFI: LENOVO v: GLCN51WW
    date: 09/28/2022
Battery:
  ID-1: BAT0 charge: 34.6 Wh (81.2%) condition: 42.6/45.0 Wh (94.6%)
    power: 16.7 W volts: 11.4 min: 11.1 model: SMP L20M3PF0 type: Li-poly
    serial: <filter> status: discharging cycles: 213
CPU:
  Info: model: AMD Ryzen 5 5500U with Radeon Graphics socket: FP6 bits: 64
    type: MT MCP arch: Zen 2 gen: 3 level: v3 note: check built: 2020-22
    process: TSMC n7 (7nm) family: 0x17 (23) model-id: 0x68 (104) stepping: 1
    microcode: 0x8608103
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB L3: 8 MiB
    desc: 2x4 MiB
  Speed (MHz): avg: 1788 high: 4043 min/max: 400/4056 boost: enabled
    base/boost: 2100/4050 scaling: driver: amd-pstate governor: schedutil
    volts: 1.2 V ext-clock: 100 MHz cores: 1: 4043 2: 4042 3: 1796 4: 1113
    5: 1113 6: 1950 7: 1035 8: 1113 9: 1040 10: 1035 11: 2071 12: 1113
    bogomips: 50322
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: retbleed mitigation: untrained return thunk; SMT enabled with STIBP
    protection
  Type: spec_rstack_overflow mitigation: Safe RET
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines, IBPB: conditional, STIBP:
    always-on, RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds status: Not affected
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: AMD Lucienne vendor: Lenovo driver: amdgpu v: kernel arch: GCN-5
    code: Vega process: GF 14nm built: 2017-20 pcie: gen: 3 speed: 8 GT/s
    lanes: 16 link-max: gen: 4 speed: 16 GT/s ports: active: eDP-1
    empty: HDMI-A-1 bus-ID: 03:00.0 chip-ID: 1002:164c class-ID: 0300
    temp: 48.0 C
  Device-2: Bison Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-3:2 chip-ID: 5986:2137
    class-ID: 0e02
  Display: server: X.Org v: 23.2.4 with: Xwayland v: 23.2.4
    compositor: kwin_wayland driver: X: loaded: amdgpu unloaded: modesetting
    alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :1 screens: 1
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x286mm (20.00x11.26")
    s-diag: 583mm (22.95")
  Monitor-1: eDP-1 model: AU Optronics 0x408d built: 2019 res: 1920x1080
    hz: 60 dpi: 157 gamma: 1.2 size: 310x170mm (12.2x6.69") diag: 355mm (14")
    ratio: 16:9 modes: max: 1920x1080 min: 640x480
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast surfaceless: drv: radeonsi x11: drv: radeonsi
    inactive: gbm,wayland
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.0.2-manjaro1.1
    glx-v: 1.4 direct-render: yes renderer: AMD Radeon Graphics (radeonsi renoir
    LLVM 16.0.6 DRM 3.57 6.7.7-1-MANJARO) device-ID: 1002:164c memory: 1.95 GiB
    unified: no
  API: Vulkan v: 1.3.279 layers: 1 device: 0 type: integrated-gpu name: AMD
    Radeon Graphics (RADV RENOIR) driver: mesa radv v: 24.0.2-manjaro1.1
    device-ID: 1002:164c surfaces: xcb,xlib
Audio:
  Device-1: AMD Renoir Radeon High Definition Audio vendor: Lenovo
    driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16
    link-max: gen: 4 speed: 16 GT/s bus-ID: 03:00.1 chip-ID: 1002:1637
    class-ID: 0403
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: Lenovo driver: N/A
    alternate: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x, snd_pci_acp6x,
    snd_acp_pci, snd_rpl_pci_acp6x, snd_pci_ps, snd_sof_amd_renoir,
    snd_sof_amd_rembrandt, snd_sof_amd_vangogh, snd_sof_amd_acp63 pcie: gen: 3
    speed: 8 GT/s lanes: 16 link-max: gen: 4 speed: 16 GT/s bus-ID: 03:00.5
    chip-ID: 1022:15e2 class-ID: 0480
  Device-3: AMD Family 17h/19h HD Audio vendor: Lenovo driver: snd_hda_intel
    v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 16 link-max: gen: 4
    speed: 16 GT/s bus-ID: 03:00.6 chip-ID: 1022:15e3 class-ID: 0403
  API: ALSA v: k6.7.7-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: PipeWire v: 1.0.3 status: n/a (root, process) with:
    1: pipewire-pulse status: active 2: wireplumber status: active
    3: pipewire-alsa type: plugin 4: pw-jack type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL8822CE 802.11ac PCIe Wireless Network Adapter
    vendor: Lenovo driver: rtw_8822ce v: N/A modules: rtw88_8822ce pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: 2000 bus-ID: 01:00.0 chip-ID: 10ec:c822
    class-ID: 0280
  IF: wlp1s0 state: up mac: <filter>
  IF-ID-1: docker0 state: down mac: <filter>
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Bluetooth:
  Device-1: Realtek Bluetooth Radio driver: btusb v: 0.8 type: USB rev: 1.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-4:3 chip-ID: 0bda:c123
    class-ID: e001 serial: <filter>
  Report: rfkill ID: hci0 rfk-id: 7 state: up address: see --recommends
Drives:
  Local Storage: total: 465.76 GiB used: 294.05 GiB (63.1%)
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Smart Modular Tech.
    model: SHGP31-500GM-2 size: 465.76 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 41061C20 temp: 45.9 C scheme: GPT
  SMART: yes health: PASSED on: 74d 5h cycles: 3,299
    read-units: 9,811,252 [5.02 TB] written-units: 11,721,386 [6.00 TB]
Partition:
  ID-1: / raw-size: 429.03 GiB size: 421.23 GiB (98.18%)
    used: 294.04 GiB (69.8%) fs: ext4 block-size: 4096 B dev: /dev/nvme0n1p2
    maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 312 KiB (0.1%) fs: vfat block-size: 512 B dev: /dev/nvme0n1p1
    maj-min: 259:1
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: partition size: 36.43 GiB used: 0 KiB (0.0%)
    priority: -2 dev: /dev/nvme0n1p3 maj-min: 259:3
Sensors:
  System Temperatures: cpu: 57.5 C mobo: N/A gpu: amdgpu temp: 49.0 C
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 36 GiB note: est. available: 33.12 GiB used: 5.87 GiB (17.7%)
  Processes: 345 Power: uptime: 15m states: freeze,mem,disk suspend: deep
    avail: s2idle wakeups: 0 fails: 4 hibernate: platform avail: shutdown,
    reboot, suspend, test_resume image: 13.24 GiB
    services: org_kde_powerdevil,upowerd Init: systemd v: 255
    default: graphical tool: systemctl
  Packages: 1753 pm: pacman pkgs: 1731 libs: 471 tools: pamac,yay pm: flatpak
    pkgs: 22 Compilers: clang: 16.0.6 gcc: 13.2.1 Shell: Sudo (sudo) v: 1.9.15p5
    default: Bash v: 5.2.26 running-in: yakuake inxi: 3.3.33```

Hi @WangGang,

How did you come to this conclusion? Have you tried a different kernel?

Perhaps - perhaps not - how did you deduce it is in fact the drop causing it?

If broken hardware causes malfunction - there is only one way - fix it.

I would take the system apart and see what the collision broke inside.

Not many users are comfortable doing so and in such case I’d look up a friend, a coworker and if that fails a repair shop.

The drop was quite a while ago, but ever since the incident my laptop has failed to go to sleep, just goes black for a second, hits the login screen (hangs for a couple seconds), and then resumes. I’ve tried different kernels and installed different distros, same problem.

Perhaps - perhaps not - how did you deduce it is in fact the drop causing it?

I might not be interpreting it correctly, but I believe its drop because the port no longer works and journalctl seems to be giving me an error related to USB.

usb usb3: PM: dpm_run_callback(): usb_dev_suspend+0x0/0x20 returns -16
usb usb3: PM: failed to suspend async: error -16
PM: Some devices failed to suspend, or early wake event detected
usb 3-4: reset full-speed USB device number 3 using xhci_hcd

If broken hardware causes malfunction - there is only one way - fix it.
I would take the system apart and see what the collision broke inside.
Not many users are comfortable doing so and in such case I’d look up a friend, a coworker and if that fails a repair shop.

I was hoping there’d be a solution where I could just disable the port somehow? If not I’ll look into a repair shop.

Let’s rather try and find out if this is thee reason and confirm it. Please post the output of:

journalctl --priority=warning..err --no-pager --boot=-1

Where:

  • The --priority=warning..err argument limits the output to warnings and errors only;
  • and the --no-pager formats the output nicely for use here, on the forum;
  • the --boot=-1 argument limits the output to log messages from the previous boot. This can be adjusted to -2 for the boot before that, -3 to the boot before that, and so on and so forth.
journalctl --priority=warning..err --no-pager --boot=-1

Output: http://0x0.st/HF2L.txt

That’s not a fix. That’s merely a workaround. Working around the problem.

Anyway, this might help. To test if it works, if nothing else:

https://askubuntu.com/a/750455

Edit:

Please provide the output of:

systemctl status suspend.target

systemctl status suspend.target

suspend.target - Suspend
     Loaded: loaded (/usr/lib/systemd/system/suspend.target; static)
     Active: inactive (dead)
       Docs: man:systemd.special(7)

systemd[1]: Dependency failed for Suspend.
suspend.target: Job suspend.target/start failed with result 'dependency'.

That should, at least, give you a clue that something else might be up.

Please provide the output of:

journalctl --boot=0 --unit=suspend.target --no-pager

Output:

systemd[1]: Dependency failed for Suspend.
systemd[1]: suspend.target: Job suspend.target/start failed with result 'dependency'.
systemd[1]: Dependency failed for Suspend.
systemd[1]: suspend.target: Job suspend.target/start failed with result 'dependency'.
systemd[1]: Dependency failed for Suspend.
systemd[1]: suspend.target: Job suspend.target/start failed with result 'dependency'.

Relevant looking Journalctl -xe output:

Mar 15 00:09:34 kernel: usb usb3: PM: dpm_run_callback(): usb_dev_suspend+0x0/0x20 returns -16
Mar 15 00:09:34 kernel: usb usb3: PM: failed to suspend async: error -16
Mar 15 00:09:34 kernel: [drm] psp gfx command UNLOAD_TA(0x2) failed and response status is (0x117)
Mar 15 00:09:34 kernel: PM: Some devices failed to suspend, or early wake event detected
Mar 15 00:09:34 kernel: amdgpu 0000:03:00.0: amdgpu: S3 suspend abort case, let's reset ASIC.
Mar 15 00:09:34 kernel: amdgpu 0000:03:00.0: amdgpu: MODE2 reset
...
Mar 15 00:09:45 kernel: usb usb3: PM: dpm_run_callback(): usb_dev_suspend+0x0/0x20 returns -16
Mar 15 00:09:45 kernel: usb usb3: PM: failed to suspend async: error -16
Mar 15 00:09:45 kernel: PM: Some devices failed to suspend, or early wake event detected
Mar 15 00:09:45 kernel: usb 3-4: reset full-speed USB device number 3 using xhci_hcd
Mar 15 00:09:45 kernel: Bluetooth: hci1: command 0xfc61 tx timeout
Mar 15 00:09:45 kernel: Bluetooth: hci1: RTL: Failed to generate devcoredump
Mar 15 00:09:45 kernel: Bluetooth: hci1: RTL: RTL: Read reg16 failed (-110)

OK, on my computer the only dependency for suspend.target is systemd-suspend.service, so I’m presuming it’s the same for you. Please provide the output for:

journalctl --unit=systemd-suspend.service --priority=warning..err --boot=-1

Where:

  • The --priority=warning..err argument limits the output to warnings and errors only;
  • and the --no-pager formats the output nicely for use here, on the forum;
  • the --boot=-1 argument limits the output to log messages from the previous boot. This can be adjusted to -2 for the boot before that, -3 to the boot before that, and so on and so forth; and
  • --unit=systemd-suspend.service limits the output to be only from the suspending part, that has the problem.

journalctl --unit=systemd-suspend.service --priority=warning…err --boot=-1

Mar 14 23:18:34 systemd-sleep[2066]: Failed to put system to sleep. System resumed again: Device or resource busy
Mar 14 23:18:34 systemd[1]: systemd-suspend.service: Failed with result 'exit-code'.
Mar 14 23:18:34 systemd[1]: Failed to start System Suspend.
Mar 14 23:29:43 systemd-sleep[5166]: Failed to put system to sleep. System resumed again: Device or resource busy
Mar 14 23:29:43 systemd[1]: systemd-suspend.service: Failed with result 'exit-code'.
Mar 14 23:29:43 systemd[1]: Failed to start System Suspend.

It’s late here, going to go to bed and take another crack at this tomorrow.

disable usb usb3 hub and you are probably “fixed”

I vaguely remember something like this from when I setup my suspend. So please provide the output of:

systemctl status systemd-suspend.service

Well, it’s early here, so I might not be here when you get back, but enjoy nontheless!

You could blacklist the driver but that would affect all ports.

The following in highly speculative - I have no idea if it - at all - is doable.
If you can unload the driver before shutdown - if it works - you could create a service to execute the removal before shutdown.

To get an idea of drivers loaded you could run

lsmod

On my Lenovo system (ThinkStation) the driver is xhci_pci.

But that would affect everything connectted using USB - including internal devices - e.g. sound and keyboard - so likely not an option.

If you want to test the consequences you can try this

sudo rmmod xhci_pci

Before you do - check your system settings → power or energy saving settings - be sure the press power button is set to poweroff instead of ask.

It will not persist over reboot - so if you loose keyboard - press the power button to shutdown the system.

Another option - less drastic is to check the system’s firmware - look for an option to disable USB ports.