zynqmp_dp_phy_probe(9)
π zynqmp_dp_phy_probe β the Kernel API Manual, bestie edition β¨
okay so before we even start: this is zynqmp_dp_phy_probe(9), straight out of the Kernel API Manual. Yes that manual. We're reading kernel docs for fun now, that's just who we are π
β¨ NAME β¨
zynqmp_dp_phy_probe β Probe the PHYs π
(get it? we're going PHY-shopping. no? okay moving on)
π¦ SYNOPSIS π¦
int zynqmp_dp_phy_probe (struct zynqmp_dp *dp );
that's literally the whole signature. short, sweet, iconic. she doesn't need to overexplain π
πΈ ARGUMENTS πΈ
dpβ the DisplayPort IP core structure π«Ά that's the one (1) thing you gotta hand her.
π DESCRIPTION π
okay so the whole vibe here: she's probing PHYs for all lanes β¨ like, every lane gets its PHY check, that's the assignment and she ate.
But here's the plot twist π β less PHYs may be available than the number of lanes, and that is not considered an error, as long as at least one PHY is found. Not me being flexible about hardware availability π growth.
So if you're the caller and you're sitting there like "wait, how many did we actually get??" β you can check dp->num_lanes to see how many PHYs were found. That's your cheat code fr fr π₯
π RETURN π
she has opinions and she will share them:
0β Success π slay, we're so back-ENXIOβ No PHY found π living in a PHY-less household-EPROBE_DEFERβ Probe deferral requested π not me asking for more time- Other negative value β PHY retrieval failure π she had one job and the PHY did not come home
bestie please actually check the return value. negative means look at me, something's up, not "eh probably fine" π€
π SEE ALSO π
Kernel file ./drivers/gpu/drm/xlnx/zynqmp_dp.c β and, like, the entire extended cinematic universe of structs and functions because she knows everyone π
struct zynqmp_dp_link_config(9)struct zynqmp_dp_mode(9)struct zynqmp_dp_config(9)enum test_pattern(9)struct zynqmp_dp_test(9)struct zynqmp_dp_train_set_priv(9)struct zynqmp_dp(9)zynqmp_dp_phy_init(9)zynqmp_dp_phy_exit(9)zynqmp_dp_phy_ready(9)zynqmp_dp_max_rate(9)zynqmp_dp_mode_configure(9)zynqmp_dp_adjust_train(9)zynqmp_dp_update_vs_emph(9)zynqmp_dp_link_train_cr(9)zynqmp_dp_link_train_ce(9)zynqmp_dp_setup(9)zynqmp_dp_train(9)zynqmp_dp_train_loop(9)zynqmp_dp_aux_cmd_submit(9)zynqmp_dp_aux_init(9)zynqmp_dp_aux_cleanup(9)zynqmp_dp_update_misc(9)zynqmp_dp_set_format(9)zynqmp_dp_encoder_mode_set_transfer_unit(9)zynqmp_dp_encoder_mode_set_stream(9)zynqmp_dp_disp_connected_live_layer(9)zynqmp_dp_set_test_pattern(9)zynqmp_dp_enable_vblank(9)zynqmp_dp_disable_vblank(9)
like I said. everyone. π
and that's the page!! huge shoutout to ./drivers/gpu/drm/xlnx for being the source, October 2026 for the date, and zynqmp_dp_phy_probe(9) for the version tag π go probe some PHYs, bestie, you've got this π§β¨ π
π¦ 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