* [PATCH] platform/x86: uniwill-laptop: Remove cTGP control from unsupported devices
@ 2026-11-13 14:47 Werner Sembach
2026-11-13 20:42 ` Armin Wolf
0 siblings, 1 reply; 2+ messages in thread
From: Werner Sembach @ 2026-11-13 14:47 UTC (permalink / raw)
To: Armin Wolf, Hans de Goede, Ilpo Järvinen
Cc: Werner Sembach, platform-driver-x86, linux-kernel
Some devices like the InfinityBook Pro series have Dynamic Boost support,
but the cTGP setting is actually ignored.
This commit adds the ability to still initialize DB, but hide the noop cTGP
sysfs attribute and applies this to the respective devices.
Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
---
drivers/platform/x86/uniwill/uniwill-acpi.c | 26 ++++++++++++++-------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/drivers/platform/x86/uniwill/uniwill-acpi.c b/drivers/platform/x86/uniwill/uniwill-acpi.c
index e2a6a704e942e..c0a75bc6e66db 100644
--- a/drivers/platform/x86/uniwill/uniwill-acpi.c
+++ b/drivers/platform/x86/uniwill/uniwill-acpi.c
@@ -366,10 +366,12 @@
#define UNIWILL_FEATURE_PRIMARY_FAN BIT(8)
#define UNIWILL_FEATURE_SECONDARY_FAN BIT(9)
#define UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL BIT(10)
-#define UNIWILL_FEATURE_USB_C_POWER_PRIORITY BIT(11)
-#define UNIWILL_FEATURE_KEYBOARD_BACKLIGHT BIT(12)
-#define UNIWILL_FEATURE_AC_AUTO_BOOT BIT(13)
-#define UNIWILL_FEATURE_USB_POWERSHARE BIT(14)
+/* Mutually exclusive with the cTGP control feature */
+#define UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY BIT(11)
+#define UNIWILL_FEATURE_USB_C_POWER_PRIORITY BIT(12)
+#define UNIWILL_FEATURE_KEYBOARD_BACKLIGHT BIT(13)
+#define UNIWILL_FEATURE_AC_AUTO_BOOT BIT(14)
+#define UNIWILL_FEATURE_USB_POWERSHARE BIT(15)
enum usb_c_power_priority_options {
USB_C_POWER_PRIORITY_CHARGING = 0,
@@ -1004,7 +1006,9 @@ static int uniwill_nvidia_ctgp_init(struct uniwill_data *data)
{
int ret;
- if (!uniwill_device_supports(data, UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL))
+ if (!uniwill_device_supports_any(data,
+ UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL |
+ UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY))
return 0;
ret = regmap_write(data->regmap, EC_ADDR_CTGP_DB_CTGP_OFFSET, 0);
@@ -2577,7 +2581,9 @@ static int uniwill_suspend_usb_powershare(struct uniwill_data *data)
static int uniwill_suspend_nvidia_ctgp(struct uniwill_data *data)
{
- if (!uniwill_device_supports(data, UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL))
+ if (!uniwill_device_supports_any(data,
+ UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL |
+ UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY))
return 0;
return regmap_clear_bits(data->regmap, EC_ADDR_CTGP_DB_CTRL,
@@ -2686,7 +2692,9 @@ static int uniwill_resume_usb_powershare(struct uniwill_data *data)
static int uniwill_resume_nvidia_ctgp(struct uniwill_data *data)
{
- if (!uniwill_device_supports(data, UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL))
+ if (!uniwill_device_supports_any(data,
+ UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL |
+ UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY))
return 0;
return regmap_set_bits(data->regmap, EC_ADDR_CTGP_DB_CTRL,
@@ -2910,7 +2918,7 @@ static struct uniwill_device_descriptor phxtqxx_phxagxx_phxaqxx_phxpgxx_descript
UNIWILL_FEATURE_GPU_TEMP |
UNIWILL_FEATURE_PRIMARY_FAN |
UNIWILL_FEATURE_SECONDARY_FAN |
- UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL |
+ UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY |
UNIWILL_FEATURE_USB_C_POWER_PRIORITY |
UNIWILL_FEATURE_KEYBOARD_BACKLIGHT,
.kbd_led_single_color = true,
@@ -3106,7 +3114,7 @@ static int phxarxx_phxaqxx_probe(struct uniwill_data *data)
if (value & HAS_GPU)
data->features |= UNIWILL_FEATURE_GPU_TEMP |
- UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL;
+ UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY;
return 0;
};
--
2.43.0
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: [PATCH] platform/x86: uniwill-laptop: Remove cTGP control from unsupported devices
2026-11-13 14:47 [PATCH] platform/x86: uniwill-laptop: Remove cTGP control from unsupported devices Werner Sembach
@ 2026-11-13 20:42 ` Armin Wolf
0 siblings, 0 replies; 2+ messages in thread
From: Armin Wolf @ 2026-11-13 20:42 UTC (permalink / raw)
To: Werner Sembach, Hans de Goede, Ilpo Järvinen
Cc: platform-driver-x86, linux-kernel
Am 13.11.26 um 15:47 schrieb Werner Sembach:
> Some devices like the InfinityBook Pro series have Dynamic Boost support,
> but the cTGP setting is actually ignored.
>
> This commit adds the ability to still initialize DB, but hide the noop cTGP
> sysfs attribute and applies this to the respective devices.
IMHO the cTGP setting only works with the official NVidia driver and
nvidia-powerd running in the background. Also there currently is a tiny
issue with cTGP support, do you have a acpidump from one of the affected
machines?
Thanks,
Armin Wolf
> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
> ---
> drivers/platform/x86/uniwill/uniwill-acpi.c | 26 ++++++++++++++-------
> 1 file changed, 17 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/platform/x86/uniwill/uniwill-acpi.c b/drivers/platform/x86/uniwill/uniwill-acpi.c
> index e2a6a704e942e..c0a75bc6e66db 100644
> --- a/drivers/platform/x86/uniwill/uniwill-acpi.c
> +++ b/drivers/platform/x86/uniwill/uniwill-acpi.c
> @@ -366,10 +366,12 @@
> #define UNIWILL_FEATURE_PRIMARY_FAN BIT(8)
> #define UNIWILL_FEATURE_SECONDARY_FAN BIT(9)
> #define UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL BIT(10)
> -#define UNIWILL_FEATURE_USB_C_POWER_PRIORITY BIT(11)
> -#define UNIWILL_FEATURE_KEYBOARD_BACKLIGHT BIT(12)
> -#define UNIWILL_FEATURE_AC_AUTO_BOOT BIT(13)
> -#define UNIWILL_FEATURE_USB_POWERSHARE BIT(14)
> +/* Mutually exclusive with the cTGP control feature */
> +#define UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY BIT(11)
> +#define UNIWILL_FEATURE_USB_C_POWER_PRIORITY BIT(12)
> +#define UNIWILL_FEATURE_KEYBOARD_BACKLIGHT BIT(13)
> +#define UNIWILL_FEATURE_AC_AUTO_BOOT BIT(14)
> +#define UNIWILL_FEATURE_USB_POWERSHARE BIT(15)
>
> enum usb_c_power_priority_options {
> USB_C_POWER_PRIORITY_CHARGING = 0,
> @@ -1004,7 +1006,9 @@ static int uniwill_nvidia_ctgp_init(struct uniwill_data *data)
> {
> int ret;
>
> - if (!uniwill_device_supports(data, UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL))
> + if (!uniwill_device_supports_any(data,
> + UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL |
> + UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY))
> return 0;
>
> ret = regmap_write(data->regmap, EC_ADDR_CTGP_DB_CTGP_OFFSET, 0);
> @@ -2577,7 +2581,9 @@ static int uniwill_suspend_usb_powershare(struct uniwill_data *data)
>
> static int uniwill_suspend_nvidia_ctgp(struct uniwill_data *data)
> {
> - if (!uniwill_device_supports(data, UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL))
> + if (!uniwill_device_supports_any(data,
> + UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL |
> + UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY))
> return 0;
>
> return regmap_clear_bits(data->regmap, EC_ADDR_CTGP_DB_CTRL,
> @@ -2686,7 +2692,9 @@ static int uniwill_resume_usb_powershare(struct uniwill_data *data)
>
> static int uniwill_resume_nvidia_ctgp(struct uniwill_data *data)
> {
> - if (!uniwill_device_supports(data, UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL))
> + if (!uniwill_device_supports_any(data,
> + UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL |
> + UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY))
> return 0;
>
> return regmap_set_bits(data->regmap, EC_ADDR_CTGP_DB_CTRL,
> @@ -2910,7 +2918,7 @@ static struct uniwill_device_descriptor phxtqxx_phxagxx_phxaqxx_phxpgxx_descript
> UNIWILL_FEATURE_GPU_TEMP |
> UNIWILL_FEATURE_PRIMARY_FAN |
> UNIWILL_FEATURE_SECONDARY_FAN |
> - UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL |
> + UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY |
> UNIWILL_FEATURE_USB_C_POWER_PRIORITY |
> UNIWILL_FEATURE_KEYBOARD_BACKLIGHT,
> .kbd_led_single_color = true,
> @@ -3106,7 +3114,7 @@ static int phxarxx_phxaqxx_probe(struct uniwill_data *data)
>
> if (value & HAS_GPU)
> data->features |= UNIWILL_FEATURE_GPU_TEMP |
> - UNIWILL_FEATURE_NVIDIA_CTGP_CONTROL;
> + UNIWILL_FEATURE_NVIDIA_DB_SUPPORT_ONLY;
>
> return 0;
> };
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-13 20:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-13 14:47 [PATCH] platform/x86: uniwill-laptop: Remove cTGP control from unsupported devices Werner Sembach
2026-11-13 20:42 ` Armin Wolf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®