How to fix errors in `dmesg -l err`?

# dmesg -l err
[    0.625637] pci 0000:00:00.2: AMD-Vi: Unable to read/write to IOMMU perf counter.
[    2.010716] snd_pci_acp3x 0000:05:00.5: Invalid ACP audio mode : 0
[    2.571782] acp_pdm_mach acp_pdm_mach.0: snd_soc_register_card(acp) failed: -517
[    2.620988] acp_pdm_mach acp_pdm_mach.0: snd_soc_register_card(acp) failed: -517
[    3.070849] [drm:dm_helpers_dp_write_dpcd [amdgpu]] *ERROR* Failed to find connector for link!
  • 2 ~ 4 are about sound. However sound works well, safe to ignore them?
  • 1 & 5 are about AMD.
    Without nvidia-xconfig, the laptop works well, the only problem is the external monitor doesn’t display anything.
    With nvidia-xconfig, the external monitor works, but the laptop’s monitor not work (black with backlight on) and reboot / wakeup failed.

Any clue?

After edit /etc/default/grub

GRUB_CMDLINE_LINUX="iommu=soft"

and grub-mkconfig ..., less errors

# dmesg -l err
[    1.591067] snd_pci_acp3x 0000:05:00.5: Invalid ACP audio mode : 0
[    2.185827] acp_pdm_mach acp_pdm_mach.0: snd_soc_register_card(acp) failed: -517
[    2.185889] acp_pdm_mach acp_pdm_mach.0: snd_soc_register_card(acp) failed: -517
[    2.745247] [drm:dm_helpers_dp_write_dpcd [amdgpu]] *ERROR* Failed to find connector for link!

Now rebooting ok, but wakeup form suspension failed

# dmesg -l err
[    1.614278] snd_pci_acp3x 0000:05:00.5: Invalid ACP audio mode : 0
[    2.278082] acp_pdm_mach acp_pdm_mach.0: snd_soc_register_card(acp) failed: -517
[    2.278249] acp_pdm_mach acp_pdm_mach.0: snd_soc_register_card(acp) failed: -517
[    2.736211] [drm:dm_helpers_dp_write_dpcd [amdgpu]] *ERROR* Failed to find connector for link!
[    6.745442] i2c_hid i2c-MSFT0001:00: failed to reset device.
[    8.734229] Bluetooth: hci0: Reading Intel version information failed (-16)
[    8.734232] Bluetooth: hci0: Intel Read version failed (-16)
[   12.932097] i2c_hid i2c-MSFT0001:00: failed to reset device.
[   19.118723] i2c_hid i2c-MSFT0001:00: failed to reset device.
[   25.305454] i2c_hid i2c-MSFT0001:00: failed to reset device.
[   26.318790] i2c_hid i2c-MSFT0001:00: can't add hid device: -61

Hareware incompatibility is not easy anyway.
After some searches, the people who got the same laptop tried to edit the source code of drivers to solve the problem. It’s too hard.
BTW, I prefer clang, but wxgtk3 in pacman repo got ABI incompatibility problem that leads to crash while using valgrind to do memcheck.
I’m going to use Windows on this laptop, and use Manjaro on another old laptop.