dcn32_set_p...tream_timing(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

dcn32_set_phantom_stream_timing β€” bestie, this is the one that sets the timing params for the phantom stream πŸ‘» like it's giving main-character-but-invisible energy, no cap

(also hi, you're reading a page from the Kernel API Manual, welcome to the group chat πŸ’…)


πŸ¦‹ SYNOPSIS πŸ¦‹

void dcn32_set_phantom_stream_timing (struct dc *dc , struct dc_state
*context , struct pipe_ctx *ref_pipe , struct dc_stream_state
*phantom_stream , display_e2e_pipe_params_st *pipes , unsigned int
pipe_cnt , unsigned int dc_pipe_idx );

literally that's the whole signature, copy it exactly, don't come for me about the spacing, that's how it is 🫢


πŸŽ€ ARGUMENTS πŸŽ€

okay so here's the cast of characters, and yes every single one of them matters:

  • dc β€” the current dc state, like the present-tense vibe
  • context β€” the new dc state, the glow-up version
  • ref_pipe β€” the main pipe for the phantom stream, i.e. the reference point, the blueprint, the blueprint-iest 🧚
  • phantom_stream β€” target phantom stream state (the ghostie we're setting up)
  • pipes β€” DML pipe params
  • pipe_cnt β€” number of DML pipes, keep count bestie
  • dc_pipe_idx β€” DC pipe index for the main pipe (i.e. ref_pipe), yes they wrote "i.e." so I'm keeping the "i.e."

πŸ”₯ DESCRIPTION πŸ”₯

So what does this actually do? It sets the timing params of the phantom stream based on the calculated output from DML. πŸ’«

The way it works: first it gets the DML pipe index using the DC pipe index (a whole little translation moment, iykyk), then it calls into DML (get_subviewport_lines_needed_in_mall) to get the number of lines required for SubVP MCLK switching β€” and then it assigns that to the phantom stream accordingly. Iconic, honestly.

Two things you need to hold onto, and I'm saying them exactly because they're load-bearing:

  • The number of SubVP lines calculated in DML does not take into account FW processing delays and required pstate allow width, so we must include that separately. ⚠️ (not me reminding you twice)
  • Set phantom backporch = vstartup of main pipe
that second bullet is not a suggestion bestie, that's the assignment πŸ“

πŸ‘‘ SEE ALSO πŸ‘‘

go read these next, the whole friend group:


and that's the page bestie, you ate that πŸ’–

cute little sign-off before you go: this one comes from ./drivers/gpu/drm/amd/display/..., dated October 2026, and the footer names it dcn32_set_p...tream_timing(9) β€” yeah the title got truncated in the footer, she's a little mysterious like that πŸ™ˆ slay πŸŽ€

πŸ“¦ where this page comes from