drm_dp_dpcd_read_data(9)
π drm_dp_dpcd_read_data(9) β Kernel API Manual, but make it cute
okay so this is drm_dp_dpcd_read_data from the Kernel API Manual, and honestly? she's a little workhorse and she deserves her flowers π
β¨ NAME β¨
drm_dp_dpcd_read_data β read a whole series of bytes out of the DPCD, bestie. that's the whole vibe. πβ¨
π¦ SYNOPSIS π¦
int drm_dp_dpcd_read_data (struct drm_dp_aux *aux , unsigned int offset
, void *buffer , size_t size );
like, that's the signature, don't @ me, just copy it exactly fr fr π«Ά
π ARGUMENTS π
auxβ the DisplayPort AUX channel, and yes she can be SST or MST, both are welcome here, no gatekeeping πoffsetβ the address of the (first) register you wanna read. first one! because she reads a bunch from there onward πbufferβ the buffer where the register values get stashed. it's giving "here's where the lore goes" π§Ίsizeβ how many bytes are inbuffer. the headcount. the guest list. π’
πΈ DESCRIPTION πΈ
so here's the tea β β she returns zero (0) on success, or a negative error code if something went sideways. that's the whole contract, no cap.
-EIOβ returned if the request got NAKed by the sink, or if the retry count was exceeded. like, the sink literally said "no β" or you ran out of tries π-EPROTOβ returned if not all the bytes got transferred. partial delivery is not the vibe, she wants the full package π
and errors coming from the underlying AUX channel transfer function get propagated straight to the caller β except -EBUSY, which causes the transaction to be retried. she's persistent, she's patient, she's iconic π
heads up: those error codes are legit return values, not decoration. check them. i'm not playing π
π SEE ALSO π
the whole friend group π« β go say hi:
- Kernel file
./include/drm/display/drm_dp_helper.h struct drm_dp_vsc_sdp(9)struct drm_dp_as_sdp(9)drm_dp_dsc_sink_supports_format(9)drm_edp_backlight_supported(9)drm_dp_is_uhbr_rate(9)struct drm_dp_aux_msg(9)struct drm_dp_aux_cec(9)struct drm_dp_aux(9)drm_dp_dpcd_readb(9)drm_dp_dpcd_write_data(9)drm_dp_dpcd_writeb(9)drm_dp_dpcd_read_byte(9)drm_dp_dpcd_write_byte(9)struct drm_dp_desc(9)enum drm_dp_quirk(9)drm_dp_has_quirk(9)struct drm_edp_backlight_info(9)struct drm_dp_phy_test_params(9)
and that's the page, bestie π huge shoutout to ./include/drm/display for hosting this one, dated October 2026, from the Kernel API Manual β mwah, go read your DPCD responsibly π§ββοΈβ¨
π¦ 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