STRUCT VKMS_CONFIG_ENCODER(9)
π struct vkms_config_encoder(9) π
okay so this is a page from the Kernel API Manual and it's all about struct vkms_config_encoder β the little data structure that holds down the encoder side of a VKMS config. no cap, it's short, but every field matters, so let's get into it bestie π
π NAME π
struct vkms_config_encoder β literally the struct itself. that's the whole name section. iconic minimalism, we respect it β¨
πΈ SYNOPSIS πΈ
here's the shape of it, exactly as it lives:
struct vkms_config_encoder {
struct list_head link;
struct vkms_config *config;
struct xarray possible_crtcs;
struct drm_encoder *encoder;
};
four fields, zero fluff, she's serving structure π«Ά
π Members π
linkβ the link to the other encoders insidevkms_config. think of it as her little handhold in the group chat of encoders πconfigβ thevkms_configthis CRTC belongs to. (yes, the docs literally say CRTC here even though we're talking about an encoder β not me pointing it out, i'm just the messenger π but that's what it says, verbatim.)possible_crtcsβ an array of CRTCs that can be used with this encoder. the potential-besties list, fr fr π¦encoderβ internal usage only, and this part is serious: this pointer should never be considered valid. it can be used to store a temporary reference to a VKMS encoder during device creation. this pointer is not managed by the configuration and must be managed by other means. so likeβ¦ do not get attached, she's temporary π
bestie i mean it β that encoder pointer is a situationship. use it, don't trust it π
π SEE ALSO π
Kernel file ./drivers/gpu/drm/vkms/vkms_config.h, plus the whole extended universe:
struct vkms_config(9)struct vkms_config_plane(9)struct vkms_config_crtc(9)struct vkms_config_connector(9)vkms_config_for_each_plane(9)vkms_config_for_each_crtc(9)vkms_config_for_each_encoder(9)vkms_config_for_each_connector(9)vkms_config_plane_for_each_possible_crtc(9)vkms_config_encoder_for_each_possible_crtc(9)vkms_config_connector_for_each_possible_encoder(9)vkms_config_create(9)vkms_config_default_create(9)vkms_config_destroy(9)vkms_config_get_device_name(9)vkms_config_get_num_crtcs(9)vkms_config_is_valid(9)vkms_config_register_debugfs(9)vkms_config_create_plane(9)vkms_config_destroy_plane(9)vkms_config_plane_set_type(9)vkms_config_plane_get_default_pipeline(9)vkms_config_plane_set_default_pipeline(9)vkms_config_plane_attach_crtc(9)vkms_config_plane_detach_crtc(9)vkms_config_create_crtc(9)vkms_config_destroy_crtc(9)vkms_config_crtc_get_writeback(9)vkms_config_crtc_set_writeback(9)vkms_config_crtc_primary_plane(9)vkms_config_crtc_cursor_plane(9)vkms_config_create_encoder(9)vkms_config_destroy_encoder(9)vkms_config_encoder_attach_crtc(9)vkms_config_encoder_detach_crtc(9)vkms_config_create_connector(9)vkms_config_destroy_connector(9)vkms_config_connector_attach_encoder(9)vkms_config_connector_detach_encoder(9)vkms_config_connector_get_status(9)vkms_config_connector_set_status(9)
that's the whole page, bestie β go forth and configure your encoders responsibly β¨π
signed off with love from ./drivers/gpu/drm/vkms, dated October 2026 β same title, same page name, same everything, just with way more sparkle ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms