Linux USB
 help / color / mirror / Atom feed
From: bugzilla-daemon@kernel.org
To: linux-usb@vger.kernel.org
Subject: [Bug 221977] New: ucsi_acpi PPM_RESET timeout on ASUS Zenbook UX425UA/UM425UA (AMD Renoir) - not fixed by poll_cci or timeout increase, tested extensively
Date: Mon, 07 Sep 2026 01:56:58 +0000	[thread overview]
Message-ID: <bug-221977-208809@https.bugzilla.kernel.org/> (raw)

https://bugzilla.kernel.org/show_bug.cgi?id=221977

            Bug ID: 221977
           Summary: ucsi_acpi PPM_RESET timeout on ASUS Zenbook
                    UX425UA/UM425UA (AMD Renoir) - not fixed by poll_cci
                    or timeout increase, tested extensively
           Product: Drivers
           Version: 2.5
          Hardware: AMD
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P3
         Component: USB
          Assignee: drivers_usb@kernel-bugs.kernel.org
          Reporter: sax69sax420@gmail.com
        Regression: No

SYSTEM
  ------
  ASUS Zenbook 14 UX425UA/UM425UA, AMD Ryzen 7 5700U (Renoir), BIOS
  UX425UA.301 (2021, latest available). Ubuntu 24.04, kernel
  6.8.0-124-generic. Dual-boot with Windows 10 (works correctly there,
  see below).

  ERROR
  -----
  Every boot, and every subsequent module reload:

    ucsi_acpi USBC000:00: error -ETIMEDOUT: PPM init failed

  /sys/class/typec/ never populates. USB-C charging itself works fine
  (confirmed via direct wattage logging) - this only affects PD
  telemetry, alt-mode, and role-switching.

  WHAT I'VE ALREADY TESTED (all negative)
  ----------------------------------------
  1. Timeout increase: built a signed DKMS module with UCSI_TIMEOUT_MS
     patched 5000 -> 30000 (6x default, 3x the merged 10000 fix).
     Confirmed via source inspection that -ETIMEDOUT is only ever set
     after the real elapsed-time check in ucsi_reset_ppm() fires, so
     this is a genuine 30-second wait, not an early bail-out. Still
     times out identically.

  2. Polling frequency, isolated as its own variable: same 30s budget,
     but msleep(20) -> msleep(200) in the ucsi_reset_ppm() loop (~150
     EC/_DSM hits instead of ~1500), to test whether rapid _DSM/EC-mutex
     polling itself was the blocker rather than total patience. Still
     times out identically.

  3. Current mainline behavior: diffed 6.8's ucsi.c/ucsi_acpi.c against
     current master. The poll_cci() rewrite (976e7e9bdc77) and timeout
     increase (bf4f9ae1cb08) are both present there. For the ACPI
     backend specifically, ucsi_acpi_poll_cci() still forces a _DSM
     read on every call during PPM_RESET - functionally identical to
     what I already tested in #1. So current mainline would not behave
     differently here.

  4. The old ASUS Zenbook quirk (ucsi_zenbook_ops, for the near-identical
     "UX325UA_UM325UA" model): checked in source - during PPM_RESET
     specifically, the quirked and generic read paths are identical
     (both force _DSM every read), so this was never going to apply
     regardless of the DMI mismatch. (Also since removed upstream,
     folded into the poll_cci rewrite.)

  5. Boot path: tested booting via two different methods into the OS,
     in case boot-manager timing mattered. No difference.

  6. Device presence: tested with the charger completely unplugged from
  WINDOWS COMPARISON
  -------------------
  Booting the same machine into Windows 10, Device Manager shows the
  identical \_SB.UBTC ACPI object (confirmed via DEVPKEY_Device_
  BiosDeviceName) healthy, ProblemCode 0, using Microsoft's generic
  in-box UcmUcsiAcpiClient.sys (not an OEM driver). I compared its
  public reference sample source (microsoft/Windows-driver-samples,
  UcmUcsiAcpiSample) against ucsi_acpi.c's low-level read/write code -
  both call _DSM before every register access, in the same order. No
  structural difference found at that layer. The actual retry/
  completion logic that must differ lives in the closed-source
  UcmUcsiCx.sys class extension, which I have no visibility into.

  RELATED
  -------
  This looks like the same class of failure as Bug 219590, where the
  reporting maintainer's own affected laptop was also not fixed by
  either of the two 2025 patches ("in my case it unfortunately didn't
  help" - comment #9). Reporting this as what looks like a second,
  independently-confirmed case of the same "not fixed by known fixes"
  outcome, with a slightly wider set of variables tested (specifically
  the polling-frequency isolation in #2, which I haven't seen tested
  elsewhere).

  Happy to run further diagnostics if anyone has a specific next test
  in mind - I've documented the exact ACPI tables and mechanism (_DSM
  UUID 6f8398c2-7ca4-11e4-ad36-631042b5008f, \_SB.UBTC device, 48-byte
  SystemMemory OperationRegion mailbox) and can reproduce any test
  reliably given the DKMS/MOK pipeline is already set up on this
  machine.

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.

                 reply	other threads:[~2026-09-07  1:56 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=bug-221977-208809@https.bugzilla.kernel.org/ \
    --to=bugzilla-daemon@kernel.org \
    --cc=linux-usb@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox