jellyfin: fix Arc A380 VAAPI transcode (ASPM power gating)
Some checks failed
Build and Deploy / deploy (push) Failing after 1m16s

Arc A380 GPU (07:00.0) becomes unreachable (MMIO returns 0xFFFFFFFF)
when PCIe ASPM powersupersave puts it into L1.1/L1.2 substates.
Both i915 and xe drivers hit the same hardware failure.

Fix: disable runtime PM for the GPU in power-tune, run after powertop
so the override sticks. Use i915 driver (xe has iHD buffer mapping
failures on this GPU/kernel 6.12 combination).
This commit is contained in:
2026-04-07 18:17:52 -04:00
parent b4f62523d9
commit da62ed557c
2 changed files with 19 additions and 11 deletions

View File

@@ -65,10 +65,14 @@
# ASPM powersupersave: deepest PCIe link power states (L1.1/L1.2). The
# pcie_aspm=force boot param enables ASPM, but the runtime policy defaults
# to "default" which only uses L0s. powersupersave adds L1 substates for
# all downstream devices (NVMe, AHCI, NIC).
# all downstream devices (NVMe, AHCI, NIC). The Intel Arc A380 GPU is
# excluded -- it hangs on L1 substate re-entry (MMIO returns 0xFFFFFFFF).
systemd.services.power-tune = {
description = "Apply power-saving sysfs knobs (EPP, ASPM policy)";
after = [ "multi-user.target" ];
after = [
"multi-user.target"
"powertop.service"
];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
@@ -85,6 +89,13 @@
# PCIe ASPM policy
aspm=/sys/module/pcie_aspm/parameters/policy
[ -f "$aspm" ] && echo powersupersave > "$aspm"
# Intel Arc A380 (07:00.0) hangs when PCIe link enters L1
# substates or runtime PM suspends it. Force the device to stay
# active. This runs after powertop --auto-tune (which sets
# power/control=auto on every device) so the override sticks.
gpu=/sys/bus/pci/devices/0000:07:00.0/power/control
[ -f "$gpu" ] && echo on > "$gpu"
'';
}
);