Repository navigation
drm: apple: free a DP tunnel route when its HPD release times out - #460
Open
coffeejunk wants to merge 1 commit into
Open
coffeejunk wants to merge 1 commit into
coffeejunk wants to merge 1 commit into
Conversation
dcp_tb_release_locked() keeps the route when dcp_dptx_disconnect_oob() fails, expecting a later tunnel request on the port to release it. On unplug, apple_dpin_release_binding() calls the release once and does not retry. The route then holds its pipeline until reboot. dcp_dptx_disconnect_oob() fails this way when DCP's DPTX service stops responding and dptxport_set_hpd() returns -ETIMEDOUT. T8112 has a single external pipeline, and any other display is then refused: apple-dcp 271c00000.dcp: display on USB-C Left-front waits for a free external display pipeline ... Treat -ETIMEDOUT as a completed release and free the route. Tested on J413 with an LG UltraFine 5K and a faulty Thunderbolt cable.
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.
dcp_tb_release_locked()keeps the route whendcp_dptx_disconnect_oob()fails, expecting a later tunnel request on the port to release it. On unplug,apple_dpin_release_binding()calls the release once and does not retry. The route then holds its pipeline until reboot.dcp_dptx_disconnect_oob()fails this way when DCP's DPTX service stops responding anddptxport_set_hpd()returns-ETIMEDOUT. T8112 has a single external pipeline, and any other display is then refused. A DP-alt display on the other port gets-ENOSPCfrom the mux:Treat
-ETIMEDOUTas a completed release: calldcp_dptx_disconnect()to release the DPTX port, then deactivate the route as on success. Other errors keep the route, as before.Testing
J413 on
b798f2bplus the t8112 PCIe-C patches from #143, with an LG UltraFine 5K on a faulty Thunderbolt cable that drops the link during DP tunnel setup. Each attach times out on HPD, and the route is freed:After unplugging the 5K, an Apple USB-C HDMI adapter on the same port gets the external pipeline: