STRUCT NOUVEAU_I2C_ENCODER_FUNCS(9)
π struct nouveau_i2c_encoder_funcs(9) π
okay bestie, welcome to the Kernel API Manual β this is the page for struct nouveau_i2c_encoder_funcs, and it's basically the lil' contact list of entry points that an I2C encoder driver exposes. think of it as the encoder driver's group chat bio. no cap. β¨
πΈ NAME πΈ
struct nouveau_i2c_encoder_funcs β the entry points exposed by an I2C encoder driver. literally that's the whole vibe. π¦
β¨ SYNOPSIS β¨
struct nouveau_i2c_encoder_funcs {
void (*set_config)(struct drm_encoder *encoder, void *params);
void (*destroy)(struct drm_encoder *encoder);
void (*dpms)(struct drm_encoder *encoder, int mode);
void (*save)(struct drm_encoder *encoder);
void (*restore)(struct drm_encoder *encoder);
bool (*mode_fixup)(struct drm_encoder *encoder, const struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode);
int (*mode_valid)(struct drm_encoder *encoder, const struct drm_display_mode *mode);
void (*mode_set)(struct drm_encoder *encoder, struct drm_display_mode *mode, struct drm_display_mode *adjusted_mode);
enum drm_connector_status (*detect)(struct drm_encoder *encoder, struct drm_connector *connector);
int (*get_modes)(struct drm_encoder *encoder, struct drm_connector *connector);
int (*create_resources)(struct drm_encoder *encoder, struct drm_connector *connector);
int (*set_property)(struct drm_encoder *encoder, struct drm_connector *connector, struct drm_property *property, uint64_t val);
};
every single one of those function pointers is a whole personality, and we're gonna meet them one by one. π
π«Ά Members π«Ά
set_configβ initialize any encoder-specific modesetting parameters. the meaning of theparamsparameter is implementation dependent, so don't come at me asking what it should be β it's usually a structure with DVO port data format settings or timings. also, plot twist: it's not required for the new parameters to take effect until the next mode is set. ikyk. πdestroyβ analogous to thedrm_encoder_funcsdestroycallback. it's the goodbye-homie callback. πdpmsβ analogous to thedrm_encoder_helper_funcsdpmscallback.saveβ save state. wrapped bynouveau_i2c_encoder_save. bestie it's literally getting saved, like a draft before you close the app πrestoreβ restore state. wrapped bynouveau_i2c_encoder_restore. the comeback arc. πmode_fixupβ analogous to thedrm_encoder_helper_funcsmode_fixupcallback. wrapped bynouveau_i2c_encoder_mode_fixup.mode_validβ analogous todrm_encoder_helper_funcsmode_valid. vibe check for modes, honestly. βmode_setβ analogous to thedrm_encoder_helper_funcsmode_setcallback.detectβ analogous to thedrm_encoder_helper_funcsdetectcallback. wrapped bynouveau_i2c_encoder_detect. she's nosy and she's good at it π₯get_modesβ get modes.create_resourcesβ create resources.set_propertyβ set property.
π¦ Description π¦
so most of its members are analogous to the function pointers in drm_encoder_helper_funcs, and they can optionally be used to initialize the latter. optional!! no pressure, we love a flexible queen. π
connector-like methods (e.g. get_modes and set_property) will typically be wrapped around and only be called if the encoder is the currently selected one for the connector. so bestie, if you're not the chosen one for that connector, you simply do not get called. not me being dramatic about it, that's just the rules π
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/nouveau/include/dispnv04/i2c/encoder_i2c.h struct nouveau_i2c_encoder(9)struct nouveau_i2c_encoder_driver(9)nouveau_i2c_encoder_get_client(9)nouveau_i2c_encoder_destroy(9)
ok and one lil' heads-up bestie: this page lives at./drivers/gpu/drm/nouveau/incl...(yes, truncated, she's mysterious like that), and it's dated October 2026 β the footer also readsstruct nouve...ncoder_funcs(9), so. yeah. slay. π πΈ
anyway that's the whole page, go forth and initialize those function pointers, ily, bye π«Άβ¨π
π¦ 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