Runtime D3 (RTD3) disabled on Lenovo LOQ 15IAX9 due to SBIOS NV_ERR_INVALID_DATA (0x25) in platform_request_handler_ctrl.c (Driver 615.78.08)

Open
#1,489 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
c, linux

Research direction

Start by examining the reported PlatformRequestHandler failures at platform_request_handler_ctrl.c:2118 and :2175, then trace how those errors lead to Runtime D3 being marked unsupported. Reproduce on the Lenovo LOQ 15IAX9 with driver 615.78.08 and inspect the attached nvidia-bug-report log. Done means the GPU can enter Runtime D3 when idle despite the SBIOS returning NV_ERR_INVALID_DATA.

Written by the indexing model from the issue text.

Description

bug
NVIDIA Open GPU Kernel Modules Version

615.78.08

Please confirm this issue does not happen with the proprietary driver (of the same version). This issue tracker is only for bugs specific to the open kernel driver.
  • I confirm that this does not happen with the proprietary driver package.
Operating System and Version

CachyOS

Kernel Release

7.3.0-4-cachyos #1 SMP PREEMPT_DYNAMIC Fri, 23 Oct 2026 15:03:58 +0000 x86_64 GNU/Linux

Please confirm you are running a stable release kernel (e.g. not a -rc). We do not accept bug reports for unreleased kernels.
  • I am running on a stable kernel release.
Hardware: GPU

GPU 0: NVIDIA GeForce RTX 3050 6GB Laptop GPU (UUID: GPU-7181b4f5-7620-7aa1-e059-5b3dc0b5c465)

Describe the bug

On the Lenovo LOQ 15IAX9 (Intel i5-12600HX + RTX 3050 Laptop GPU), the discrete GPU fails to transition into Runtime D3 (D3cold) and remains permanently stuck idling in D0/P8 state (consuming ~3.18W).

During driver initialization, calls to PlatformRequestHandler fail because the SBIOS returns NV_ERR_INVALID_DATA (0x00000025) when querying target temperature and platform power modes (platform_request_handler_ctrl.c:2175 and platform_request_handler_ctrl.c:2118). Following this assertion failure, the driver marks Runtime D3 status: Not supported in /proc/driver/nvidia/gpus/0000:01:00.0/power.

This occurs despite user-space and kernel configurations being set correctly (NVreg_DynamicPowerManagement=0x02, udev runtime PM rules active, companion HD audio controller entering suspended/D3hot, and PCIe upstream bridge 0000:00:01.0 having d3cold_allowed=1).

To Reproduce

Markdown

  1. Boot a Lenovo LOQ 15IAX9 laptop (Intel Core i5-12600HX, RTX 3050 6GB Laptop GPU) into Linux with nvidia-open (version 615.78.08).
  2. Configure fine-grained dynamic power management in /etc/modprobe.d/nvidia.conf:
    options nvidia NVreg_DynamicPowerManagement=0x02
    
     Set runtime PM to auto for upstream PCIe root port (0000:00:01.0), GPU (0000:01:00.0), and audio (0000:01:00.1) via udev rules.
    
     Ensure no display server or application holds open references to the discrete GPU (fuser /dev/nvidia* is clean).
    
     Inspect driver runtime power interface:
     Bash
    
     cat /proc/driver/nvidia/gpus/0000:01:00.0/power
    
     Observe that Runtime D3 status reports Not supported.
    
     Inspect the kernel log:
     Bash
    
     sudo dmesg | grep -i PlatformRequestHandler
    
     Observe the assertion failures: NV_ERR_INVALID_DATA (0x00000025) returned from PlatformRequestHandler at platform_request_handler_ctrl.c:2175 and platform_request_handler_ctrl.c:2118.
    
    
    
Bug Incidence

Always

nvidia-bug-report.log.gz

nvidia-bug-report.log.gz

More Info
Expected Behavior

When idle and with no active clients holding /dev/nvidia*, the discrete GPU should transition into Runtime D3 (D3cold) state to save power (~0W). Failure to retrieve platform target temperature or power modes from SBIOS (0x00000025 / NV_ERR_INVALID_DATA) should gracefully fall back to default driver thermal/power limits or be bypassed via a quirk, rather than completely disabling Runtime D3 platform support.

Additional Information
  • The companion HD Audio controller (0000:01:00.1) enters D3hot / suspended without issue.
  • The upstream root port (0000:00:01.0) has d3cold_allowed=1 and ASPM is active.
  • Under Windows on the exact same hardware, the dGPU powers down fully to D3cold / 0W, verifying that the hardware power-gating rails are fully capable of D3cold.
  • Tested with both standard and custom ACPI OSI parameters (e.g., acpi_osi="Windows 2022"), but the SBIOS continues to return 0x25 to PlatformRequestHandler calls in Linux.
Dominant language
C
Stars
17.5k
Forks
1.9k
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from NVIDIA/open-gpu-kernel-modules

All issues in NVIDIA/open-gpu-kernel-modules

Similar issues

More C issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.