fix: recover CEC and guard inactive source for DP > HDMI Adaptors#2
Draft
xXJSONDeruloXx wants to merge 1 commit into
Draft
fix: recover CEC and guard inactive source for DP > HDMI Adaptors#2xXJSONDeruloXx wants to merge 1 commit into
xXJSONDeruloXx wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
this fixes two related CEC issues on systems using a dGPU DisplayPort path with an active DP to HDMI adaptor (possibly also with pulse8 adaptor under input-attach as well), tested on an HTPC a 9070 XT and a green active DP > HDMI adaptor.
with upstream, after system resume the CEC device / connector state can still be settling when
cecdstarts normal wake traffic. that showed up as intermittent early CEC NACKs and unreliable source assertion. upstream also sendsInactive Sourcebefore deciding whether to sendStandby. with my TV that can briefly put the TV to sleep and then immediately route it back to its previous HDMI input instead of leaving it asleep.this PR makes a few minor changes to mitigate the inherent timing issues active DP dongles introduce to the stack:
Image View OnandActive Source, avoiding the early post-resume source assertion race seen on the active adaptor pathsuspend_tv = true, sendStandbyonly (fixes re-wake and switch to previous source on my tested TVs, do let me know if this is too opinionated or a config value here is justified)Inactive SourceorStandby, so suspending the PC does not disturb whatever the TV is currently showing (mirrors upstream, now explicit given the new case above)Inactive Sourceto release the sourceStandbyTesting:
Inactive Sourcebehavior briefly put the TV to sleep and then snapped it back to HDMI 1. this standby policy change fixes that)wake_tv = trueBONUS: testing w pulse8 hdmi adaptor:
this one is a bit of a different case, instead of exposing
/dev/cec0directly, this device plugs into the usb port of the motherboard, and appears asttyACM1.testing only the changes here for cecd, I do see the positive fix for suspend behavior. upstream on pc suspend will sleep TV briefly and then wake it back to previous source, but with patched policy tv sleeps as expected.
on pc wake while tv is suspended, its currently not waking tv and switching to correct input, because the
inputattachunit restarts but kernel prob seems to time out, so no /dev/cec0 gets bound and cecd deregistersfix will be needed separately for the wake and bind path in https://gitlab.steamos.cloud/holo/inputattach-cec-units/-/tree/main?ref_type=heads or a mirror for OGC