TLP’s default settings are carefully chosen to avoid power saving to interfere with normal laptop operation.
However kernel drivers do not implement power saving perfectly for all existing hardware – possibly leading to:
- malfunctioning devices,
- system freezes,
- suspend/resume problems,
- system startup/shutdown/reboot problems
and the like.
TLP is not able to make kernel issues disappear but there is (almost) always a workaround by tweaking TLP’s Settings.
This document teaches how to isolate the causing device or power saving feature and disable it.
Step 1: Update your system¶
Invoke your system’s package manager and update all packages including the Linux kernel. Reboot.
Linux Mint: make sure kernel and X updates are enabled in the update manager.
Step 2: Check the FAQ¶
Frequently Asked Questions contains many ready-to-use solutions for common problems with TLP. Carefully check it for your symptoms.
Step 3: Disable TLP temporarily¶
To determine if TLP is the source of your problem, disable TLP via Operation settings:
Then reboot the system and check if your symptom disappeared.
In case of sporadic symptoms be sure to allow for enough testing time to reliably reproduce the problem!
If your problem is gone now, re-enable TLP
and proceed to Step 4: Determine affected power sources.
Else your problem is not caused by TLP and you should seek help in an appropriate internet forum or file a bug report against your Linux distribution.
Step 4: Determine affected power sources¶
Many of TLP’s power saving features have different settings depending on the actual power source, e.g.:
- AC – setting named FEATURE_ON_AC
- Battery – setting named FEATURE_ON_BAT
Examine your system if the symptom occurs on AC or battery or both. Use the result when disabling a power saving feature below.
When a setting is unconfigured (i.e. has a leading #), pay attention to the corresponding Default: line.
Proceed with the next step.
Step 5: Is the causing device already known?¶
When a symptom is specific enough to blame a particular device, start with disabling associated feature(s) for the power source(s) identified in Step 4: Determine affected power sources.
For functional device categories, e.g.
Bus oriented devices, e.g.
When unsure if a device is PCIe or USB examine the output of tlp-stat -e -u. If you don’t know the causing device or your problem isn’t solved by now, proceed to the next step.
Step 6: Isolate the causing device¶
This step applies the following strategy to isolate a bus oriented device:
- Disable the feature completely
- Blacklist devices one by one
- Blacklist devices by driver
Make sure to reboot the computer after every configuration change for this step!
6.1 PCIe devices¶
Disable Runtime Power Management completely
Change both related config lines:
When the problem disappears, uncomment above lines and continue with the next section. Otherwise the cause is not a PCIe device – proceed to 6.2 USB devices.
Blacklist single devices
Enter every PCIe device address into :ref:set-runtimepm-blacklist` – but only one device at a time!
As soon as the problem disappears, you have identified the causing PCIe device and are finished. Otherwise the cause is not a PCIe device – proceed to 6.2 USB devices.
As an alternative to device blacklisting, you may blacklist all devices attached to a particular driver by means of RUNTIME_PM_DRIVER_BLACKLIST.
If the problem isn’t solved by now, proceed to 6.2 USB devices.
6.2 USB devices¶
Disable USB autosuspend completely
Disable the feature as follows (refer to USB_AUTOSUSPEND):
When the problem disappears, reenable the feature and continue with the next section. Otherwise the causing device cannot be identified – proceed to Step 7: Upgrade kernel or firmware.
Blacklist single devices
Enter every USB device ID into :ref:set-usb-blacklist` – but only one device at a time!
As soon as the problem disappears, you have identified the causing USB device and are finished. Otherwise an causing device cannot be found – proceed to the next section.
Step 7: Upgrade kernel or firmware¶
When all else fails, try to:
- Upgrade the Linux kernel to the latest version, e.g. use mainline kernel (Ubuntu) or backports (Debian) or the equivalent for your distribution or compile Linus’ kernel yourself
- Update BIOS/UEFI for your laptop
- Update firmware for the causing device (if possible)
Consult adequate forums to learn how to do this.