Bug Report: asusctl 6.3.0 causes HID driver failure on ASUS ROG Flow Z13 (GZ302)

After upgrading from asusctl 6.2.0 to 6.3.0, the system fails to boot properly. The ASUS HID driver fails to initialize with ENOMEM (-12) errors, resulting in a black screen that requires a hard reset. Downgrading to asusctl 6.2.0 resolves the issue.

Environment

Component Version
Device ASUS ROG Flow Z13 (GZ302EA)
CPU AMD Ryzen AI MAX+ 395 (Strix Halo)
OS CachyOS Linux
Kernel 6.18.6-2-cachyos
asusctl (broken) 6.3.0-0.1
asusctl (working) 6.2.0-0.1

ASUS HID Devices

Bus 003 Device 003: ID 0b05:1a30 ASUSTek Computer, Inc. GZ302EA-Keyboard

Bus 003 Device 004: ID 0b05:18c6 ASUSTek Computer, Inc. N-KEY Device

Symptoms

  1. System update includes asusctl 6.2.0 → 6.3.0
  2. On reboot, screen goes black shortly after boot (~10 seconds into boot)
  3. System becomes completely unresponsive
  4. Hard reset required
  5. Issue persists across multiple reboots
  6. Downgrade to 6.2.0 resolves the issue completely

Error Logs

From journalctl -b -p err during failed boot:

Jan 19 20:06:36 cachyos kernel: asus 0003:0B05:1A30.0005: Asus input not registered

Jan 19 20:06:36 cachyos kernel: asus 0003:0B05:1A30.0005: probe with driver asus failed with error -12

Jan 19 20:06:36 cachyos kernel: asus 0003:0B05:1A30.0002: Asus input not registered

Jan 19 20:06:36 cachyos kernel: asus 0003:0B05:1A30.0002: probe with driver asus failed with error -12

Jan 19 20:06:36 cachyos kernel: asus 0003:0B05:18C6.0007: Asus input not registered

Jan 19 20:06:36 cachyos kernel: asus 0003:0B05:18C6.0007: probe with driver asus failed with error -12

The error code -12 is ENOMEM (out of memory), suggesting a memory allocation failure during HID driver initialization.

Analysis

The issue appears to be a race condition or resource contention between the hid_asus kernel driver and asusd during early boot. Both are trying to access the same HID devices simultaneously, and with asusctl 6.3.0, this results in memory allocation failures.

The failure affects all three ASUS HID endpoints:

  • 0B05:1A30 - GZ302EA-Keyboard (appears twice, likely keyboard + touchpad)
  • 0B05:18C6 - N-KEY Device (RGB controller)

Workaround

Downgrade to asusctl 6.2.0:

sudo pacman -U /var/cache/pacman/pkg/asusctl-6.2.0-0.1-x86_64.pkg.tar.zst

Additional Notes

  • The asusd.service has a 1-second sleep in ExecStartPre, but this doesn't seem sufficient
  • Even with 6.2.0, there's a warning about failing to initialize the 18c6 shared HID handle, but the system boots successfully
  • Kernel parameters include GPU stability fixes: amdgpu.gpu_recovery=1 pcie_aspm=off amdgpu.dcdebugmask=0x400 amdgpu.sg_display=0

Request

Please investigate what changed in asusctl 6.3.0 that could cause this HID initialization failure. Possible areas to check:

  1. Changes to HID device opening/locking logic
  2. Changes to early initialization timing
  3. Memory allocation patterns during startup