drm_dp_dsc_s...ne_buf_depth(9)
π
drm_dp_dsc_s...ne_buf_depth(9) β a Kernel API Manual moment π
okay so bestie, welcome to the Kernel API Manual, and today's main character is drm_dp_dsc_s...ne_buf_depth(9). she's niche, she's specific, and honestly? she ate. β¨
πΈ NAME πΈ
drm_dp_dsc_sink_line_buf_depth β get the line buffer depth in bits. that's it, that's the whole job. π
π¦ SYNOPSIS π¦
u8 drm_dp_dsc_sink_line_buf_depth(const u8 dsc_dpcd[DP_DSC_RECEIVER_CAP_SIZE]);
π ARGUMENTS π
dsc_dpcdβ the DSC capabilities straight from DPCD. this is the lil' info drop she's gonna read, no cap.
β¨ DESCRIPTION β¨
so here's the vibe: she reads the DSC DPCD register to parse out the line buffer depth in bits. and what even is that? it's the number of bits of precision within the decoder line buffer supported by the DSC sink β like, how much detail the sink's line buffer can actually hold. π₯
this value is used to populate the DSC parameters in the struct drm_dsc_config by the driver. then the driver creates an infoframe using these parameters to populate struct drm_dsc_pps_infoframe. π¦ and those get sent to the sink using DSC infoframe using the helper function drm_dsc_pps_infoframe_pack. it's giving pipeline. it's giving teamwork. iykyk. π«Ά
β RETURN β
returns the line buffer depth supported by the DSC panel, or 0 if it's invalid. π« (yes, zero is the "nope, something's off" signal, bestie β don't ignore it.)
π SEE ALSO π
okay this part is a whole friend group, so buckle up π§ β she lives in the kernel file ./drivers/gpu/drm/display/drm_dp_helper.c alongside all these icons:
- the dp helpers themselves:
dp helpers(9), plusdrm_dp_phy_name(9)anddrm_dp_lttpr_wake_timeout_setup(9) - the DPCD basics:
drm_dp_dpcd_probe(9),drm_dp_dpcd_set_powered(9),drm_dp_dpcd_set_probe(9),drm_dp_dpcd_read(9),drm_dp_dpcd_write(9),drm_dp_dpcd_read_link_status(9),drm_dp_dpcd_read_phy_link_status(9) - link power stuff:
drm_dp_link_power_up(9),drm_dp_link_power_down(9) - payload crew:
drm_dp_dpcd_write_payload(9),drm_dp_dpcd_clear_payload(9),drm_dp_dpcd_poll_act_handled(9) - downstream besties:
drm_dp_downstream_is_type(9),drm_dp_downstream_is_tmds(9),drm_dp_read_downstream_info(9),drm_dp_downstream_max_dotclock(9),drm_dp_downstream_max_tmds_clock(9),drm_dp_downstream_min_tmds_clock(9),drm_dp_downstream_max_bpc(9),drm_dp_downstream_420_passthrough(9),drm_dp_downstream_444_to_420_conversion(9),drm_dp_downstream_rgb_to_ycbcr_conversion(9),drm_dp_downstream_mode(9),drm_dp_downstream_id(9),drm_dp_downstream_debug(9) - edid + caps + descriptors:
drm_dp_send_real_edid_checksum(9),drm_dp_read_dpcd_caps(9),drm_dp_read_desc(9) - subconnector lore:
drm_dp_subconnector_type(9),drm_dp_set_subconnector_property(9) - sink counting:
drm_dp_read_sink_count_cap(9),drm_dp_read_sink_count(9) - aux girlies π
:
drm_dp_remote_aux_init(9),drm_dp_aux_init(9),drm_dp_aux_register(9),drm_dp_aux_unregister(9) - psr + crc:
drm_dp_psr_setup_time(9),drm_dp_start_crc(9),drm_dp_stop_crc(9) - lttpr squad:
drm_dp_dump_lttpr_desc(9),drm_dp_read_lttpr_common_caps(9),drm_dp_read_lttpr_phy_caps(9),drm_dp_lttpr_count(9),drm_dp_lttpr_max_link_rate(9),drm_dp_lttpr_set_transparent_mode(9),drm_dp_lttpr_init(9),drm_dp_lttpr_max_lane_count(9),drm_dp_lttpr_voltage_swing_level_3_supported(9),drm_dp_lttpr_pre_emphasis_level_3_supported(9) - the DSC clique (her actual sisters π):
drm_dp_dsc_sink_bpp_incr(9),drm_dp_dsc_slice_count_to_mask(9),drm_dp_dsc_sink_slice_count_mask(9),drm_dp_dsc_sink_max_slice_count(9),drm_dp_dsc_sink_supported_input_bpcs(9),drm_dp_dsc_sink_max_slice_throughput(9),drm_dp_dsc_branch_max_overall_throughput(9),drm_dp_dsc_branch_max_line_width(9) - phy test pattern moment:
drm_dp_get_phy_test_pattern(9),drm_dp_set_phy_test_pattern(9) - sdp packers:
drm_dp_as_sdp_supported(9),drm_dp_vsc_sdp_supported(9),drm_dp_vsc_sdp_pack(9) - pcon / frl era:
drm_dp_get_pcon_max_frl_bw(9),drm_dp_pcon_frl_prepare(9),drm_dp_pcon_is_frl_ready(9),drm_dp_pcon_frl_configure_1(9),drm_dp_pcon_frl_configure_2(9),drm_dp_pcon_reset_frl_config(9),drm_dp_pcon_frl_enable(9),drm_dp_pcon_hdmi_link_active(9),drm_dp_pcon_hdmi_link_mode(9),drm_dp_pcon_hdmi_frl_link_error_count(9),drm_dp_pcon_pps_default(9),drm_dp_pcon_pps_override_buf(9) - backlight beauties π:
drm_edp_backlight_set_level(9),drm_edp_backlight_enable(9),drm_edp_backlight_disable(9),drm_edp_backlight_init(9),drm_panel_dp_aux_backlight(9) - bandwidth math icons:
drm_dp_link_symbol_cycles(9),drm_dp_bw_overhead(9),drm_dp_bw_channel_coding_efficiency(9),drm_dp_max_dprx_data_rate(9)
okay that's the whole page, bestie, you're officially educated π this lil' gem lives over in ./drivers/gpu/drm/display and the version on deck is dated October 2026, and the whole thing is filed under drm_dp_dsc_s...ne_buf_depth(9). go forth and read those DPCD registers, queen ππΈ
π¦ 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