komeda_comp...and_set_user(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… komeda_component_get_state_and_set_user β€” NAME ✨

okay so this is <pink>komeda_component_get_state_and_set_user</pink> from the Kernel API Manual, and bestie it does exactly what it says on the tin β€” it grabs a component state and sets a user on it. iconic behavior honestly.


🌸 SYNOPSIS 🌸

struct komeda_component_state * komeda_component_get_state_and_set_user
(struct komeda_component *c , struct drm_atomic_commit *state , void
*user , struct drm_crtc *crtc );

πŸŽ€ ARGUMENTS πŸŽ€

  • c β€” the component we're getting the state for and setting the user on. the main character of this whole operation, fr fr.
  • state β€” the global atomic state. big picture vibes.
  • user β€” the direct user, a.k.a. the binding user. your everyday bestie.
  • crtc β€” the CRTC user. the big boss :) πŸ‘‘

πŸ¦‹ DESCRIPTION πŸ¦‹

so this function accepts two users, and you gotta know both of them:

  • The direct user πŸ’– β€” can be plane/crtc/wb_connector depending on the component. it's giving "it depends" energy.
  • The big boss (CRTC) πŸ‘‘ β€” the CRTC is the big boss (the final user), because literally all component resources eventually get assigned to the CRTC. like, the layer will be binding to kms_plane, but the kms plane will be binding to a CRTC eventually. it always comes back to the CRTC. periodt.

the big boss (CRTC) is also there for pipeline assignment, since komeda_component isn't independent β€” it can't just be assigned to a CRTC freely. nope. it belongs to a specific pipeline. only the pipeline itself can be shared between CRTCs, and the pipeline as a whole (including all the internal components) gets assigned to a specific CRTC. no cap.

so when you set a user to komeda_component, you need to first check the status of component->pipeline to see if the pipeline is even available on this specific CRTC. πŸ™ˆ

⚠️ okay this is the important part, bestie: if the pipeline is busy (assigned to another CRTC), then even if the required component is totally free, the component still cannot be assigned to the direct user. like, it's just not happening. the vibe check failed. πŸ’€

⭐ SEE ALSO ⭐

Kernel file ./drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c β€” go read it, iykyk 🧚


and that's the whole page, bestie!! 🫢 this lil drop came from ./drivers/gpu/drm/arm/display/..., dated October 2026, and it's filed under komeda_comp...and_set_user(9). slay, go forth and set those users πŸ’…βœ¨

πŸ“¦ where this page comes from