This is the user-oriented changelog. For information regarding packaging,
please refer to: https://linrunner.de/tlp/developers/packaging.html

+++ 1.10.1 --- 04.05.2026 +++

  * Bugfix Release
    Battery Care:
    - ThinkPads: disable 'tlp discharge|recalibrate' if battery ratings are
      not reported in energy_* [mWh], since the workflow cannot handle this.
      A scenario that could arise with upcoming interim versions of Coreboot.
    - Lenovo laptops (non-ThinkPad series and ThinkBooks): fix the
      "could not read charge type" error triggered by a firmware update
      that introduces the "Fast" charge type (Issue #882).
    Operation:
    - Fix tlp.service start on Fedora

+++ 1.10.0 --- 20.04.2026 +++

  * Bugfixes since 1.10.0-beta.2
    Disks:
    - tlp-stat -d: fix incomplete device list

+++ 1.10.0-beta.2 --- 07.04.2026 +++

  * Beta Release

  * Features since 1.10.0-beta.1
    Battery Care:
    - Framework laptops: remove the obsolete framework plugin, as the required
      out-of-tree kernel module framework_laptop was abandoned in favor of the
      upstream driver cros_charge-control back in 2024.
      Unfortunately, the current state of setting charge thresholds on
      Framework hardware is as follows:
      - Recent changes to Framework's EC firmware have broken the
        cros_charge-control kernel module, which forms the base for TLP's
        alternative cros-ec plugin.
      - The only remaining viable option is currently to use 'framework_tool'
        (part of the framework-system library). However, this does not provide
        the standard sysfs attributes charge_control_start/end_threshold,
        which prevents TLP from setting charge thresholds.
    General:
    - TLP_DISABLE_DEFAULTS: exclude TLP_AUTO_SWITCH=2. Specify all excluded
      parameters in tlp.conf to make operating behaviour transparent.
    Graphics:
    - INTEL_GPU_POWER_PROFILE_ON_BAT: change default to power_saving
    PCIe Devices:
    - PCIE_ASPM_ON_SAV added for power-saver profile
    Profiles:
    - TLP_AUTO_SWITCH: substitute invalid config with 0

  * Bugfixes since 1.10.0-beta.1
    General:
    - Fix disabled bluetooth after suspend/resume cycle when paired with
      system76-driver (Issue #872)
    Graphics:
    - Fix INTEL_GPU_POWER_PROFILE_AC/BAT/SAV not working for GPUs with
      multiple GTs

+++ 1.10.0-beta.1 --- 27.03.2026 +++

  * Beta Release

  * Features
    Battery Care:
    - Lenovo laptops (non-ThinkPad series and ThinkBooks) use the new
      charge_types sysfs attribute as of kernel 6.17 (Issue #831).
      Support for the legacy interface in kernels < 6.17 has been split
      off into the additional plugin lenovo-legacy.
    - Introduce start and stop threshold for laptops with Wilco EC,
      such as Dell Chromebooks modded with chrultrabook/coreboot custom
      UEFI firmware (Issue #838).
    - LG Gram laptops: remove support for kernels < 5.18 (lg-legacy plugin).
      Note: the lg plugin for kernel 5.18 and newer remains included,
      upgrade your kernel.
    - ThinkPads:
      - Charge thresholds are not restored or changed by 'tlp start' or
        automatic operation while 'tlp discharge/recalibrate' is running
      - Streamline model detection
    - RESTORE_THRESHOLDS_ON_BAT: change default to enabled.
      If the charger is disconnected, for instance after a 'tlp fullcharge',
      then the configured charge thresholds will be automatically restored.
    - tlp-stat -b: on laptops that provide battery metrics in mA(h), calculate
      the equivalent in mW(h) and display it adjacently (Issue #820)
    - tlp-stat -b -v: show battery serial number
    General:
    - Remove backward compatibility with /etc/default/tlp
    - tlp-stat -s:
      - "Power profile" renamed to "TLP profile" to distinguish it
        from similarly sounding kernel tunables
      - OS Release: fix parsing of Gentoo's /etc/os-release with '' quoting
    - tlp-stat -T: show timestamps with microsecond precision
    - Use 'daemon' facility for logging and trace
    Graphics:
    - Introduce support for Intel Xe graphics (Issue #857):
      - INTEL_GPU_POWER_PROFILE_ON_AC/BAT/SAV: SLPC power profile
      - INTEL_GPU_MIN/MAX_FREQ_ON_AC/BAT/SAV: min/max frequency
    - RADEON_DPM_PERF_LEVEL_ON_SAV added for power-saver profile (Issue #850)
    - RADEON_DPM_STATE_ON_AC/BAT/SAV: *DEPRECATED* feature will be
      removed in TLP 1.11. Only affects the legacy driver radeon.
    - tlp-stat -g: show power_state for AMD and Nvidia GPUs
    - RUNTIME_PM_DRIVER_DENYLIST: add amdgpu, nvidia to default to
      facilitate hybrid GPU powerdown
    PCIe Devices:
    - tlp-stat -e: indicate when autosuspend is deactivated using
      RUNTIME_PM_ON_AC/BAT=""
    Profiles:
    - TLP_PROFILE_AC/BAT: customize automatic TLP profiles for AC and battery.
      For example, they can be changed to balanced on AC power and power-saver
      on battery power (Issue #844).
    - TLP_DEFAULT_MODE: renamed to TLP_PROFILE_DEFAULT
    - TLP_PERSISTENT_DEFAULT: *DEPRECATED* instead use TLP_AUTO_SWITCH=0
      together with TLP_PROFILE_DEFAULT to lock TLP to a fixed profile
    - Reversed the order of TLP's profiles in the desktop UI to match
      power-profiles-daemon's order
    - Rewrite of tlp-pd to use only GLib and no longer python-dbus
    - Sandbox tlp-pd.service
    - tlp-pd property BatteryAware now reflects TLP_AUTO_SWITCH
      (0=false, 1/2=true) and becomes de facto readonly,
      i.e. it discards written values
    Processor:
    - tlp-stat -p: section "+++ Platform profile" renamed to "+++ Platform"
    Radio Devices:
    - RESTORE_DEVICE_STATE_ON_STARTUP: *DEPRECATED* feature will be
      removed in TLP 1.11

  * Bugfixes
    Battery Care:
    - ThinkPads:
      - tlp discharge/recalibrate: catch reset during initialization,
        refactor process
      - Fix detection of T580 with Libreboot (Issue #862)
    Power Profiles:
    - tlpctl: recover --version

+++ 1.9.1 --- 07.01.2026 +++

* Bugfix Release
  Power Profiles (tlp-pd)
  - Fix Polkit Authentication Bypass in Profiles Daemon in Version 1.9.0
    (CVE-2025-67859)
    - https://security.opensuse.org/2026/01/07/tlp-polkit-authentication-bypass.html
    - Version 1.8.0 and older are not affected
    - Ensure that all processes that change the power profile or the daemon's
      log level are authenticated, either by a desktop user session or as root
    - Limit the number of stacked profile holds (tlpctl launch) to 16
    - Make profile hold cookies unpredictable, to prevent unrelated users
      from releasing an active profile hold

  Battery:
  - Fix RESTORE_THRESHOLDS_ON_BAT: consider the change to battery power,
    not the profile. Ensure even after suspension.

+++ 1.9.0 --- 01.12.2025 +++

* Features since 1.9.0-beta.1
    Power Profiles:
    - tlp-stat --pd-diag: display active desktop session

* Bugfixes since 1.9.0-beta.1
    Disks:
    - Fix double processing of plugged USB disks
    - tlp-stat -d: fix anonymization of newish NVMe disk ids
    Operation:
    - run-on-ac/bat: fix power source detection (regression in 1.9.0-beta.1)

+++ 1.9.0-beta.1 --- 05.11.2025 +++

  * Beta Release

  * Features
    Power Profiles:
    - tlp-pd: TLP Profiles Daemon is a new addition to TLP. It implements
      the D-Bus interface, which lets desktop environments show a
      power profile switch. Together with TLP as the backend for applying
      these profiles, it replaces power-profiles-daemon.
    - Introduce a third configuration profile for maximum power savings
      and make tlp-pd possible. The following are now available:
      - performance: parameters ending in _AC are used when AC power
        is connected or when the new command 'tlp performance' is run.
      - balanced: parameters ending in _BAT are used when operating
        on battery power or when the new command 'tlp balanced' is run.
      - power-saver: parameters ending in _SAV are used when the new command
        'tlp power-saver' is run. If there is no _SAV parameter available
        for a feature, the _BAT parameter will be used instead.
    - tlpctl: new command to switch between power profiles, launch applications
      with specific profiles and control tlp-pd.
      It offers a subset of powerprofilesctl's commands supplemented by
      TLP-specific shortcuts.
    - TLP_AUTO_SWITCH: controls the automatic switching of the power profile
      when the charger is connected or removed (even during a suspend).
      The Innovation (and new default) is a "smart" mode that can retain a
      manually selected profile when the power source changes.
    - Use the TLP_DEFAULT_MODE profile when automatic switching is disabled.
    - tlp-stat --pd-diag: show tlp-pd diagnostic
    - tlp: drop the commands 'false' and 'true', which have been superseded
      by 'ac' and 'bat' for ages
    Battery Care:
    - Tuxedo laptops supported by the clevo_acpi out-of-tree driver from
      tuxedo-drivers: start and stop threshold (Issue #803);
      only models with a Clevo ODM chassis are compatible,
      check the tlp-stat -b output to find out if yours is
    - tlp-stat -b: advertise chargeonce, discharge, recalibrate features
      individually
    General:
    - TLP_DISABLE_DEFAULTS: deactivate all intrinsic defaults so that
      only settings that have been explicitly activated are applied;
      helpful to use only selected features
    - tlp-stat -s: unified representation of tlp/tlp-rdw/tlp-pd's status
    - tlp-stat --trace-nm: show the journal entries for NetworkManager
      correlated with TLP's trace output, supplemented with device details
      for NetworkManager and rfkill
    - Response to invalid subcommands/options: output not only “Usage:”
      but also “Error:”
    Graphics:
    - New parameter for the power-saver profile: AMDGPU_ABM_LEVEL_ON_SAV
    - tlp-stat -g -v: show power state and clocks of AMD GPUs
    - RADEON_POWER_PROFILE_ON_AC/BAT removed (deprecated since 1.8.0)
    Processor:
    - PLATFORM_PROFILE_ON_AC/BAT/SAV: activated by default
    - New parameters for the power-saver profile:
      - CPU_DRIVER_OPMODE_ON_SAV
      - CPU_SCALING_GOVERNOR_ON_SAV
      - CPU_SCALING_MIN/MAX_FREQ_ON_SAV
      - CPU_MIN/MAX_PERF_ON_SAV
      - CPU_BOOST_ON_SAV
      - CPU_HWP_DYN_BOOST_ON_SAV
    - tlp-stat -p: add to display per core:
      - amd_pstate_lowest_nonlinear_freq, amd_pstate_max_freq
      - (-v) scaling_cur_freq (current core frequency)
      - (-v) amd_pstate_hw_prefcore, amd_pstate_prefcore_ranking
    - tlp-stat -t -v: show all individual temperature/fan sensors
    Radio Devices:
    - bluetooth/nfc/wifi/wwan: add command 'cycle', equivalent of 'toggle' twice
    - DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE: Fix the disabling of nfc
      (Issue #808)
    - tlp-stat -s: warn if RDW is configured but tlp-rdw is not installed
    - tlp-stat -r -v: show device details for NetworkManager and rfkill

  * Bugfixes
    Battery Care:
    - Chromebooks, Framework laptops: fix tlp discharge to a target percentage
    - ThinkPads:
      - Fix X201, X220 discharge (Issue #793)
      - Fix bash completion for tlp discharge on tp-smapi models
      - Detect coreboot more reliable via DMI bios_vendor
      - tlp-stat -b:
        - Fix X13s Gen 1 ARM data read out (Issue #807)
        - Do not wrongly recommend kernel 5.17 if coreboot is detected,
          as coreboot does not implement discharge anyway
    Radio Devices:
      - Ensure clean wifi/wwan switching by keeping the status of
        NetworkManager and TLP in sync
      - bluetooth/nfc/wifi/wwan: restore device status display

+++ 1.8.0 --- 13.02.2025 +++

  * Features since 1.8.0-beta.1
    General:
    - tlp.8 manpage: explain battery name command parameters
    - tlp.conf: parameter qualifiers don't have to match battery names
    Battery Care:
    - bash completion: suggest stop threshold as target level for tlp discharge

  * Bugfixes since 1.8.0-beta.1
    Battery Care:
    - Dell: point to BIOS Admin password as cause of a threshold write error
      (Issue #785)

+++ 1.8.0-beta.1 --- 19.01.2025 +++

  * Beta Release

  * Features
    Battery Care:
    - Chromebooks modded with chrultrabook/coreboot custom UEFI firmware
      running kernel 6.12.8 (or later): stop threshold, recalibration;
      latest Chromebooks with EC firmware v3 also support a start threshold
      (Issue #765)
    - Dell laptops with kernel 6.12 (or later): start and stop threshold
      (Issue #379)
    - Framework laptops with kernel 6.12.8 (or later): stop threshold,
      recalibration (Issue #765)
    - ThinkPads:
      - tlp discharge to a target percentage
      - Discharge code refactored, messages improved
    - tlp chargeonce: better explain the process in the output
    Diagnostic:
    - tlp-stat --psup: add readings
    Graphics:
    - AMDGPU_ABM_LEVEL_ON_AC/BAT: write only when a change is made
      to avoid unnecessary screen flickering
    - RADEON_POWER_PROFILE_ON_AC/BAT: *DEPRECATED* feature will be
      removed in TLP 1.9
    Processor:
    - tlp-stat -p -v: show boost per core (amd-pstate needs kernel >= 6.11)

  * Bugfixes
    Operation:
    - Use AC mode for desktop PCs if no power source can be detected
      (Issue #768)
    Processor:
    - tlp-stat -t: discover all coretemp sensors
    Radio Devices:
    - RDW: if LAN gets disconnected in suspend, ensure wifi activation
      upon resume

+++ 1.7.0 --- 27.09.2024 +++

  * No changes since 1.7.0-beta.2

+++ 1.7.0-beta.2 --- 20.09.2024 +++

  * Beta release

  * Features since 1.7.0-beta.1
    Processor:
    - tlp-stat -p: identify CPU model on ARM systems

  * Bugfixes since 1.7.0-beta.1
    Battery:
    - ThinkPads:
      - Fix premature abort of discharge/recalibrate for *20 models
        (Issue #759)
      - Fix ThinkPad X13s ARM power source detection (Issue #758)
      - tlp-stat -b: do not recommend kernel 5.17 for coreboot,
        as coreboot does not support discharge/recalibrate anyway.
    USB:
    - tlp-stat -u: filter out error messages

+++ 1.7.0-beta.1 --- 04.09.2024 +++

  * Beta release

  * Features
    Battery Care:
    - Apple Silicon Macbooks (M*) with MacOS 13.0 (or later) firmware and
      Asahi Linux kernel 6.6 (or later): start and stop threshold
    - MSI laptops supported by the msi_ec driver in kernel 6.3 (or later):
      start and stop threshold (Issue #707)
    - Lenovo laptops (non-ThinkPad series): tlp-stat -b: number 60% removed
      because the threshold varies by model (Issue #717)
    - LG Gram laptops: forward to lg-legacy for kernel <= 5.17 only
    - ThinkPads:
      - The obsolete tpacpi-bat driver along with the acpi_call dependency
        were removed. Current Linux distributions ship with kernel 5.17 or
        later, which enables battery care via the built-in thinkpad_acpi.
      - tlp-stat -b improvements for coreboot:
        - Fix charge readings (Issue #657)
        - Indicate when recalibration is not possible
    - tlp-stat -b: Highlight battery care status
    - tlp setcharge, tlp-stat -b: display a recommendation to use the laptop
      on battery power until the battery is discharged to the stop threshold
    Disks:
    - tlp-stat -d: replace disk serial number with asterisks (for privacy)
    General:
    - TLP_MSG_COLORS: highlight error, warning, notice and success messages
      in color.
    - Add option --version to all TLP commands
    - Add tlp-stat output options:
      -m|--mode: print current power mode
      -q|--quiet: omit version header and show less information in the
        processor category
    - Add Fish shell command completion
    - Improve busybox compatibility by using only portable options for flock
    Graphics:
    - AMDGPU_ABM_LEVEL_ON_AC/BAT: configure display panel power savings via
      Adaptive Backlight Modulation (ABM) from AMD Vega or newer GPUs;
      kernel 6.9 required
    Processor:
    - CPU_ENERGY_PERF_POLICY_ON_AC/BAT: drop backwards compatibility for
      EPB with kernels < 5.2; x86_energy_perf_policy is no longer required
    - CPU_HWP_DYN_BOOST_ON_AC/BAT: drop the AMD implementation; the
      corresponding kernel patch was discarded during the 2022 review,
      reincarnation seems unlikely
    - tlp-stat -t:
      - Show AMD CPU temperatures
      - Indicate unavailable fan speed
    Radio Devices:
    - DEVICES_TO_ENABLE/DISABLE_ON_SHUTDOWN removed
    USB:
    - USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN removed

  * Bugfixes
    Battery:
    - ThinkPads:
      - Fix Edge 11 battery enumeration (Issue #714)
      - Support ThinkPad W510
    Disks:
    - Ensure power saving for all USB disks when plugged in
    - tlp diskid: filter duplicates
    General:
    - tlp-stat -s: rework manual mode detection (Issue #702)
    - tlp-stat --psup/udev: fix udev rule check
    Radio Devices:
    - Avoid error popups from NetworkManager when switching wifi/wwan
    USB:
    - Prevent USB devices from being unrecognized or malfunctioning on battery;
      adds xhci_hcd to RUNTIME_PM_DRIVER_DENYLIST defaults (Issues #436, #587)

+++ 1.6.1 --- 18.09.2023 +++

  * Bugfixes
    Battery:
    - LG Gram laptops: ensure lg-legacy is used for kernel <= 5.17 (Issue #708)
    General:
    - tlp-stat -s: report manual mode despite restrictive umask (Issue #702)

+++ 1.6.0 --- 24.08.2023 +++

  * Changes since 1.6.0-beta.1
    Battery:
    - System76: default start threshold set to 90% (due to EC firmware change)
    Processor:
    - CPU_DRIVER_OPMODE_ON_AC/BAT: check if operation mode is actually
      supported by the current CPU driver

+++ 1.6.0-beta.1 --- 20.07.2023 +++

  * Beta release

  * Features
    Battery:
    - LG Gram laptops:
      - Use standard sysfs attribute 'charge_control_end_threshold'
        provided by kernel 5.18 and newer
      - Restore threshold after hibernate
    - System76 laptops with open source EC firmware:
      start and stop threshold
    - ThinkPads: model detection adapted for Libreboot (Issue #679)
    - Toshiba/Dynabook laptops: stop threshold 80/100%
    Configuration:
    - Allow comments (#) after parameters (Issue #598)
    - tlp-stat -c/--cdiff: append a notice to deprecated or removed
      parameters
    Disks:
    - SATA_LINKPWR_ON_AC/BAT: remove fallbacks for outdated kernels
      before 4.15 from defaults (still available via explicit configuration)
    General:
    - Allow coexistence with power-profiles-daemon: do not apply
      PLATFORM_PROFILE_ON_AC/BAT, CPU_ENERGY_PERF_POLICY_ON_AC/BAT and
      CPU_BOOST_ON_BAT/BAT when it is running
    - MEM_SLEEP_ON_AC/BAT: change system suspend mode
    - Add ZSH command completion
    - tlp-stat -s:
      - Silence warnings about unmasked systemd-rfkill.service/.socket
        when DEVICES_TO_ENABLE/DISABLE_ON_STARTUP is actually unconfigured
      - Show EC firmware version
      - Show system suspend mode
      - Show proper ThinkPad model string with Libreboot (Issue #679)
    PCI(e) devices:
      - RUNTIME_PM_ENABLE/DISABLE: apply even when RUNTIME_PM_ON_AC/BAT
        is disabled (Issue #614)
    Processor:
      - CPU_DRIVER_OPMODE_ON_AC/BAT: set CPU scaling driver operation mode
        (active, guided, passive); amd-pstate/intel_pstate driver required
      - CPU_ENERGY_PERF_POLICY_ON_AC/BAT: support AMD Zen 2 or newer CPUs;
        kernel 6.3 with amd-pstate driver in active mode required
      - CPU_HWP_DYN_BOOST_ON_AC/BAT: *EXPERIMENTAL* support AMD Zen 2 or
        newer CPUs; yet unreleased kernel 6.x and amd-pstate driver
        in active mode required
      - SCHED_POWERSAVE_ON_AC/BAT removed (unavailable since kernel 3.5)
      - tlp-stat -p:
        - Show amd-pstate operation mode, dynamic boost and performance
          attributes
        - Show min/max operating frequency the processor can run at
          (cpuinfo_min/max_freq) and limit imposed by the BIOS (bios_limit)
        - (-v) Show acpi_cppc performance and frequency attributes
    Radio Devices:
    - Support Thunderbolt docks to switch radio devices
    - DEVICES_TO_ENABLE/DISABLE_ON_SHUTDOWN: *DEPRECATED* feature will be
      removed in TLP 1.7
    USB:
    - USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN: *DEPRECATED* feature will be
      removed in TLP 1.7

  * Bugfixes
    Configuration:
    - Strip trailing blanks from unquoted parameter values
    Operation:
    - Deactivate AHCI_RUNTIME_PM and PCIE_ASPM before suspend to avoid
      resume freezes (Issue #593, #606, #698)
    Processor:
    - Set governor although not listed in scaling_available_governors

+++ 1.5.0 --- 07.01.2022 +++

  * Bugfixes
    - tlp-stat: drop PM_RUNTIME=y kernel config recommendation

+++ 1.5.0-beta.1 --- 20.12.2021 +++

  * Beta release

  * Features
    Battery:
    - Sony laptops: stop threshold 50/80/100% aka "battery care limiter"
    - ThinkPads:
      - Use new sysfs attribute 'charge_behaviour' for recalibration
      - Support T400 running coreboot via natacpi (Issue #601)
    - tlp-stat -b: display "cycle_count = 0"  with the note "or not supported"
    Radio Devices:
    - Add support for switching NFC devices
    - Remove support for wireless-tools (iwconfig)

  * Bugfixes
    Battery:
    - ASUS laptops: apply stop threshold reliably on boot and after hibernate
      (Issue #589)
    Disks:
    - tlp-stat -d: display correct sysfs path for disk runtime pm:
      /sys/block/<DISK>/device/power/control (Issue #606)

+++ 1.4.0 --- 24.09.2021 +++

  * Features
    Audio:
      - SOUND_POWER_SAVE_ON_AC: change default to enabled (Issue #495)
    Battery:
      - "Battery Features" renamed to "Battery Care"
      - Introduce plugins to support Battery Care for non-ThinkPads:
        - ASUS laptops: stop threshold
        - Huawei MateBooks: start and stop threshold
        - LG Gram laptops: stop threshold at 80% aka "battery care limit"
        - Lenovo laptops: stop threshold at 60% aka "battery conservation mode"
        - Samsung laptops: stop threshold at 80% aka "battery life extender"
      - ThinkPads
        - Allow deactivation of the start threshold (START_CHARGE_THRESH_BATx=0)
        - Discharge malfunction: hint to check battery and charger
        - Use standard sysfs attributes for charge thresholds
          (Issue #513)
        - Flag ThinkPad L512 as "unsupported"
      - Validate charge threshold configuration, don't fail silently
      - tlp-stat -b
        - Battery Care: show plugin, supported features, driver usage and
          related kernel module(s)
        - Map battery state "Unknown" to "Idle" for clarity
    Configuration:
      - tlp-stat --cdiff: show configuration differing from defaults
      - PARAMETER+="add values": append values to a parameter already defined
        as intrinsic default or in a *previously* read file (Issue #457)
      - TLP_WARN_LEVEL: warn about invalid settings, configurable for background
        tasks and command line
      - Rename parameters (backwards compatible to legacy config files):
          SATA_LINKPWR_BLACKLIST      -> SATA_LINKPWR_DENYLIST
          RUNTIME_PM_BLACKLIST        -> RUNTIME_PM_DENYLIST
          RUNTIME_PM_DRIVER_BLACKLIST -> RUNTIME_PM_DRIVER_DENYLIST
          USB_BLACKLIST               -> USB_DENYLIST
          USB_BLACKLIST_BTUSB         -> USB_EXCLUDE_BTUSB
          USB_BLACKLIST_PHONE         -> USB_EXCLUDE_PHONE
          USB_BLACKLIST_PRINTER       -> USB_EXCLUDE_PRINTER
          USB_BLACKLIST_WWAN          -> USB_EXCLUDE_WWAN
          USB_WHITELIST               -> USB_ALLOWLIST
    Disks:
      - AHCI_RUNTIME_PM_ON_AC/BAT:
        - Works only on disks defined in DISK_DEVICES
        - Works on NVMe (new), SATA/ATA and plugged in USB (new) disks
        - Works on SATA ports
        - No longer experimental i.e. now enabled by default; the previously
          existing risk of system freezes (and data loss) with the multiqueue
          scheduler is now eliminated:
          - Kernel >= 4.19 itself locks unsafe disk runtime pm
          - TLP generally locks it for kernel < 4.19
      - DISK_APM_CLASS_DENYLIST: exclude disk classes from APM, i.e. you may
        now activate it for USB and IEEE1394 drives (Issue #523)
      - DISK_APM_LEVEL_ON_AC/BAT, DISK_SPINDOWN_TIMEOUT_ON_AC, DISK_IOSCHED:
        now also work when plugging in USB disks; provided disk is contained in
        DISK_DEVICES and 'usb' is removed from DISK_APM_CLASS_DENYLIST
      - tlp-stat -d
        - Explain why AHCI_RUNTIME_PM is locked for a disk
        - Show disks attached to SATA links/ports
        - Show a disk's host (for SATA_LINKPWR_DENYLIST)
        - Show ALPM state in the sysfs directory of the AHCI host
        - Show IDs for all disks configured in DISK_DEVICES
        - Distinguish SATA from ATA(IDE) disks
        - Show NVMe disk temperature
    General:
      - power-profiles-daemon: issue error messages about conflicting service
      - tlp-stat -s: determine OS release without the lsb_release utility
    Graphics:
      - Add support for amdgpu (Issue #498)
      - Improve powerdown of unused GPUs with drivers amdgpu, nouveau,
        nvidia and without driver (Issues #488, #495, #498)
      - tlp-stat -g:
        - List all GPUs with at least the driver info
        - Show hybrid graphics switch state (switcheroo)
        - Intel GPU:
          - Show hardware min/max frequency instead of
            list of available frequencies (kernel change)
          - Show more informative RC6, FBC and PSR status where available
            (Issue #203)
    Operation Mode AC/BAT:
      - Speed up system shutdown/suspend by not applying AC settings anymore
      - TLP_PS_IGNORE: add USB; allow to ignore multiple power supply classes
      - tlp-stat -s: speed up power source detection
      - tlp-stat --psup/udev: check if udev rules for power source changes and
        connecting USB devices are active
    PCI(e) devices:
      - RUNTIME_PM_ENABLE/DISABLE: permanently enable/disable runtime PM for
        PCI(e) devices based on address (independent of the power source)
      - RUNTIME_PM_DENYLIST: remove amdgpu, nvidia, pcieport from defaults
      - tlp-stat -e -v: show device runtime_status
    Platform:
      - PLATFORM_PROFILE_ON_AC/BAT: select platform profile to control system
        operating characteristics around power/performance levels, thermal
        and fan speed
      - tlp-stat -p: show state of ThinkPad lapmode
    Processor:
      - CPU_HWP_DYN_BOOST_ON_AC/BAT: Intel CPU HWP dynamic boost (Issue #468)
      - Remove backwards compatibility of CPU_ENERGY_PERF_POLICY_ON_AC/BAT with
        ENERGY_PERF_POLICY_ON_AC/BAT to prevent performance issues caused by the
        value 'power' in legacy configurations
      - PHC_CONTROLS removed (obsolete)
      - tlp-stat -p:
        - cpu1..cpuN omitted for clarity, use -v to show all
        - Sort more than 10 CPU cores in proper numerical order
        - Show intel_pstate operation mode ("status")
        - Omit "EPB: unsupported" for AMD or non-intel_pstate CPUs
    USB:
      - USB_EXCLUDE_AUDIO: exclude audio devices from autosuspend (Issue #556)
      - tlp-stat -u -v: show device runtime_status

  * Bugfixes
    Battery Care:
      - tlp discharge/recalibrate:
        - Terminate properly when AC/charger is removed
        - Check support on ThinkPads because of Coreboot (Issue #547)
      - [Try to] mitigate false threshold readouts caused by a firmware issue
        on ThinkPad A/E/L/S/X series (Issue #369)
    Disks:
      - Issue #474: confine AHCI_RUNTIME_PM_ON_AC/BAT to SATA disks
    Graphics:
      - Issue #488: Idle temperature 20 °C higher on battery (Nvidia GPU)
      - Issue #495: SOUND_POWER_SAVE_ON_AC=0 prevents powerdown of Nvidia GPU
      - Issue #522: Intel GPU settings fail -> validate configuration
    Operation Mode AC/BAT:
      - Issue #573: power mode not updating when switching from AC to battery
    Processor:
      - Issue #570: no_turbo=1 decreases scaling_max_freq on ThinkPad X1 Gen9

  * 1.4.0 Bugfixes since beta.2
    Battery:
      - tlp start: catch missing threshold method
    Configuration:
      - Ignore trailing blanks on non-quoted parameter values
      - tlp-stat --cdiff: do not show user config lines matching the default
    Disks:
      - Confine plugin event handling to USB

+++ 1.4.0-beta.2 --- 09.09.2021 +++

  * Beta release

  * Bugfixes
    Battery:
      - Huawei: use legacy interface 'charge_control_thresholds' for reliability
      - LG: fix battery and battery_care_limit detection (Issue #568)
      - ThinkPad: fix enforcement via NATACPI_ENABLE, TPAPCI_ENABLE
    Operation Mode AC/BAT:
      - Issue #573: power mode not updating when switching from AC to battery
    Platform:
      - tlp-stat -p: show state of ThinkPad lapmode
    Processor:
      - Issue #570: no_turbo=1 decreases scaling_max_freq on ThinkPad X1 Gen9
      - tlp-stat -p: omit "EPB: unsupported" for AMD or non-intel_pstate CPUs

+++ 1.4.0-beta.1 --- 29.07.2021 +++

  * Beta release

  * Features
    Audio:
      - SOUND_POWER_SAVE_ON_AC: change default to enabled (Issue #495)
    Battery:
      - "Battery Features" renamed to "Battery Care"
      - Introduce plugins to support Battery Care for non-ThinkPads:
        - ASUS laptops: stop threshold
        - Huawei MateBooks: start and stop threshold
        - LG Gram laptops: stop threshold at 80% aka "battery care limit"
        - Lenovo laptops: stop threshold at 60% aka "battery conservation mode"
        - Samsung laptops: stop threshold at 80% aka "battery life extender"
      - ThinkPads
        - Allow deactivation of the start threshold (START_CHARGE_THRESH_BATx=0)
        - Discharge malfunction: hint to check battery and charger
        - Use standard sysfs attributes for charge thresholds
          (Issue #513)
        - Flag ThinkPad L512 as "unsupported"
      - Validate charge threshold configuration, don't fail silently
      - tlp-stat -b
        - Battery Care: show plugin, supported features, driver usage and
          related kernel module(s)
        - Map battery state "Unknown" to "Idle" for clarity
    Configuration:
      - tlp-stat --cdiff: show configuration differing from defaults
      - PARAMETER+="add values": append values to a parameter already defined
        as intrinsic default or in a *previously* read file (Issue #457)
      - TLP_WARN_LEVEL: warn about invalid settings, configurable for background
        tasks and command line
      - Rename parameters (backwards compatible to legacy config files):
          SATA_LINKPWR_BLACKLIST      -> SATA_LINKPWR_DENYLIST
          RUNTIME_PM_BLACKLIST        -> RUNTIME_PM_DENYLIST
          RUNTIME_PM_DRIVER_BLACKLIST -> RUNTIME_PM_DRIVER_DENYLIST
          USB_BLACKLIST               -> USB_DENYLIST
          USB_BLACKLIST_BTUSB         -> USB_EXCLUDE_BTUSB
          USB_BLACKLIST_PHONE         -> USB_EXCLUDE_PHONE
          USB_BLACKLIST_PRINTER       -> USB_EXCLUDE_PRINTER
          USB_BLACKLIST_WWAN          -> USB_EXCLUDE_WWAN
          USB_WHITELIST               -> USB_ALLOWLIST
    Disks:
      - AHCI_RUNTIME_PM_ON_AC/BAT:
        - Works only on disks defined in DISK_DEVICES
        - Works on NVMe (new), SATA/ATA and plugged in USB (new) disks
        - Works on SATA ports
        - No longer experimental i.e. now enabled by default; the previously
          existing risk of system freezes (and data loss) with the multiqueue
          scheduler is now eliminated:
          - Kernel >= 4.19 itself locks unsafe disk runtime pm
          - TLP generally locks it for kernel < 4.19
      - DISK_APM_CLASS_DENYLIST: exclude disk classes from APM, i.e. you may
        now activate it for USB and IEEE1394 drives (Issue #523)
      - DISK_APM_LEVEL_ON_AC/BAT, DISK_SPINDOWN_TIMEOUT_ON_AC, DISK_IOSCHED:
        now also work when plugging in USB disks; provided disk is contained in
        DISK_DEVICES and 'usb' is removed from DISK_APM_CLASS_DENYLIST
      - tlp-stat -d
        - Explain why AHCI_RUNTIME_PM is locked for a disk
        - Show disks attached to SATA links/ports
        - Show a disk's host (for SATA_LINKPWR_DENYLIST)
        - Show ALPM state in the sysfs directory of the AHCI host
        - Show IDs for all disks configured in DISK_DEVICES
        - Distinguish SATA from ATA(IDE) disks
        - Show NVMe disk temperature
    General:
      - power-profiles-daemon: issue error messages about conflicting service
      - tlp-stat -s: determine OS release without the lsb_release utility
    Graphics:
      - Add support for amdgpu (Issue #498)
      - Improve powerdown of unused GPUs with drivers amdgpu, nouveau,
        nvidia and without driver (Issues #488, #495, #498)
      - tlp-stat -g:
        - List all GPUs with at least the driver info
        - Show hybrid graphics switch state (switcheroo)
        - Intel GPU:
          - Show hardware min/max frequency instead of
            list of available frequencies (kernel change)
          - Show more informative RC6, FBC and PSR status where available
            (Issue #203)
    Operation Mode AC/BAT:
      - Speed up system shutdown/suspend by not applying AC settings anymore
      - TLP_PS_IGNORE: add USB; allow to ignore multiple power supply classes
      - tlp-stat -s: speed up power source detection
      - tlp-stat --psup/udev: check if udev rules for power source changes and
        connecting USB devices are active
    PCI(e) devices:
      - RUNTIME_PM_ENABLE/DISABLE: permanently enable/disable runtime PM for
        PCI(e) devices based on address (independent of the power source)
      - RUNTIME_PM_DENYLIST: remove amdgpu, nvidia, pcieport from defaults
      - tlp-stat -e -v: show device runtime_status
    Platform:
      - PLATFORM_PROFILE_ON_AC/BAT: select platform profile to control system
        operating characteristics around power/performance levels, thermal
        and fan speed
    Processor:
      - CPU_HWP_DYN_BOOST_ON_AC/BAT: Intel CPU HWP dynamic boost (Issue #468)
      - Remove backwards compatibility of CPU_ENERGY_PERF_POLICY_ON_AC/BAT with
        ENERGY_PERF_POLICY_ON_AC/BAT to prevent performance issues caused by the
        value 'power' in legacy configurations
      - PHC_CONTROLS removed (obsolete)
      - tlp-stat -p:
        - cpu1..cpuN omitted for clarity, use -v to show all
        - Sort more than 10 CPU cores in proper numerical order
        - Show intel_pstate operation mode ("status")
    USB:
      - USB_EXCLUDE_AUDIO: exclude audio devices from autosuspend (Issue #556)
      - tlp-stat -u -v: show device runtime_status

  * Bugfixes
    Battery Care:
      - tlp discharge/recalibrate:
        - Terminate properly when AC/charger is removed
        - Check support on ThinkPads because of Coreboot (Issue #547)
      - [Try to] mitigate false threshold readouts caused by a firmware issue
        on ThinkPad A/E/L/S/X series (Issue #369)
    Disks:
      - Issue #474: confine AHCI_RUNTIME_PM_ON_AC/BAT to SATA disks
    Graphics:
      - Issue #488: Idle temperature 20 °C higher on battery (Nvidia GPU)
      - Issue #495: SOUND_POWER_SAVE_ON_AC=0 prevents powerdown of Nvidia GPU
      - Issue #522: Intel GPU settings fail -> validate configuration

+++ 1.3.1 --- 06.02.2020 +++

  * Bugfixes
    Processor:
      - Issue #460: default CPU_ENERGY_PERF_POLICY_ON_BAT=power too aggressive

+++ 1.3.0 --- 31.01.2020 +++

  * Features
    New configuration scheme:
      - /etc/default/tlp is replaced by /etc/tlp.conf
      - Settings are read in the following order:
          1. Intrinsic defaults
          2. /etc/tlp.d/*.conf - Drop-in customization snippets
          3. /etc/tlp.conf     - User configuration
        In case of identical parameters, the last occurrence has precedence
      - Parse config files instead of sourcing --> no more shell expansion
    Battery Features, tlp-stat -b:
      - Charge thresholds: better checks for command line and configuration;
        clearer error messages
      - tlp discharge: error message "check your hardware" when battery wasn't
        completely discharged (Issue #438)
      - Distinguish between "no kernel support" for natacpi (< 4.17) and
        "laptop not supported" (>= 4.17)
      - Supplement battery status "Unknown" with "threshold may prevent
        charging" when thresholds are available only
    General:
      - systemd: replace tlp-sleep.service with /lib/systemd/system-sleep/tlp
    Operation Mode AC/BAT:
      - TLP_PS_IGNORE: power supply class to ignore when determining operation
        mode; workaround for laptops reporting incorrect AC or battery status
        (Issue #446)
    PCI(e) devices:
      - PCIE_ASPM_ON_AC/BAT: add method 'powersupersave' (Issue #425)
    Processor:
      - CPU_ENERGY_PERF_POLICY_ON_AC/BAT: backward compatible merge of
        settings for Intel energy vs. performance policies
        EPB (ENERGY_PERF_POLICY_ON_AC/BAT) and HWP.EPP (CPU_HWP_ON_AC/BAT);
        when HWP.EPP is available, EPB is not set; validate parameters;
        eliminate external tool x86_energy_perf_policy for kernel >= 5.2
    tlp-stat:
      - Configuration: show file where the parameter comes from
      - System Info:
        - Show SELinux status
        - Show RDW as 'disabled' when TLP is disabled as a whole
        - Indicate persistent mode
      - Intel CPU: don't show EPB values when HWP.EPP is active (see above)
      - PCIe ASPM: show available policies
      - Undervolting: remove "PHC kernel not available" message

  * Bugfixes
    Battery Features:
      - Issue #415: ThinkPad X240 discharge BAT1 malfunction when BAT0 is not
        installed
    Disks:
      - Fix NVMe detection on Linux 4.15
    tlp-stat:
      - Issue #430: ignore hid device batteries

+++ 1.2.2 --- 04.05.2019 +++

  * Bugfixes
    Battery Features, tlp-stat -b:
      - Show data for batteries named other than BAT0/BAT1 (non-ThinkPads)
      - Issue #395: ThinkPad X1C6 discharge malfunction
      - Separate checks for charge thresholds and recalibration
      - Intelligible recommendation for tp-smapi on ThinkPad X220/T420 et al.
      - Explain "Battery Features: Charge Thresholds and Recalibrate"
    Disks:
      - Fix type determination
    Operation Mode AC/BAT:
      - MacBookPro 5.3: workaround for false AC offline status
    Processor, tlp-stat -p:
      - Fix read of /sys/devices/system/cpu/cpufreq/boost
      - x86_energy_perf_policy: detect unsupported CPUs in newer versions
    Radio Devices:
      - Issue #404: make RESTORE_DEVICE_STATE_ON_STARTUP=1 persistent again

+++ 1.2.1 --- 18.03.2019 +++

  * Bugfix
    - Issue #391: unknown command "chargeonce"

+++ 1.2 --- 11.03.2019 +++

  * Features
    Disks:
      - Support for NVMe devices
      - Support for removable drives e.g. USB / IEE1394 devices
      - Improve support for multi queue I/O schedulers (blk-mq)
    General:
      - tlp bat/ac: keep manual power settings until tlp start (Issue #349)
      - Remove all pm-utils scripts (Issue #363)
      - tlp/tlp-stat: Temporarily overwrite configuration for one program
        invocation only: -- PARAM=value ...
      - Document intrinsic defaults in config file (Issue #353)
      - Code verified with ShellCheck
    Graphics:
      - INTEL_GPU_MIN_FREQ_ON_AC/BAT, INTEL_GPU_MAX_FREQ_ON_AC/BAT,
        INTEL_GPU_BOOST_FREQ_ON_AC/BAT: Intel GPU frequency limits
    Radio Devices:
       - tlp-rdw: new command to disable RDW actions temporarily (until reboot)
       - Support ThinkPad Pro Dock CS18 (17ef:306f)
       - USB_BLACKLIST_WWAN: disable by default
       - Retire compatibility with Network Manager 0.9.8 (Ubuntu 14.04 EOL)
    PCI(e) devices:
       - RUNTIME_PM_BLACKLIST: add mei_me, pcieport
    ThinkPad Battery:
      - New native kernel API for battery features "natacpi" (Issue #321);
        requires kernel 4.17; enabled by default
      - NATACPI_ENABLE, TPACPI_ENABLE, TPSMAPI_ENABLE: make all battery feature
        drivers switchable
      - tlp discharge/recalibrate: exclude multiple simultaneous invocations
      - Support ThinkPad 25, *80 (Coffee Lake) and all newer models
    tlp-stat:
      - Check systemd-rfkill.socket masked status
      - Disks: show all configured devices (consider default)
      - Intel GPU: show frequency limits and available frequencies
      - Rename "Suggestions" section to "Recommendations"
      - Remove invocation via 'tlp stat'
    USB:
      - Exclude scanners managed by libsane from autosuspend
      - Remove long deprecated level/autosuspend attributes

  * Bugfixes
    - Issue #193: do not try to start NetworkManager (systemd)
    - Issue #319: get_disk_dev logic is not compatible with NVMe devices
    - Issue #320: AC mode not detected with USB charger
    - Issue #331: Process '/usr/bin/tlp auto' failed with exit code 4
    - Issue #332: zsh parse error in tlp diskid
    - Issue #343, #362, #375: circumvent broken AC/charger detection
    - Issue #344: keep ASPM default to enable deeper C-states on AC
    - Issue #356: fix writing sequence for start/stop charge thresholds
    - Issue #368: recognize Think*p*ad P50
    - tlp-stat: filter HWP lines from x86_energy_perf_policy output

+++ 1.1 --- 24.01.2018 +++

  * Features
    Disks:
      - SATA_LINKPWR_ON_AC/BAT: try multiple values to support new recommended
        ALPM policy "med_power_with_dipm" in kernel 4.15
    Processor:
      - Issue #297: ENERGY_PERF_POLICY_ON_AC/BAT: support changed values
            performance, balance-performance, default, balance-power, power
    ThinkPad Battery:
      - Support ThinkPad 13 1st & 2nd Gen, E130; new tpacpi-bat version
      - tlp-stat --psup: show ASLbase for tpacpi-bat (in device/path)
      - tlp discharge: show state of battery and force_discharge
    USB:
      - USB_BLACKLIST_PRINTER: exclude printers from autosuspend

  * Bugfixes
    - Issue #271: intercept link_power_management_policy write error
    - Issue #283: fix AC power detection for MacBook Pro 2017
    - Issue #298: move runtime data from /var/run/tlp to /run/tlp
    - Issue #301: DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth"
          not working as expected
    - Issue #313: don't detect wireless input devices' batteries as power supply

+++ 1.0 --- 25.05.2017 +++

  * Features
    General:
      - TLP_PERSISTENT_DEFAULT: use TLP_DEFAULT_MODE regardless of the actual
        power source
    Device Bays:
      - BAY_POWEROFF_ON_AC: power off optical drive not only on bat (Issue #243)
    Graphics:
      - RUNTIME_PM_DRIVER_BLACKLIST: when unconfigured default to
        "amdgpu nouveau nvidia radeon"; driver default control=auto allows
        PRIME/Bumblebee to turn the dGPU off and prevents accidential power-on
        during boot as well
      - Exclude Nvidia dGPU from runtime power management even when no driver
        is associated (improve compatibility with Bumblebee)
    PCI(e) devices
      - RUNTIME_PM_ALL removed (default to RUNTIME_PM_ALL=1 internally)
    Processor:
      - CPU_HWP_ON_AC/BAT: HWP energy performance hints; needs kernel 4.10 and
        Intel Skylake CPU or newer, intel_pstate only
    ThinkPad Battery:
      - RESTORE_THRESHOLDS_ON_BAT: restore charge thresholds on battery
      - Detect ThinkPad *70 models (Kaby Lake)
      - Detect ThinkPad 13 (1st and 2nd Gen) as unsupported (Issue #227)
      - Change texts "ThinkPad (extended) battery functions" to
        "ThinkPad battery features"
      - tlp-stat:
        - Show "Charge total %" when more than one battery is present
        - Show battery temperature (tp-smapi only)
        - Show "unsupported" instead of "not installed" for tp-smapi incapable
          hardware
    USB:
      - USB_BLACKLIST_BTUSB: exclude bluetooth devices from autosuspend
        (Issue #239)
      - USB_BLACKLIST_PHONE: exclude phone devices from autosuspend
        (Issue #188)
    tlp-stat:
      - -g|--graphics: show graphics card data only
      - i915: explain enable_psr modes
      - --psup: show power supply diagnostic
      - SMART attribute G-Sense_Error_Rate (191)
      - -v: additional battery voltages
      - Workqueue power efficient status

  * Bugfixes
    - Issue #237: init start: apply powersave regardless of previous state
    - Issue #256: tlp-stat: intercept non-existing or invalid charge values
    - tlp-stat: show Intel graphics parameters for Ubuntu's i915_bpo module

+++ 0.9 --- 18.08.2016 +++

  * Features
    General:
      - Block concurrent invocation of tlp
    Disks:
      - AHCI runtime power management for host controllers and attached disks
      - SATA_LINKPWR_BLACKLIST: exclude SATA host devices from power management
    Radio Devices:
      - Finally remove deprecated DEVICES_TO_ENABLE_ON_RADIOSW code
        (works with Ubuntu 12.04/Kernel 3.2 only)
      - Change WIFI_PWR_ON_AC/BAT default config values to off/on for better
        usability (1/5 is still supported for backwards compatibility)
    Radio Device Wizard (tlp-rdw):
      - Add another ThinkPad OneLink Pro Dock USB LAN (17ef:304)
    (ThinkPad) Battery:
      - tlp-stat:
        - Distinguish incompatible hardware from load errors (Issue #160)
        - Display battery charge and capacity values in %
        - More selective suggestions for tp-smapi/acpi-call kernel modules
    tlp-stat:
      - Intel graphics: include i915 parameters enable_dc, enable_psr, modeset
      - --pev: monitor power supply udev events (Issue #172)
      - Processor:
        - Display available scaling governors
        - intel_pstate: display turbo_pct, num_pstates
      - Storage Devices:
        - Recognize blk-mq I/O scheduler
        - SMART attributes Power_Cycle_Count, Unused_Rsvd_Blk_Cnt_Tot,
        NAND_Writes_1GiB
      - Suggestions: add *60 models for tp-smapi/acpi-call
      - System Info: display boot mode UEFI / BIOS
      - TLP Status:
        - Display time and mode of tlp's last invocation
        - Issue warning when systemd-rfkill[@].service is not masked
      - Wireless: display type in interface list

  * Bugfixes
    - Issue #163: handle kernel with built-in acpi_call module properly
    - Issue #170: battery discharge does not terminate on ThinkPad E-series
    - Issue #172: TLP does not notice power source change
    - Issue #175: do not touch wifi on shutdown when unconfigured
    - Issue #176: optimize rdw locking heuristics
    - tlp-stat: fix ata error count (filter "DevExch" caused by bay inserts)
    - tp-smapi: do not load on unsupported ThinkPads
    - Fix bash completion

+++ 0.8 --- 05.08.2015 +++

  * Features
    General:
      - TLP_DEFAULT_MODE: change default operation mode to AC when no power supply
        can be detected (concerns some desktop and embedded hardware only)
    Radio Devices:
      - Resume: restore bluetooth state (derball2008)
    Radio Device Wizard (tlp-rdw):
      - Support ThinkPad OneLink Dock Basic/Pro for dock/undock events
      - Detect systemd "predictable network interface names" for WWAN
    ThinkPad Battery:
      - tpacpi-bat: new upstream version 2.2: get ASL path from
        /sys/class/power_supply/*/device/path; avoids unnecessary
        "AE_NOT_FOUND" kernel messages
      - tlp-stat:
        - Show "No batteries detected."
        - Explain battery status "Unknown" as "threshold effective"
        - Show battery cell group voltages (verbose mode, tp-smapi only)
        - Show acpi-call suggestion for ThinkPad *40, *50, X1 models
    USB:
      - Remove USB_DRIVER_BLACKLIST (because of issues #147, #149, see below)
    tlp-stat:
      - Show warnings for ata errors by default

  * Bugfixes
    - Issue #123: tlp-stat: detect kernel config with PM_RUNTIME=N
    - Issue #124: tlp recalibrate: fix exitcode check
    - Issue #133: USB autosuspend: write power/control if actually changing only
    - Ignore missing files in /proc/sys/fs/xfs (Gijs Hillenius)
    - Issues #147, #149: fix udev event processing for AC/BAT switching
      and USB hotplugging (required for udevd v221 and higher)

+++ 0.7 --- 29.01.2015 +++

  * Features
    Processor:
    - Limit max/min P-state to control power dissipation of the CPU
      (intel_pstate only)
    - Set performance versus energy savings policy (x86_energy_perf_policy)
    USB:
    - USB_DRIVER_BLACKLIST: exclude devices assigned to the listed drivers
      from USB autosuspend; default: usbhid
    - USB_BLACKLIST_WWAN: match internal driver list instead of USB vendor ids
    - USB_WHITELIST: include devices into USB autosuspend even if
      already excluded by the driver or WWAN blacklists
    Radio devices:
    - DEVICES_TO_ENABLE_ON_AC/DISABLE_ON_BAT/DISABLE_ON_BAT_NOT_IN_USE:
      enable/disable radio devices upon change of power source
      (excluding connected devices)
    ThinkPad Battery:
    - Issue #105: provide proper return codes for all battery functions
    - Issue #106: setcharge allowed on battery power
    - Do not activate new thresholds with force_discharge anymore (tp-smapi)
    - tpacpi-bat: support for ThinkPad E325 charge thresholds
    Misc:
    - RUNTIME_PM_DRIVER_BLACKLIST: exclude PCI(e) devices assigned to drivers;
      default: radeon, nouveau (solves issue #94)
    - Support Dell Latitude docks
    tlp-stat:
      - New options -d|--disk, -e|--pcie, -p|--processor,
                    -s|--system, -u|--usb
      - Show driver and connection state for all enabled radio devices
      - Show driver name in Runtime PM PCI(e) device list
      - Show type and state of docks and device bays
      - Show type of init system
      - Check if TLP's systemd services are enabled (zenox)

  * Bugfixes
    Udev:
    - Run change of power source in a detached subshell to avoid blocking udev
    - Fix dock/undock event processing for ThinkPad Adv Mini Dock and Ultrabase
    - Make USB device event processing more robust
      - Run in a detached subshell to avoid blocking udev
      - Wait 2s for subdevices to populate for proper black/whitelist detection
    Misc:
    - Support for NM 0.9.10 (Debian Jessie)
    - Issue #109: tlp-stat: report "unknown" power source when no AC detected
    - Issue #98: do not change autosuspend_delay_ms, keep kernel default
      settings (garyp)
    - Exclude pseudo usb disks (Raphaël Halimi)

  * Misc
    - Add AUTHORS file

+++ 0.6 --- 06.10.2014 +++

  * Features
    - Set systemd service type to simple, allows tlp service
      to start asynchronously in the background (Timofey)
    - Remove DISABLE_TPACPIBAT from configuration
    - Remove DEVICES_TO_ENABLE_ON_RADIOSW from configuration because
      it's deprecated: works with Ubuntu 12.04/Kernel 3.2 only
    - Enable RUNTIME_PM_ALL by default
    - Do not touch kernel settings if param is empty or commented:
        DISK_IDLE_SECS_ON, MAX_LOST_WORK_SECS_ON,
        SCHED_POWERSAVE_ON, NMI_WATCHDOG,
        SATA_LINKPWR_ON, PCIE_ASPM_ON,
        RADEON_DPM_STATE_ON, RADEON_POWER_PROFILE_ON,
        WIFI_PWR_ON, SOUND_POWER_SAVE_ON, RUNTIME_PM_ON.
    - DISK_APM_LEVEL_ON, DISK_SPINDOWN_TIMEOUT_ON, DISK_IOSCHED:
      use _ or keep to skip the setting for a particular disk
    - tlp-stat
      - Consider changed sysfs paths for i915 enable_rc6/fbc
        as of kernel 3.15 (M@C)
      - Consider changed sysfs paths for hwmon coretemp/sensors
        as of kernel 3.15/3.16
      - Report speed of all fans, not just the first one
      - Show warning for kernel sata errors (possibly) caused by
        SATA_LINKPWR_ON_BAT/AC=min/medium power
      - Retrieve trace output from systemd journal if present
    - Do not disable TLP when laptop-mode-tools is detected,
      just output a warning about possible conflicts

  * Bugfixes
    - Issue #74: Makefile: remove tlp-nop in uninstall-tlp target
      (beatinho, peterkenji94)
    - Issue #86: tlp-stat: don't suggest tp-smapi on non-ThinkPad
      hardware with thinkpad_acpi loaded (sayantandas)
    - tlp-stat: do not show /proc/acpi/ibm/fan on Lenovo non-ThinkPad
      models (Qasim)

+++ 0.5 --- 24.03.2014 +++

  * Features
    - tpacpi-bat: auto detection of all ThinkPad models (v2.1)
    - tlp-stat: include newer models in tpacpi-bat suggestions
    - tlp-rdw: support newer docks
    - Handle special case where BAT1 = main battery
      (Thinkpad Edge/L/S series)
    - Issue #61: sound power save depending on power source ac/bat
    - Issue #62: don't touch devices in RUNTIME_PM_BLACKLIST or excluded
      by RUNTIME_PM_ALL=0

  * Bugfixes
    - run-on-ac/bat: check if command exists
    - Issue #59: do not write sata link power when not configured
    - Fix RESTORE_DEVICE_STATE_ON_STARTUP (fabio)
    - Restore bay power state upon resume only when on bat power
      and the setting is active (xudabit)
    - Use nmcli before rfkill to change radio state; re-enable wifi
      on shutdown when not explicitly configured (Ubuntu 14.04)

  * Packaging
    - Create symlinks instead of hardlinks for bluetooth/wifi/wwan,
      run-on-ac/bat
    - Makefile: new params TLP_*
    - tlp.init: remove requirement $all

+++ 0.4.1 --- 02.01.2014 +++

  * Bugfix version (_not_ for Ubuntu/Debian)

  * Features
    - tpacpi-bat: support ThinkPad E431

  * Bugfixes
    - Bug #43: tlp-rdw not working with NM 0.9.9/Fedora 20 (wofritz)
    - Bug #44: run-on-ac|bat: remove dependency on pm-utils/on_ac_power

+++ 0.4 --- 17.09.2013 +++

  * Features
    - New radeon dynamic power management (dpm); needs Kernel >= 3.11
      (Pali Rohár)
    - RUNTIME_PM_BLACKLIST: exclude listed pci(e) device addresses
      from Runtime PM (wofritz)
    - USB_BLACKLIST_WWAN: exclude wwan devices from usb autosuspend;
      works for ids 05c6:* 0bdb:* 1199:* only
    - Apply ac settings for faster shutdown


+++ 0.3.11 --- 10.09.2013 +++

  *** Testing version (for Arch Linux) ***

  * Bugfixes
    - Issue #42:
      - Remove dependency to on_ac_power (part of pm-utils in
        Arch Linux)
      - Fix udev rule to detect power source change ac - bat

  * Packaging
    - Pull request #40: systemd: start tlp.service after
      local-fs.target instead of graphical.target (cprussin)

+++ 0.3.10 --- 17.08.2013 +++

  *** Testing version (for Arch Linux) ***

  * Architecture
    - Issue #36: detect change of power source via udev instead of being
      called by pm-powersave
    - Handle suspend/resume w/o pm-utils in systemd environments:
      - Encapsulate suspend/resume tasks as a tlp subcommand
      - Add tlp-sleep.service to call tlp suspend/resume
      - Remove 48tlp-rdw.lock because it doesn't work as expected

  * Features
    - Issue #31: detect and use intel_pstate driver to control
      turbo mode (ValdikSS)
    - Disable wol for all ethernet devices i.e. non-eth0 (blafoo)
    - tpacpi-bat:
      - merge upstream support for ThinkPad T430u, Edge E335/E530

  * Bugfixes
    - Issue #28: do not touch dirty_(background_)ratio anymore,
          i.e. revert setting to kernel defaults

  * Packaging
    - debian/control: remove ${shlibs:Depends}

+++ 0.3.9 --- 02.05.2013 +++

  * Features
    - tpacpi-bat:
      - merge upstream w/ support for ThinkPad (Edge) S430
      - add support for ThinkPad L530
    - tlp-stat:
      - Subtract offset 128 from threshold values on ThinkPad Edge S430
      - Show /sys/class/power_supply/BATx/cycle_count = 0 as "(unsupported)"
  * Bugfixes
    - Issue #14: tlp recalibrate fails when /bin/sh -> bash (slyon)
    - Bug #42: X121e battery functions not working (Jlp)
    - Set more reasonable values for dirty_ratio/dirty_background_ratio
    - Reverse order of writing the thresholds upon system start
      to stop - start, to achieve a consistent tlp-stat output between
      tlp init/start and tlp setcharge on quirky Edge and L series.
    - tlp-stat:
      - Fix threshold output trailing empty line

 +++ 0.3.8.1-3 --- 07.04.2013 +++

  * Packaging
    - Fix #41: postinst/postrm fails without acpid (Petit Carlin)
        - recommends: acpid
        - postinst/rm: ignore missing acpid

+++ 0.3.8.1 --- 29.03.2013 ***

  * Packaging
    - Remove obsolete desktop autostart hook
    - New format for debian/copyright
    - Add dummy case construct to tlp.init to make lintian happy
    - Rename tlp-init.service to tlp.service
    - postinst/postrm: restart acpid for thinkpad-radiosw event
    - Move smartmontools to "recommends:"

  * Features
    - New options CPU_BOOST_ON_* for cpu turbo boost (Linux 3.7 or later)
    - New option DEVICES_TO_ENABLE_ON_RADIOSW to enable only selected radios
      when wireless radio switch is turned on (Ubuntu + ThinkPad only)
    - [EXPERIMENTAL] New option RUNTIME_PM_ALL to activate runtime pm for
      all PCI(e) devices
    - tpacpi-bat: new upstream version (25.03.2013, commit dd5a682)
        - add support for X121e, L430, E420s, S420
    - tlp chargeonce: charge battery to upper threshold once
    - tlp discharge: show current power consumption
    - tlp-stat:
        - Nicer output, code refactored
        - Remove dmidecode – get DMI data from /sys/class/dmi/id/
        - When ASPM policy is not writable, show "using bios prefs"
        - Show interpretation for i915 params
        - Show disk status
        - Show tp-smapi, tpacpi-bat availability and status
        - Show cpu model
        - Resolve all pci device classes (new subcommand tlp-pcilist)
        - Show suggestions to install missing kernel modules/tools
    - Use iw for wifi power save if available, iwconfig is considered deprecated
    - Remove obsolete tlp wifi subcommand
    - Remove 2s delay in applying settings upon change of the power source

  * Bugfixes
    - tlp-stat:
        - Exclude usb media from "Storage Devices" section
        - Fix display of data in /sys/class/power_supply/BAT?/

+++ 0.3.7.1 --- 17.08.2012 +++

  * Bug fixes
    - #39: tlp-stat: /sys/devices/platform/coretemp.0/temp1_input
           does not exist (Laurent Bonnaud)

+++ 0.3.7 --- 13.08.2012 +++

  * Packaging
    - implement startup/shutdown code as a command: tlp init
    - systemd support: tlp-init.service
    - deb recommends: tlp-rdw; suggests: acpi-call, tp-smapi
  * Features
    - Battery charge thresholds for Sandy Bridge and later models
      (X220/T420/...) by means of tpacpi-bat
    - Use tpacpi-bat even when tp-smapi is not available; for
      Ivy Bridge models (X230/T430/...)
    - DEVICES_TO_ENABLE_ON_SHUTDOWN to prevent other operating systems
      from missing radios
    - DEVICES_TO_ENABLE_ON_STARTUP
    - tlp-stat:
      - show TRIM capabilty for SSDs
      - add SMART attributes (179, 241)
      - new cmdline options -r, -t, -T
      - show cpu temp, fan speed even if /proc/acpi/ibm/{thermal|fan}
        are not available
      - show tp_smapi/power_avg
  * Bug fixes
    - #34: system start hangs in Fedora 17 (DigitalFlow)
    - #35: shutdown results in reboot; new config param
           USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN (Thubo)
    - #38: wifi on/off not working with ipw2100/2200 (kristatos)

+++ 0.3.6-2 --- 24.03.2012 +++

  * Packaging:
    - Fix tlp.postinst for systems without upstart dir /etc/init/

+++ 0.3.6 --- 22.03.2014 +++

  * Features
    - handle usb autosuspend via udev events
    - usb hid detection overhauled (based on subdev/bInterfaceClass)
    - Restrict runtime pm to a safe subclass of pci devices
      (from Ubuntu Precise's implementation of pm-utils)
    - Restore radio device state on system startup (from previous shutdown)
    - Radio device wizard: switch radios upon network connect/disconnect
      and dock/undock events (samba)
    - Set cpu scaling governor and mix/max frequencies (Alex Lochmann)
    - tlp-stat: add smart attributes for samsung ssd
    - tlp-stat: show settings
  * Packaging
    - postinst/postrm:
      - disable power.d/harddrive, pci_devices, readahead,
          usb_bluetooth (Package pm-utils, Ubuntu 12.04)
      - disable conflicting upstart jobs (Package rfkill, Ubuntu 12.04)
    - split package
      - tlp: power save functions
      - tlp-rdw: radio device wizard (depends on network manager)
  * Bug Fixes
    - tlp-usblist: cleanup code, add pragmas "strict" and "warnings" (dywisor)
    - Remove setting of ext3/4 fs commit timeout (see LP #900923)

+++ 0.3.5 --- 19.12.2011 +++

  * Features
    - tlp recalibrate = fullcharge + discharge
    - tlp-stat: show thinkpad fan speed, battery model, power_now,
                i915: powersave, lvds_downclock
    - tlp-stat: usb output refactored, new subcommand tlp-usblist
    - tlp-stat: show kernel cmdline
    - added non-rfkill device ipw2100 (kristatos)

  * Bug Fixes
    - #27: tlp-stat complains about missing /proc/acpi/ibm/thermal and
           start_charge_thresh on X220/T420(s) et al. (Esc)
    - Check if start_charge_thresh, stop_charge_thresh, force_discharge
      are writable
    - #28: further mitigate race with gdm when disabling radios
           in init script (blackbox)
    - #29: tlp-stat: remove smartctl garbage output (SirVival)
    - #30: suppress dmidecode error output (kristatos)
    - iterate over all sched_powersave instances
    - i915: rc6/fbc features removed
    - Start upowerd in init script
    - #32: show error message suggesting to uninstall latop-mode-tools
           if present (Kuzoku)

+++  0.3.4 --- 05.12.2014 +++

  * Features
    - Intel graphics: rc6 power save mode, frame buffer compression

+++ 0.3.3 --- 19.09.2011 +++

  * Features
    - tlp-stat: show hdd temp SMART values (bassplayer)
    - enable/disable kernel NMI watchdog

  * Other changes
    - set_charge_thresholds(): check for undefined thresh values
    - set_extfs_commit(): skip bind mounts (Fedora sandbox)
    - zztlp: check param; show help text

  * Bug Fixes
    - #24: openSUSE 11.4/2.6.37: writing to autosuspend_delay_ms fails,
             fallback to autosuspend
    - #25: fix sched_mc_power_savings on bat
    - #26: tlp-stat complains about missing dmidecode (Sara)


+++ 0.3.2-2 --- 11.07.2011 +++

  * Bug Fix
    - #23: init.d script not linked/unlinked by install/purge (LePatron)

+++ 0.3.2 --- 04.07.2011 +++

  * Bug Fix
    - #22: runtime pm causes shutdown to fail, reboots instead (fabio)
           disabled by default

+++ 0.3.1 --- 23.06.2011 +++

  * Changes to ease porting to other distros
    - removed system utils absolute paths
    - added PATH debug output in tlp, tlp.init/tlp.upstart
    - manpages moved from debian/ to man/

  * Features, other changes
    - runtime pm (ccyx)
    - set/disable hard disk spindown timeout (enrico65, hausmarke86)
    - use power/autosuspend_delay_ms (kernel >= 2.6.38)
    - tlp-stat: now runs with root privilege only,
        show intel ssd specific smart values,
        check for pcie aspm disabled by kernel
    - bluetooth/wifi/wwan: when using rfkill, check for root privilege
        or /dev/rfkill user-writable
    - tlp/bluetooth/wifi/wwan: bash completion

  * Bug Fixes
    - #18: tlp start (ac): incorrect ouptut "started in bat mode"
           fixed (yatpu)
    - #19: tlp-stat: incorrect wifi power mgmt detection for
           wl driver (DrPaulaner)
    - #20: handle disabled pcie aspm in kernel 2.6.39 gracefully
           (Schmitti, g3eB4Y)
    - #21: battery attributes /sys/class/power_supply/BAT?/charge_*
           not recognized (tanjapetri)

+++ 0.3.0-2 --- 20.03.2011 +++

  * Bug Fixes
    - DEVICES_TO_DISABLE_ON_STARTUP (Debian): startup code fixed;
      SysV-script depends on $syslog now

*** 0.3.0 --- 18.03.2011 ***

  * Bug Fixes
    - Switch wwan off before suspend
      (workaround for kernel/network-manager quirk)

  * Features
    - Specify DISK_DEVICES with id's from /dev/disk/by-id (egalus)
    - tlp diskid: show disk id's
    - DISK_IOSCHED: set i/o scheduler (egalus)
    - PCIe ASPM
    - Do not set START_CHARGE_THRESH on tp_smapi-capable ThinkPad Edge
    - SCHED_POWERSAVE: cpu/sched_*_power_savings
    - Set radeon clock speed via /sys/class/drm/card*/device/power_profile

  * Packaging
    - Move startup code from upstart back to init.d
    - Move symlinking in /etc/pm/power.d/ to postinst/postrm
    - Move /usr/lib/tlp/ to /usr/lib/tlp-pm/

*** 0.2.8 --- 25.09.2010 ***

  * Features
    - USB_AUTOSUSPEND: exclude input devices (usbhid) w/o blacklist
    - tlp-stat: indicate drivers in usb device list
    - DISK_APM_LEVEL: support multiple devices (Stifflers_mom)
    - maverick: override pm-utils power.d/ scripts with own functionality

*** 0.2.7 --- 11.09.2010 ***

  * Bug fixes
    - usb autosuspend/tlp-stat not showing all usb devices
    - #15: tlp-stat abort w/ ipw2200 (agape)
    - #16: PHC_CONTROL written to all cpus/cores (pumpe et al.)

  * Features
    - charge thresholds: new command tlp setcharge (crishu)
    - DEVICES_TO_DISABLE_ON_STARTUP: handle bluetooth in upstart job
      (previously via desktop login)
    - set usb autosuspend for wwan devices on ifup

*** 0.2.6 --- 17.07.2010 ***

  * Bugfixes
    - tlp-stat: error checking get_ctrl_device, tlp-stat batinfo (mikar)
    - #14: delayed login window (greeter) w/ USB_AUTOSUSPEND=1
           (steveurkel, fishmac, saubaer)

  * Features
    - tlp fullcharge
    - set_charge_thresholds on startup only, not on shutdown
    - ext3/ext4 fs commit depending on MAX_LOST_WORK_SECS
    - tlp-stat: check wifi power mgmt capability
    - tlp-stat: display wifi driver

*** 0.2.5-2 --- 17.05.2010 ***

  * Bugfix/Package change
    - Conflicts: pm-utils-powersave-policy
    - powersave-policy-sata-link-power breaks pm-powersave w/ sata
      controllers in compatible mode an pata controllers (LP# 514881).
    - TLP implements same functionality as conflicting package anyway ...

*** 0.2.5 --- 03.05.2010 ***

  * Bugfixes
    - #11: excessive boottime (+40s) w/ USB_SUSPEND=1 & USB_BLACKLIST=""
    - tlp-stat: display hard disk w/o apm as "none/disabled"

  * Features
    - bluetooth/wifi/wwan: toggle (#12, thatgui)
    - changed usb autosuspend default: on
    - wifi power management re-enabled on 2.6.32 w/ some adapters
    - trace feature, output to syslog/debug (TLP_DEBUG)
    - new variable BAY_DEVICE

*** 0.2.4 --- 10.03.2010 ***

  * Bugfixes
    - #8: tlp-rf-func warnings on ThinkPad w/o bluetooth and wwan (woelffchen)
    - #9: bayoff: ultrabay power on again after resume (linrunner)
             -> script sleep.d/49bay added
  * Features
    - tlp: force battery discharge
    - run-on-ac/run-on-bat

*** 0.2.3 --- 07.03.2010 ***

  * Bugfixes
    - #7: bayoff - media not unmounted, drives != sr0 not recognized (linrunner)

*** 0.2.2 --- 04.03.2010 ***

  * Bugfixes
    - #3: cannot re-enable bluetooth after disabling (M@C)
    - #5: autoload tp_smapi (Starko)

  * Features
    - upstart integration
    - tlp-stat: error checking improved
    - poweroff ultrabay optical drive on battery
    - support for ipw2200 radio enable/disable (karlitos)

*** 0.2.1 --- 31.01.2010 ***

  * Bugfixes
    - #1: pm-suspend/pm-hibernate hang w/o wwan device (Zaphod_42)
    - #2: error messages from set_sata_link_power() w/o sata-ahci or ide (quarf)
  * tlp-stat: more info

*** 0.2.0 --- 30.01.2010 ***

  * Initial public release
