nouveau_i2c_encoder_init(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– nouveau_i2c_encoder_init(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” this one's a little function in the nouveau DRM world and honestly she's giving "small but mighty" ✨


🌸 NAME 🌸

nouveau_i2c_encoder_init β€” literally just: initialize an I2C slave encoder πŸŽ€


✨ SYNOPSIS ✨

int nouveau_i2c_encoder_init (struct drm_device *dev , struct
       nouveau_i2c_encoder *encoder , struct i2c_adapter *adap , const struct
       i2c_board_info *info );

like, four args, one int return, no drama 🫢


πŸ¦‹ ARGUMENTS πŸ¦‹

  • dev β€” the DRM device. the main character, if you will πŸ‘‘
  • encoder β€” the encoder that's gonna get attached to the I2C device. and listen, you aren't required to have called drm_encoder_init before β€” no prerequisites, we love a low-maintenance queen πŸ’…
  • adap β€” the I2C adapter that will be used to communicate with the device. the communication pipeline, the group chat, the vibe conduit πŸ“ž
  • info β€” the info used to create the I2C device. the required fields are addr and type β€” do not skip those, fr fr πŸ™ˆ

⭐ DESCRIPTION ⭐

so what does she actually do? she creates an I2C device on the specified bus β€” and yes, the module containing its driver is transparently loaded, so no manual module wrangling, she handles it 🧚 β€” and then attaches it to the specified nouveau_i2c_encoder. iconic behavior, honestly ✨

then the encoder_i2c_funcs field gets initialized with the hooks provided by the slave driver. it's giving "plug and play but make it kernel" πŸ”₯

and one more thing: if info.platform_data is non-NULL, it will be used as the initial slave config. noted πŸ“

Return value: 0 on success, or a negative errno on failure. and in particular β€” watch out β€” -ENODEV is returned when no matching driver is found 😭 like, she looked, she really did, nobody answered πŸ’€

ngl, if you get -ENODEV it's not you, it's the driver table. but also double check your addr and type, bestie 🫢

πŸ‘€ SEE ALSO πŸ‘€

  • Kernel file ./drivers/gpu/drm/nouveau/dispnv04/nouveau_i2c_encoder.c β€” go read the source, iykyk πŸ“–

and that's the whole vibe check πŸ’– this little page came to you from ./drivers/gpu/drm/nouveau/disp... β€” yeah, the path gets cut off in the footer, she's mysterious like that β€” dated October 2026, manual name nouveau_i2c_encoder_init(9). mwah, go forth and init your encoders πŸŒˆπŸŽ€

πŸ“¦ where this page comes from