Problems with USB-C port for laptop

I have a laptop that has a usb-c port capable of power delivery (charging external devices) and sending a display output. The usb-c port does not do anything currently. I have had the port work for charging on EndeavourOS and on Manjaro a while ago. It stopped after I performed an update. (alongside this, my ethernet port also stopped working, but I have tracked that to an issue with the driver being updated and my device needing an older driver).

My goal is to have the usb-c display to a monitor via a usb hub. The hub works for everything on macOS, but on my machine it doesn’t detect anything from the hub. no usb inputs, no ethernet and no video out. I know the problem is not with the hub since my usb-c port on the computer does not work.

I tried lspci -v to try spot thew problem myself, but I’m not too sure what I’m looking for. Here is the output:

00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir Root Complex
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: fast devsel

00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Renoir IOMMU
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: bus master, fast devsel, latency 0, IRQ -2147483648
	Capabilities: <access denied>

00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
	Flags: fast devsel, IOMMU group 0

00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0, IRQ 26, IOMMU group 1
	Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
	I/O behind bridge: 0000f000-0000ffff [size=4K]
	Memory behind bridge: fb000000-fc0fffff [size=17M]
	Prefetchable memory behind bridge: 000000fc00000000-000000fe01ffffff [size=8224M]
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0, IRQ 27, IOMMU group 2
	Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
	I/O behind bridge: 0000e000-0000efff [size=4K]
	Memory behind bridge: fc800000-fc8fffff [size=1M]
	Prefetchable memory behind bridge: [disabled]
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
	Flags: fast devsel, IOMMU group 3

00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0, IRQ 28, IOMMU group 4
	Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
	I/O behind bridge: 00001000-00001fff [size=4K]
	Memory behind bridge: fc700000-fc7fffff [size=1M]
	Prefetchable memory behind bridge: 0000000410000000-00000004101fffff [size=2M]
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0, IRQ 29, IOMMU group 5
	Bus: primary=00, secondary=04, subordinate=04, sec-latency=0
	I/O behind bridge: [disabled]
	Memory behind bridge: fc600000-fc6fffff [size=1M]
	Prefetchable memory behind bridge: [disabled]
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe GPP Bridge (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0, IRQ 30, IOMMU group 6
	Bus: primary=00, secondary=05, subordinate=05, sec-latency=0
	I/O behind bridge: 00002000-00002fff [size=4K]
	Memory behind bridge: f8000000-f81fffff [size=2M]
	Prefetchable memory behind bridge: 0000000410200000-00000004103fffff [size=2M]
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Renoir PCIe Dummy Host Bridge
	Flags: fast devsel, IOMMU group 7

00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Renoir Internal PCIe GPP Bridge to Bus (prog-if 00 [Normal decode])
	Flags: bus master, fast devsel, latency 0, IRQ 31, IOMMU group 7
	Bus: primary=00, secondary=06, subordinate=06, sec-latency=0
	I/O behind bridge: [disabled]
	Memory behind bridge: fc200000-fc5fffff [size=4M]
	Prefetchable memory behind bridge: [disabled]
	Capabilities: <access denied>
	Kernel driver in use: pcieport

00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 51)
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: 66MHz, medium devsel, IOMMU group 8
	Kernel driver in use: piix4_smbus
	Kernel modules: i2c_piix4, sp5100_tco

00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: bus master, 66MHz, medium devsel, latency 0, IOMMU group 8

00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 166a
	Flags: fast devsel, IOMMU group 9

00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 166b
	Flags: fast devsel, IOMMU group 9

00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 166c
	Flags: fast devsel, IOMMU group 9

00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 166d
	Flags: fast devsel, IOMMU group 9

00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 166e
	Flags: fast devsel, IOMMU group 9

00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 166f
	Flags: fast devsel, IOMMU group 9

00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1670
	Flags: fast devsel, IOMMU group 9

00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 1671
	Flags: fast devsel, IOMMU group 9

01:00.0 VGA compatible controller: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile / Max-Q] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Tongfang Hongkong Limited Device 1111
	Physical Slot: 0
	Flags: bus master, fast devsel, latency 0, IRQ 119, IOMMU group 10
	Memory at fb000000 (32-bit, non-prefetchable) [size=16M]
	Memory at fc00000000 (64-bit, prefetchable) [size=8G]
	Memory at fe00000000 (64-bit, prefetchable) [size=32M]
	I/O ports at f000 [size=128]
	Expansion ROM at fc000000 [virtual] [disabled] [size=512K]
	Capabilities: <access denied>
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia

01:00.1 Audio device: NVIDIA Corporation Device 228e (rev a1)
	Subsystem: Tongfang Hongkong Limited Device 1111
	Physical Slot: 0
	Flags: bus master, fast devsel, latency 0, IRQ 116, IOMMU group 10
	Memory at fc080000 (32-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: bus master, fast devsel, latency 0, IRQ 64, IOMMU group 11
	I/O ports at e000 [size=256]
	Memory at fc800000 (64-bit, non-prefetchable) [size=64K]
	Memory at fc810000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: r8125
	Kernel modules: r8169, r8125

03:00.0 Non-Volatile memory controller: Phison Electronics Corporation E12 NVMe Controller (rev 01) (prog-if 02 [NVM Express])
	Subsystem: Phison Electronics Corporation E12 NVMe Controller
	Physical Slot: 0-1
	Flags: bus master, fast devsel, latency 0, IRQ 32, NUMA node 0, IOMMU group 12
	Memory at fc700000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: nvme

04:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
	Subsystem: Intel Corporation Wi-Fi 6 AX200NGW
	Flags: bus master, fast devsel, latency 0, IRQ 99, IOMMU group 13
	Memory at fc600000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: <access denied>
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

06:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Zeppelin/Raven/Raven2 PCIe Dummy Function (rev c5)
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: fast devsel, IOMMU group 7
	Capabilities: <access denied>

06:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: bus master, fast devsel, latency 0, IRQ 32, IOMMU group 7
	Memory at fc400000 (32-bit, non-prefetchable) [size=1M]
	Memory at fc548000 (32-bit, non-prefetchable) [size=8K]
	Capabilities: <access denied>
	Kernel driver in use: ccp
	Kernel modules: ccp

06:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1 (prog-if 30 [XHCI])
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: bus master, fast devsel, latency 0, IRQ 42, IOMMU group 7
	Memory at fc300000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: <access denied>
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci

06:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1 (prog-if 30 [XHCI])
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: bus master, fast devsel, latency 0, IRQ 51, IOMMU group 7
	Memory at fc200000 (64-bit, non-prefetchable) [size=1M]
	Capabilities: <access denied>
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci

06:00.5 Multimedia controller: Advanced Micro Devices, Inc. [AMD] Raven/Raven2/FireFlight/Renoir Audio Processor (rev 01)
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: fast devsel, IRQ 97, IOMMU group 7
	Memory at fc500000 (32-bit, non-prefetchable) [size=256K]
	Capabilities: <access denied>
	Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x

06:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller
	DeviceName: HD Audio Controller
	Subsystem: Tongfang Hongkong Limited Device 1111
	Flags: bus master, fast devsel, latency 0, IRQ 117, IOMMU group 7
	Memory at fc540000 (32-bit, non-prefetchable) [size=32K]
	Capabilities: <access denied>
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel

My questions are:

  1. Am I approaching this problem correctly by assuming it is a driver issue based on the problem appearing after a system update?
  2. Is there anything else I could look at or test to try narrow down the problem?

I apologize if the structure of this is a little bit all over the place, any tips or extra info I could add would be greatly appreciated. Thanks in advance.

EDIT: added my output for lspci -v

Do you run on nvidia?
could you try downgrading to a previous version to see if it works again.

yes I have a nvidia card and am on the 495? driver. I will try downgrading but I had this problem with the 470 driver also. Will downgrade now and update.

I did find that some may have had problems regarding nvidia drivers and usbc port.
Do you use tlp on your laptop? it appears to possibly cause problems as well.

I am not sure what tlp is. I downgraded my nvidia driver, but the port is still not functional at all. Not charging an external device connected directly to the port and not detecting usb input through the hub.

https://wiki.archlinux.org/title/TLP

do you perhaps use any other power saving function?
certain power saving apps/functions might cause some issues with specifically usb charging.

Ok I do have tlp installed and haven’t done anything for powersaving on my own. Should I uninstall tlp or deactivate the service and then test my port?

A good description of your issue! So no need to apologize :wink:

As @AmandaONeill mentioned TLP can cause such issues in some cases where it powers off devices wrongly. TLP is enabled as a service per default on EndeavourOS to prevent systems from overheating and to provide minimal powersaving, but it needs to be configured or is not 100% useful in all cases.

You can test by simply disable the TLP service:

sudo systemctl disable tlp
reboot system and see if the USB-C port is working again.
If it do not change anything reanable it if you are on a notebook system:
sudo systemctl --enable --now tlp
If you want to have some Powersaving options working and configured there are also GUI applications to use:

  • tlpui-gitAUR is a GTK user interface for TLP written in Python.
  • slimbookbatteryAUR is a different GTK interface that works with additional drivers like AMD and NVIDIA.

Other than this… if the issue with the USB-C port is from updating it could be an issue with latest kernel just updated to 5.15.
To check if this is the case go to install the LTS (Long Time Support) Kernel in addition and see if booting on it solve your issue:

sudo pacman -Sy linux-lts linux-lts-headers
Depending on what Nvidia driver package in use you will need to make sure to install nvidia-lts package if nvidia package is used if nvidia-dkms package is used you only need to make sure kernel it does rebuild the dkms modules against all installed kernels, check the output after installed LTS kernel if it shows dkms procedure…

(1/1) Remove upgraded DKMS modules
==> dkms remove --no-depmod nvidia
***
1/8) Arming ConditionNeedsUpdate...
(2/8) Updating module dependencies...
(3/8) Install DKMS modules
==> dkms install --no-depmod nvidia
3 Likes

Thank you for the detailed response!

I just disabled TLP and rebooted, the port still is not working. I haven’t upgraded my system to the 5.15 kernel yet - was planning to do that later today. Should I still install and try using the lts kernel to see if anything changes?

Yeah i would do so, I personally would recommend having the LTS kernel installed afterwards in general, Just in case the issue is solved and something else may cause problems in the future.

1 Like

partly updates are not supported by mothership arch and so on EndeavourOS.
So also updating to latest kernel alone can solve your issue.

  1. do a full system update yay
  2. reboot, check it usb-c is working, if not → install lts kernel in additional packages.
    → reboot lts kernel is default boot option so will be used to boot.
1 Like

Awesome. Will do that and report back after going through everything. Thanks a bunch for the assistance!

Okay I’ve done a full system update, downloaded the lts kernel, booted into the new 5.15 kernel (usb-c doesn’t work). I then booted into the lts kernel and still nothing.

Something interesting came up during the update tho; while it was running some build hooks, a couple warnings came up:

==> Starting build: 5.15.2-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: xhci_pci
  -> Running build hook: [keyboard]
  -> Running build hook: [keymap]
loadkeys: Unable to open file: za: No such file or directory
  -> Running build hook: [resume]
  -> Running build hook: [filesystems]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful

My main concern is the missing firmware. Could that solve my problem? I do recognise the xhci_pci module since it was in use (as seen in my lspci above).

That’s “normal” and shouldn’t be of any concern, as far as I know. You can install the firmware if you want, to make the warnings disappear and test if it solves anything.

1 Like

First of not all usb-c ports are able to forward display signals. They have to support it. A lot of docks have issues also. Have you checked dmeg both device unplugged and plugging it in. You need to use other commands such as lsusb, lspci,lspci -v, lspci -vv, lspci -tv, lsusb -t. This is a deep dive into hardware and identifying the USB-c, what module is supposed to make it work, what is the hardware? What capabilities does it have and trying to figure out why it’s not working. Is the usb-c port working at all for normal usb functions or it’s just completely dead?

All i can say is i wish there was an easy way to help but i don’t think it’s simple solution until you can identify the issue causing it. :man_shrugging:

I wish you luck and maybe you’ll find another piece of the puzzle that helps decipher the root cause.

2 Likes

I’ll do all of the above, what specifically do I need to look for in those outputs (especially dmesg because I have no idea how to read the output or what I’m looking for), I am 100% willing to do a deepdive into the hardware and determine what the problem is. In the user manual for my laptop it says " "USB Type C / DP / USB Power Delivery " so I’m assuming that means it has display functionality.

1 Like

It look like that’s what it’s saying. Display Port and USB power delivery i would assume for use as a charging port. I’m no expert I’m just saying that it’s not easy to figure some of these hardware issues out. So is it port just completely dead? I guess i would try to think back what date it happened that you did the updates. Look at your pacman log in /varlog/pacman.log and see what all the updates were and try to see if you can narrow it down. You can use downgrade and downgrade an updated package if it’s still in the cache. Look for the obvious as well as the not so obvious as it may be another update that happens to affect the hardware and knock out this particular port.

Edit: If it’s not the kernel then it has to be something else.

2 Likes

@SeaCyber
Have you checked usb auto suspend? Maybe add this to the default grub command line and update grub. This will turn it off to test.

usbcore.autosuspend=0

Edit: https://wiki.archlinux.org/title/Power_management

1 Like