mirror of
https://github.com/ps5-linux/ps5-linux-patches.git
synced 2026-07-15 21:42:27 +00:00
kernel-7.0.10-e00c8a7
The PS5 GbE NIC has no INTx pin and its MSI sometimes never fires after a cold boot. The driver already works around that with a 1 Hz link-poll watchdog that kicks NAPI by hand. But gbe_poll() re-checks GBE_REG_ISR after completing NAPI and reschedules itself whenever a GBE_IER_MASK cause is still latched, without ever acknowledging (W1C) the ISR -- only the hardware handler gbe_isr() does. When the MSI is dead gbe_isr() never runs, so the latched cause (e.g. RX_DONE) is never cleared, the re-check stays true forever, and NAPI reschedules itself ~30k times/s, pinning ksoftirqd on that CPU at 100%. Acknowledge the pending causes before re-kicking so a stale, undelivered cause can no longer spin NAPI. While the MSI is dead also poll the rings every GBE_POLL_FALLBACK_MS (10 ms) instead of once per second, so interactive RX latency drops from ~1 s to a few ms; fall back to HZ as soon as real IRQs start arriving.
ps5-linux-patches
Compilation
git clone https://github.com/ps5-linux/ps5-linux-patches
git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
cd linux
git checkout "tags/v$(grep -m1 "^# Linux/" ../ps5-linux-patches/.config | awk '{print $3}')"
git apply ../ps5-linux-patches/linux.patch
cp ../ps5-linux-patches/.config .config
make -j$(nproc)
Installation
In the same linux folder after compilation, do:
sudo make modules_install
sudo make install
TODO
- amdgpu smu driver to show correct gpu frequency and temperature
- xhci driver adjustment for 0x104d:0x9108 to enable bluetooth
- hdmi converter improvments: hdr, rgb range, 120hz
Bugs
- screen save does not work properly
- hdmi audio output does not work on some monitors
- hdmi 1440p and 2160p video output does not work on some monitors
Description
Languages
Diff
100%