STRUCT KOMEDA_COMPONENT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct komeda_component β€” a Kernel API Manual moment πŸ’…

okay bestie, welcome to the struct komeda_component(9) page πŸ’– this is from the Kernel API Manual, and it's genuinely one of those structs that's giving main character energy in the Arm display driver. it's a struct, it's a private obj, it's everything. let's get into it ✨


🌸 SYNOPSIS 🌸

struct komeda_component {
    struct drm_private_obj obj;
    struct komeda_pipeline *pipeline;
    char name[32];
    u32 __iomem *reg;
    u32 id;
    u32 hw_id;
    u8 max_active_inputs;
    u8 max_active_outputs;
    u32 supported_inputs;
    u32 supported_outputs;
    const struct komeda_component_funcs *funcs;
 };

like, look at her. eleven members, zero notes. slay πŸŽ€


πŸ¦‹ Members πŸ¦‹

  • obj β€” treat the component as a private obj, that's literally the whole vibe πŸ”₯
  • pipeline β€” the komeda pipeline this component belongs to, i.e. which family she's in πŸ’œ
  • name β€” the component name, cute little char name[32], 32 chars of pure identity πŸŽ€
  • reg β€” the component register base, which is initialized by chip and used by chip only. so like, not your business, that's chip's business πŸ™ˆ
  • id β€” the component id πŸ†”
  • hw_id β€” the component hw id, which is initialized by chip and used by chip only. again: chip-only zone, we don't touch πŸ’…
  • max_active_inputs, max_active_outputs β€” okay so this is the group-chat part, they share a description:

the maximum number of inputs/outputs that can be active at the same time 🫢

Note: the number isn't the bit number of supported_inputs or supported_outputs, but may be less than it, since the component may not support enabling all supported_inputs/supported_outputs at the same time. no cap, read that twice πŸ‘€
  • max_active_outputs β€” maximum number of outputs ✨
  • supported_inputs, supported_outputs β€” these two are also sharing, besties fr fr:

bitmask of BIT(component->id) for the supported inputs/outputs, and it describes the possibilities of how a component is linked into a pipeline 🌈

  • supported_outputs β€” bitmask of supported output componenet ids πŸ”₯ (yes, "componenet" β€” we keep the spelling exactly as it is, that's canon now, iykyk 😭)
  • funcs β€” the chip functions to access HW, const struct komeda_component_funcs *, don't lose the const bestie πŸ‘‘

✨ Description ✨

struct komeda_component describes the data flow capabilities for how to link a component into the display pipeline 🌸 and here's the iconic part: all specified components are subclass of this structure. like, every single one. no exceptions, periodt πŸ’€


πŸ” SEE ALSO πŸ”

  • Kernel file ./drivers/gpu/drm/arm/display/komeda/komeda_pipeline.h πŸ“
  • struct komeda_component_output(9)
  • struct komeda_component_state(9)
  • struct komeda_pipeline(9)
  • struct komeda_pipeline_state(9)

go read those too, they're literally the supporting cast and they ate 🫢


and that's the page!! source/version is ./drivers/gpu/drm/arm/display/... and the date on this one is October 2026 β€” so yeah, she's from the future, iconic behavior ⭐ bye bestie, go link some components πŸ’–πŸ§š

πŸ“¦ where this page comes from