All of lore.kernel.org
 help / color / mirror / Atom feed
From: sjunhyuk1@gmail.com
To: linux-usb@vger.kernel.org, platform-driver-x86@vger.kernel.org
Cc: "Heikki Krogerus" <heikki.krogerus@linux.intel.com>,
	"Hans de Goede" <hansg@kernel.org>,
	"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>
Subject: [BUG] HP OMEN Transcend 14 (board 8E41): GPU power ceiling on 65W USB-C charger is non-deterministic across sessions (25W vs ~65W)
Date: Tue, 22 Sep 2026 15:23:12 -0400	[thread overview]
Message-ID: <20260922192312.40607-1-sjunhyuk1@gmail.com> (raw)

Reporting a non-deterministic GPU power ceiling on a 65W USB-C charger,
in case it's useful alongside other recent reports of EC/PD-controller
firmware state issues (Legion Pro 7 16IAX10H, ASUS Vivobook K3605ZV).
I'm not certain this belongs to USB Type-C / UCSI rather than hp-wmi,
so I've sent it to both lists; happy to be redirected.

System
------
Model:  HP OMEN Transcend Gaming Laptop 14-fb1013dx (B94GQUA#ABA)
Board:  8E41
BIOS:   F.05 (confirmed latest via fwupd/LVFS)
GPU:    NVIDIA GeForce RTX 5060 Laptop GPU, VBIOS 98.06.2A.80.62
Driver: NVIDIA Open 610.57.04
Kernel: 7.2.5-3 (Arch, Omarchy)

Symptom
-------
On the OEM-rated 65W USB-C charger, nvidia-smi's "Current Power Limit"
lands on either 25.00W or ~60-65W depending on the boot/reconnect
session, and stays fixed at whichever value for the rest of that
session. A 140W charger reliably gives 50W (VBIOS default TGP);
battery-only reliably gives 40W. Confirmed under gpu_burn 100% load in
both 65W-charger outcomes:

  25W outcome:  24.7-25.5W draw, clock unstable 200-500MHz
  65W outcome:  59.4-64.9W draw, clock stable 1630-1860MHz

Which outcome a given session lands on appears session-scoped, not a
fixed hardware fault: the same physical charger, same port, same
cable produces either result depending on boot/reconnect history.

Ruled out
---------
- Kernel version: same kernel (7.2.5-3-omarchy) produced both the 25W
  and 65W outcomes on different boots.
- Battery charge state: tested 0%, 79%, 98%, 100% within one boot
  session, all still 25W.
- BIOS setting/update: F.05 confirmed latest via fwupd/LVFS; no
  relevant USB-C/adapter option in BIOS setup.
- ucsi_acpi driver presence: blacklisted it entirely, then re-ran the
  known-bad trigger (hot-swap the charger while powered on) - still
  landed on 25W. So the driver being loaded/unloaded is not itself
  the deciding factor.
- HP WMI GPU boost flags (commandtype 0x21/0x22 under command
  HPWMI_GM in hp-wmi.c, the CTGP/PPAB fields of struct
  victus_gpu_power_modes): wrote a read-only probe module issuing
  only the 0x21 GET across all four power states (battery/25W/65W/
  140W-triggered-50W). Raw response was byte-identical (00 01 01 57)
  in every state.
- HP WMI legacy "Smart Adapter" query (commandtype 0x0F under command
  HPWMI_READ; not defined in mainline hp-wmi.c's enum
  hp_wmi_commandtype, but present in a third-party Windows tool as a
  "smart power adapter status" query): also GET-only, also
  byte-identical (05 1c 1c 0d) between the 25W and 65W states.

Workarounds found
------------------
1. Full poweroff, physically unplug/replug the charger, then power
   on. Reliably restores ~65W in testing so far (recovers even from a
   25W-clamped state). An OS reboot alone, with the charger left
   connected, does not help; nor does hot-swapping the charger while
   powered on (that's actually the known trigger for landing on 25W).

2. Live driver reload with no reboot:
       sudo modprobe -r ucsi_acpi && sudo modprobe ucsi_acpi
   From a ~50W "in-between" state reached via a hot-swap, this
   recovered to 65W in 2/2 attempts within a few seconds. From the
   classic 25.00W clamp, it did not help in 2/2 attempts. A
   battery-only control (40W, no charger) showed no change either
   way, suggesting the effect is specific to USB-C PD renegotiation
   rather than a general power-limit reset - but it is clearly not a
   general substitute for (1).

Separately, this board also reproduces the NPCF ACPI-binding issue
described in NVIDIA/open-gpu-kernel-modules#1162 (Power Management
Object stays N/A, Dynamic Boost above the 50W base TGP never
activates) - confirmed via acpidump/iasl decompile, same topology and
field structure as reported there for board 8D40. That explains why
>50W boost never works here, but Power Management Object reads N/A in
both the 25W and 65W states, so it doesn't explain this particular
25W/65W split.

Full write-up with raw capture data:
https://claude.ai/artifact/WDAN76AWk1JpW49ZSGc2Cr

Happy to gather more diagnostics (EC register snapshots, more repro
counts, anything else useful) if that would help narrow this down.

             reply	other threads:[~2026-09-22 19:23 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-22 19:23 sjunhyuk1 [this message]
2026-09-22 21:32 ` [BUG] HP OMEN Transcend 14 (board 8E41): GPU power ceiling on 65W USB-C charger is non-deterministic across sessions (25W vs ~65W) sjunhyuk1
2026-09-24 15:58 ` Krishna Chomal
2026-09-25 13:41   ` [BUG] HP OMEN Transcend 14 (board 8E41): GPU power ceiling on 65W USB-C charger is non-deterministic BurningHoryd
2026-09-26  5:35     ` Krishna Chomal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260922192312.40607-1-sjunhyuk1@gmail.com \
    --to=sjunhyuk1@gmail.com \
    --cc=hansg@kernel.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=ilpo.jarvinen@linux.intel.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.