# Suspend to RAM seems to be broken on this machine
.*suspend.*

# Skip driver specific tests
^msm.*
nouveau_.*
^panfrost.*
^v3d.*
^vc4.*
^vmwgfx*

# Skip intel specific tests
gem_.*
i915_.*
xe_.*
tools_test.*
kms_dp_link_training.*

# Currently fails and causes coverage loss for other tests
# since core_getversion also fails.
amdgpu/amd_module_load@reload
core_hotunplug.*

# GPU reset seen and it hangs the machine
amdgpu/amd_deadlock@amdgpu-deadlock-sdma
amdgpu/amd_deadlock@amdgpu-gfx-illegal-reg-access
amdgpu/amd_dispatch@amdgpu-reset-test-gfx-with-IP-GFX-and-COMPUTE

# Hangs the machine and timeout occurs
amdgpu/amd_pci_unplug@amdgpu_hotunplug_simple
amdgpu/amd_pci_unplug@amdgpu_hotunplug_with_cs
amdgpu/amd_pci_unplug@amdgpu_hotunplug_with_exported_bo
amdgpu/amd_pci_unplug@amdgpu_hotunplug_with_exported_fence
amdgpu/amd_vrr_range@freesync-parsing
device_reset.*

# IGT issue. is_joiner_mode() should return false for non-Intel hardware.
# https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/162
kms_display_modes@extended-mode-basic
kms_display_modes@mst-extended-mode-negative
