feat: Add Nobara USB Polling Rate Patch (#964)

Co-authored-by: badlydrawnface <bdface@proton.me>
This commit is contained in:
Kyle Gospodnetich 2024-04-10 00:53:36 -04:00 committed by GitHub
parent f5f0334242
commit f349a396da
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 130 additions and 0 deletions

View File

@ -0,0 +1,29 @@
#!/bin/bash
set -m
# Gather device poll rate settings from /etc/custom-device-pollrates/custom-device-pollrates.conf
DEVICES=$(grep -v '^\s*$\|^\s*\#' /etc/custom-device-pollrates/custom-device-pollrates.conf | paste -sd, -)
# Set new polling rate for devices
echo "$DEVICES" | sudo tee /sys/module/usbcore/parameters/interrupt_interval_override > /dev/null
# Reload all USB devices
for xhci in /sys/bus/pci/drivers/?hci_hcd ; do
if ! cd $xhci ; then
echo Failed to change directory to $xhci
exit 1
fi
echo Resetting devices from $xhci...
for i in ????:??:??.? ; do
echo -n "$i" > unbind
echo -n "$i" > bind
done
sleep 1
done

View File

@ -0,0 +1,25 @@
# Format:
# vendorid:deviceid:rate
#
# Polling Rates:
# 1=1000Hz,2=500Hz,4=250Hz,8=125Hz
#
# Ex (PS5 DualSense, 1000Mhz polling rate):
# 054c:0ce6:1
#
# One entry per line
#
#
# To allow these devices to have custom
# pollrates, uncomment the device or alternatively
# add a new device configuration line, then restart
# the service with:
#
# sudo systemctl restart custom-device-pollrates.service
# -------------SONY-------------
# DS4
#054c:09cc:1
# DS5
#054c:0ce6:1
# -------------SONY-------------

View File

@ -0,0 +1 @@
enable custom-device-pollrates.service

View File

@ -0,0 +1,10 @@
[Unit]
Description=Set custom polling rates for specific devices
[Service]
Type=simple
ExecStart=/usr/bin/bash /usr/bin/custom-device-pollrates.sh
[Install]
WantedBy=multi-user.target

View File

@ -0,0 +1,29 @@
#!/bin/bash
set -m
# Gather device poll rate settings from /etc/custom-device-pollrates/custom-device-pollrates.conf
DEVICES=$(grep -v '^\s*$\|^\s*\#' /etc/custom-device-pollrates/custom-device-pollrates.conf | paste -sd, -)
# Set new polling rate for devices
echo "$DEVICES" | sudo tee /sys/module/usbcore/parameters/interrupt_interval_override > /dev/null
# Reload all USB devices
for xhci in /sys/bus/pci/drivers/?hci_hcd ; do
if ! cd $xhci ; then
echo Failed to change directory to $xhci
exit 1
fi
echo Resetting devices from $xhci...
for i in ????:??:??.? ; do
echo -n "$i" > unbind
echo -n "$i" > bind
done
sleep 1
done

View File

@ -0,0 +1,25 @@
# Format:
# vendorid:deviceid:rate
#
# Polling Rates:
# 1=1000Hz,2=500Hz,4=250Hz,8=125Hz
#
# Ex (PS5 DualSense, 1000Mhz polling rate):
# 054c:0ce6:1
#
# One entry per line
#
#
# To allow these devices to have custom
# pollrates, uncomment the device or alternatively
# add a new device configuration line, then restart
# the service with:
#
# sudo systemctl restart custom-device-pollrates.service
# -------------SONY-------------
# DS4
#054c:09cc:1
# DS5
#054c:0ce6:1
# -------------SONY-------------

View File

@ -0,0 +1 @@
enable custom-device-pollrates.service

View File

@ -0,0 +1,10 @@
[Unit]
Description=Set custom polling rates for specific devices
[Service]
Type=simple
ExecStart=/usr/bin/bash /usr/bin/custom-device-pollrates.sh
[Install]
WantedBy=multi-user.target