drm_edp_backlight_disable(9)
π drm_edp_backlight_disable β a page from the Kernel API Manual β¨
okay so bestie, we're in the Kernel API Manual today and the star of the show is literally drm_edp_backlight_disable(9). she's a little function, she turns off a backlight, and she has opinions about which panels she'll do that for. let's get into it π
πΈ NAME
drm_edp_backlight_disable β Disable an eDP backlight using DPCD, if supported π‘
like, "if supported" is doing SO much work in that sentence, and we will be discussing.
β¨ SYNOPSIS
int drm_edp_backlight_disable (struct drm_dp_aux *aux , const struct drm_edp_backlight_info *bl );
yep that's the whole vibe. two args, one int coming back at you π«Ά
π¦ ARGUMENTS
auxβ The DP AUX channel to use. this is your lane to talk to the panel, bestie π£οΈblβ Backlight capability info fromdrm_edp_backlight_init. basically the little info packet that tells you what this panel can and can't do π
π₯ DESCRIPTION
so what does she actually do? This function handles disabling DPCD backlight controls on a panel over AUX. that's it. that's the job. and honestly? she ate. π
but here's the tea, and you NEED to hear it β: certain panels do not support being enabled or disabled via DPCD. instead they require that the driver handle enabling/disabling the panel through implementation-specific means using the EDP_BL_PWR GPIO. like, the panel said "not my thing, do it yourself."
For such panels, drm_edp_backlight_info.aux_enable will be set to false, this function becomes a no-op, and the driver is expected to handle powering the panel off using the EDP_BL_PWR GPIO.
lowkey important: ifaux_enableisfalse, calling this does absolutely nothing and that's by design, not a bug. the driver has to do theEDP_BL_PWRGPIO thing itself. don't come for her π
β RETURN
0on success or no-op β- negative error code on failure π
that's it. no grey area, no "it depends" β zero or negative, pick your fighter.
π SEE ALSO
bestie. sit down. this list is LONG and we are not skipping a single one of them, because they're all family π«Ά
Kernel file ./drivers/gpu/drm/display/drm_dp_helper.c dp helpers(9), drm_dp_phy_name(9), drm_dp_lttpr_wake_timeout_setup(9), dp helpers(9), 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), drm_dp_link_power_up(9), drm_dp_link_power_down(9), drm_dp_dpcd_write_payload(9), drm_dp_dpcd_clear_payload(9), drm_dp_dpcd_poll_act_handled(9), drm_dp_downstream_is_type(9), drm_dp_downstream_is_tmds(9), drm_dp_send_real_edid_checksum(9), drm_dp_read_dpcd_caps(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), drm_dp_subconnector_type(9), drm_dp_set_subconnector_property(9), drm_dp_read_sink_count_cap(9), drm_dp_read_sink_count(9), drm_dp_remote_aux_init(9), drm_dp_aux_init(9), drm_dp_aux_register(9), drm_dp_aux_unregister(9), drm_dp_psr_setup_time(9), drm_dp_start_crc(9), drm_dp_stop_crc(9), drm_dp_read_desc(9), drm_dp_dump_lttpr_desc(9), 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_line_buf_depth(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), 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), drm_dp_get_phy_test_pattern(9), drm_dp_set_phy_test_pattern(9), drm_dp_as_sdp_supported(9), drm_dp_vsc_sdp_supported(9), drm_dp_vsc_sdp_pack(9), 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), drm_edp_backlight_set_level(9), drm_edp_backlight_enable(9), drm_edp_backlight_init(9), drm_panel_dp_aux_backlight(9), 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)
and that's the page bestie!! π§π
sign-off time, because the source and the date deserve a shoutout too: this one lives over in ./drivers/gpu/drm/display and it's stamped October 2026. iconic of her honestly. go turn off a backlight responsibly, ily, bye πβ¨π
π¦ 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