enable predator_sense and four_zone_kb on PH315-53#98
Open
kali9c9 wants to merge 2 commits into
Open
Conversation
The PH315-52 (2019 Helios 300) currently has no quirk entry. Without one, predator_sense features (fan control, battery limiter, RGB keyboard) and four_zoned_kb support are not available. Add a dedicated quirk matched by DMI_BOARD_NAME QX50_CMS (the PH315-52 motherboard identifier). DMI_BOARD_NAME is used instead of DMI_PRODUCT_NAME because some units with BIOS V2.04 incorrectly report system-product-name as Predator PH315-53. Platform_profile fails gracefully on PredatorSense v3 firmware (existing retry logic handles this). All other features work: fan control (methods 14+16), battery health (methods 20/21), RGB keyboard (methods 6/7/20/21). Tested on: PH315-52, i7-10750H, BIOS V2.04, CachyOS kernel 6.19.7.
The PH315-53 quirk currently only sets .turbo, .cpu_fans, and .gpu_fans. This leaves predator_sense features (fan speed control, battery limiter, LCD override, etc.), four_zoned_kb (RGB effects and per-zone colors), and hwmon fan RPM unavailable. The PH315-53 runs PredatorSense v3 firmware, which supports these features through the same WMI methods used by v4 devices, but does not implement the platform_profile thermal mode methods (22/23 sub-functions 0xA/0xB). Setting predator_v4 = 1 would work but wastes ~7 seconds on boot running a 10-retry registration loop that can never succeed. This patch: 1. Extends predator_v4 to support value 2, which enables predator_sense and fan speed capabilities without attempting platform_profile registration. This mirrors the existing nitro_sense == 2 convention. 2. Fixes the early-exit guard in acer_platform_profile_setup() to use explicit == 1 checks instead of truthy checks, so value-2 devices (and nitro_sense == 2) actually skip the retry loop. 3. Adds .predator_v4 = 2 and .four_zone_kb = 1 to the existing PH315-53 quirk. Tested on PH315-53: fan control, battery limiter, RGB effects, per-zone colors, hwmon, and turbo all work. Module loads with no platform_profile retry warnings.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The PH315-53 quirk currently only sets .turbo, .cpu_fans, and .gpu_fans.
This leaves predator_sense features (fan speed control, battery limiter,
LCD override, etc.), four_zoned_kb (RGB effects and per-zone colors), and
hwmon fan RPM unavailable.
The PH315-53 runs PredatorSense v3 firmware, which supports these features
through the same WMI methods used by v4 devices, but does not implement
the platform_profile thermal mode methods (22/23 sub-functions 0xA/0xB).
Setting predator_v4 = 1 would work but wastes ~7 seconds on boot running
a 10-retry registration loop that can never succeed.
This patch:
Extends predator_v4 to support value 2, which enables predator_sense
and fan speed capabilities without attempting platform_profile
registration. This mirrors the existing nitro_sense == 2 convention.
Fixes the early-exit guard in acer_platform_profile_setup() to use
explicit == 1 checks instead of truthy checks, so value-2 devices
(and nitro_sense == 2) actually skip the retry loop.
Adds .predator_v4 = 2 and .four_zone_kb = 1 to the existing
PH315-53 quirk.
Tested on PH315-53: fan control, battery limiter, RGB effects, per-zone
colors, hwmon, and turbo all work. Module loads with no platform_profile
retry warnings.