STRUCT DRM_WRITEBACK_CONNECTOR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct drm_writeback_connector(9) ✨

okay so bestie, welcome to the Kernel API Manual πŸ’– this one's all about struct drm_writeback_connector β€” the DRM writeback connector, and honestly? iconic behavior. we're gonna get through it together, no cap 🫢


🌸 NAME 🌸

struct drm_writeback_connector β€” the DRM writeback connector. that's her. that's the whole vibe πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

struct drm_writeback_connector {
    struct drm_connector base;
    struct drm_encoder encoder;
    struct drm_property_blob *pixel_formats_blob_ptr;
    spinlock_t job_lock;
    struct list_head job_queue;
    unsigned int fence_context;
    spinlock_t fence_lock;
    unsigned long fence_seqno;
    char timeline_name[32];
 };

look at her. ten fields. main character energy fr fr πŸ”₯


πŸ¦‹ Members πŸ¦‹

  • base β€” the base drm_connector object, i.e. the connector she's built on top of. the foundation, the roots, the whole reason she exists πŸ’œ
  • encoder β€” an internal encoder that the connector uses to satisfy the DRM framework's requirements. the users of drm_writeback_connector control how this encoder behaves by passing the enc_funcs parameter to the drm_writeback_connector_init function. important caveat though: for users of drm_writeback_connector_init_with_encoder, this field is not valid, because the encoder is managed inside their own drivers πŸ™ˆ
  • pixel_formats_blob_ptr β€” DRM blob property data for the pixel formats list on writeback connectors. see also drm_writeback_connector_init ✨
  • job_lock β€” protects job_queue. that's it. that's her job (pun intended 😭).
  • job_queue β€” holds a list of a connector's writeback jobs, and the last item is the most recent one. the first item may be either waiting for the hardware to begin writing, or currently being written. lowkey the most interesting field ngl πŸ‘‘
  • fence_context β€” the timeline context used for fence operations ⭐
  • fence_lock β€” spinlock to protect the fences in the fence_context πŸ”’
  • fence_seqno β€” the seqno variable used as a monotonic counter for the fences created on the connector's timeline πŸ“ˆ
  • timeline_name β€” the name of the connector's fence timeline 🏷️
🌈 little cross-reference moment: See also: drm_writeback_queue_job and drm_writeback_signal_completion β€” go read those too, bestie, they're the ones actually doing the queueing and the signalling 🧚

πŸ‘‘ SEE ALSO πŸ‘‘

  • Kernel file ./include/drm/drm_writeback.h
  • struct drm_writeback_job(9)

and that's the page, bestie πŸ“ hope writeback connectors make sense now. this lil beauty lives in ./include/drm and the version on the tin is October 2026 β€” so go forth, queue those jobs, and slay πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from