Skip to content

dp: scope virtual sink caps to forced connectors#1196

Open
Rohithmatham12 wants to merge 1 commit into
NVIDIA:mainfrom
Rohithmatham12:dp-virtual-sink-caps
Open

dp: scope virtual sink caps to forced connectors#1196
Rohithmatham12 wants to merge 1 commit into
NVIDIA:mainfrom
Rohithmatham12:dp-virtual-sink-caps

Conversation

@Rohithmatham12

Copy link
Copy Markdown

Summary

  • Add a DP-library-visible virtual sink DPCD fallback flag.
  • Set that flag only when NVKMS handles a force-connected DPLib connector that has no plugged DP device.
  • Use synthesized DPCD/DSC/FEC/HDR capabilities only while that virtual-sink fallback flag is set.
  • Leave ordinary failed DPCD reads on physical DP sinks on the existing error path.

This is a scoped variant of the DP headless/virtual-display approach discussed in #1195. The goal is to support force-enabled DP connectors with EDID overrides for headless Sunshine/Moonlight-style streaming, while keeping the fake capability path limited to the explicit force-connected virtual sink case.

Why

PR #1195 reports successful hardware validation for a force-enabled DP connector with no physical sink, but its current implementation falls back to fake DPCD caps on any failed caps read. That fixes the headless case, but it may be broader than necessary for physical DP sinks with transient AUX failures.

This version threads an explicit virtual-sink fallback state from the pRequest->forceConnected + unplugged DPLib path into the DP library, and gates the fake DPCD/DSC/FEC/VSC colorimetry behavior on that state.

Testing

  • git diff --check
  • make -C kernel-open -n modules
    • Reached the kernel build handoff and then stopped in this macOS workspace because /lib/modules/25.5.0/build is not present.

I do not have the affected headless DisplayPort setup locally. This needs reporter or maintainer validation with a force-enabled DP connector using drm.edid_firmware=DP-*:edid/<file> video=DP-*:e, especially checking:

  • 3840x2160@120 appears and sets on the forced DP connector.
  • HDR enables on the forced DP connector.
  • Default physical DP monitor behavior remains unchanged.
  • Physical DP sinks with working DPCD/AUX do not take the virtual fallback path.

Related to #1195 and #1184.

@Rohithmatham12

Copy link
Copy Markdown
Author

@HarryAnkers I opened this as a narrower variant of the DP virtual-sink approach from #1195.

The main difference is scoping: instead of using fake DPCD/DSC/FEC/HDR capabilities for any failed DPCD caps read, this only enables them when NVKMS is handling a force-connected DPLib connector with no plugged DP device. The goal is to preserve the 4K120/HDR headless DP behavior you validated, while keeping normal physical DP sink behavior on the existing path.

If you can test this branch on the same setup, the key checks would be whether 3840x2160@120 appears/sets, HDR enables, and your physical DP monitor regression check still behaves normally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant