drm_of_lvds_...l_order_sink(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so bestie, welcome to the Kernel API Manual entry for drm_of_lvds_...l_order_sink(9) β€” yes that's the truncated header name, the full function is the whole mouthful below, don't @ me. this one's all about dual-link LVDS sinks and which port gets the even pixels vs the odd ones. it's giving "pixel bouncer at the club door" energy fr fr πŸ’…


✨ NAME ✨

drm_of_lvds_get_dual_link_pixel_order_sink β€” get LVDS dual-link sink pixel order πŸŽ€

like, the whole point: you hand it two port nodes of a dual-link LVDS sink and it tells you which one is on even-pixel duty and which one is on odd-pixel duty. iconic behavior honestly.


🌸 SYNOPSIS 🌸

int drm_of_lvds_get_dual_link_pixel_order_sink (struct device_node
*port1 , struct device_node *port2 );

she takes two struct device_node * args and gives you back an int. no cap.


πŸ¦‹ ARGUMENTS πŸ¦‹

  • port1 β€” First DT port node of the Dual-link LVDS sink. this is your first contestant ✨
  • port2 β€” Second DT port node of the Dual-link LVDS sink. and this is contestant number two πŸ’«

πŸ’œ DESCRIPTION πŸ’œ

okay so picture this: an LVDS dual-link connection is made of two links, right? even pixels transit on one link, and odd pixels transit on the other. that's just how she's built. this function returns, for two ports of an LVDS dual-link sink, which port shall transmit the even and odd pixels, based on the requirements of the sink. the sink is the main character here, we're just listening to what it wants πŸ‘‘

the pixel order is determined from the dual-lvds-even-pixels and dual-lvds-odd-pixels properties in the sink's DT port nodes. those two properties are literally the whole vibe check πŸ”

⚠️ if those properties are not present, or if their usage is not valid, this function returns -EINVAL. so like, no properties = no answer, bestie.
⚠️ and if either port is not connected, this function returns -EPIPE. can't route pixels down a link that isn't there, sorry 😭

port1 and port2 are typically DT sibling nodes, but lowkey they may have different parents when, for instance, two separate LVDS decoders receive the even and odd pixels. so don't assume they're always twinsies 🫢


πŸ”₯ RETURN πŸ”₯

  • DRM_LVDS_DUAL_LINK_EVEN_ODD_PIXELS β€” port1 receives even pixels and port2 receives odd pixels ⭐
  • DRM_LVDS_DUAL_LINK_ODD_EVEN_PIXELS β€” port1 receives odd pixels and port2 receives even pixels 🌈
  • -EINVAL β€” port1 or port2 are NULL πŸ’€
  • -EPIPE β€” when port1 or port2 are not connected πŸ™ˆ

πŸŽ€ SEE ALSO πŸŽ€

go read the Kernel file ./drivers/gpu/drm/drm_of.c overview(9) first, then these lovely neighbors:

the whole drm_of.c friend group ate, ngl πŸ“


and that's the page!! πŸ’– this cutie lives in ./drivers/gpu/drm, dated October 2026, and the manual it's chillin' in is the Kernel API Manual. periodt. go route some pixels bestie 🧚✨

πŸ“¦ where this page comes from