From 03c29745e1a35a07c4a3ce83ff7ade9367bb7dc6 Mon Sep 17 00:00:00 2001
From: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
Date: Thu, 9 Mar 2023 03:27:30 +0100
Subject: [PATCH] defaults: librem5-pm: Enable NO_SUSPEND quirk and adjust PM
 properties

Set autosuspend delay to 500ms to improve battery life and disable
persist, since we don't gain anything from it as QMI state gets reset
with reenumeration.
---
 debian/librem5-base-defaults.librem5-pm.udev | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/debian/librem5-base-defaults.librem5-pm.udev b/debian/librem5-base-defaults.librem5-pm.udev
index cdbf94c..cad668e 100644
--- a/debian/librem5-base-defaults.librem5-pm.udev
+++ b/debian/librem5-base-defaults.librem5-pm.udev
@@ -8,21 +8,28 @@ DEVPATH=="/devices/platform/soc@0/38100000.usb", TEST=="power/control", ATTR{pow
 
 ### Enable power management for internal USB devices:
 
+SUBSYSTEM=="usb", ENV{ID_PATH}=="platform-xhci-hcd.4.auto-usb-0:0:1.0", ATTR{usb1-port1/quirks}="10000000"
+SUBSYSTEM=="usb", ENV{ID_PATH}=="platform-xhci-hcd.4.auto-usb-0:1:1.0", ATTR{1-1-port2/quirks}="10000000", ATTR{1-1-port3/power/pm_qos_no_power_off}="0"
+
 # Broadmobi BM818
 SUBSYSTEM=="usb", ATTR{idVendor}=="2020", ATTR{idProduct}=="2060", TEST=="power/control", ATTR{power/control}="auto"
-SUBSYSTEM=="usb", ATTR{idVendor}=="2020", ATTR{idProduct}=="2060", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="2000"
+SUBSYSTEM=="usb", ATTR{idVendor}=="2020", ATTR{idProduct}=="2060", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="500"
+SUBSYSTEM=="usb", ATTR{idVendor}=="2020", ATTR{idProduct}=="2060", TEST=="power/persist", ATTR{power/persist}="0"
 
 # Cinterion PLS8
 SUBSYSTEM=="usb", ATTR{idVendor}=="1e2d", ATTR{idProduct}=="0061", TEST=="power/control", ATTR{power/control}="auto"
-SUBSYSTEM=="usb", ATTR{idVendor}=="1e2d", ATTR{idProduct}=="0061", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="2000"
+SUBSYSTEM=="usb", ATTR{idVendor}=="1e2d", ATTR{idProduct}=="0061", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="500"
+SUBSYSTEM=="usb", ATTR{idVendor}=="1e2d", ATTR{idProduct}=="0061", TEST=="power/persist", ATTR{power/persist}="0"
 
 # Sierra Wireless EM7565
 SUBSYSTEM=="usb", ATTR{idVendor}=="1199", ATTR{idProduct}=="9091", TEST=="power/control", ATTR{power/control}="auto"
-SUBSYSTEM=="usb", ATTR{idVendor}=="1199", ATTR{idProduct}=="9091", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="2000"
+SUBSYSTEM=="usb", ATTR{idVendor}=="1199", ATTR{idProduct}=="9091", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="500"
+SUBSYSTEM=="usb", ATTR{idVendor}=="1199", ATTR{idProduct}=="9091", TEST=="power/persist", ATTR{power/persist}="0"
 
 # SIMCom SIM7912G
 SUBSYSTEM=="usb", ATTR{idVendor}=="1e0e", ATTR{idProduct}=="9001", TEST=="power/control", ATTR{power/control}="auto"
-SUBSYSTEM=="usb", ATTR{idVendor}=="1e0e", ATTR{idProduct}=="9001", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="2000"
+SUBSYSTEM=="usb", ATTR{idVendor}=="1e0e", ATTR{idProduct}=="9001", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="500"
+SUBSYSTEM=="usb", ATTR{idVendor}=="1e0e", ATTR{idProduct}=="9001", TEST=="power/persist", ATTR{power/persist}="0"
 
 # Microchip USB2642
 SUBSYSTEM=="usb", ATTR{idVendor}=="0424", ATTR{idProduct}=="2640", TEST=="power/control", ATTR{power/control}="auto"
@@ -31,8 +38,9 @@ SUBSYSTEM=="usb", ATTR{idVendor}=="0424", ATTR{idProduct}=="2640", TEST=="power/
 # SD card reader
 # enable runtime pm
 SUBSYSTEM=="module", KERNEL=="block", TEST=="parameters/events_dfl_poll_msecs", ATTR{parameters/events_dfl_poll_msecs}="0"
+
 SUBSYSTEM=="scsi", DRIVER=="sd", TEST=="power/control", ATTR{power/control}="auto"
-SUBSYSTEM=="scsi", DRIVER=="sd", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="2000"
+SUBSYSTEM=="scsi", DRIVER=="sd", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="500"
 
 SUBSYSTEM=="usb", ATTR{idVendor}=="0424", ATTR{idProduct}=="4041", TEST=="power/control", ATTR{power/control}="auto"
 SUBSYSTEM=="usb", ATTR{idVendor}=="0424", ATTR{idProduct}=="4041", TEST=="power/autosuspend_delay_ms", ATTR{power/autosuspend_delay_ms}="0"
-- 
GitLab