[PATCH 06/13] drm/dp: Modify drm_edp_probe_state

Murthy, Arun R arun.r.murthy at intel.com
Fri Jun 20 04:34:52 UTC 2025


> -----Original Message-----
> From: Kandpal, Suraj <suraj.kandpal at intel.com>
> Sent: Monday, April 14, 2025 9:47 AM
> To: nouveau at lists.freedesktop.org; dri-devel at lists.freedesktop.org; intel-
> xe at lists.freedesktop.org; intel-gfx at lists.freedesktop.org
> Cc: Nautiyal, Ankit K <ankit.k.nautiyal at intel.com>; Murthy, Arun R
> <arun.r.murthy at intel.com>; Kandpal, Suraj <suraj.kandpal at intel.com>
> Subject: [PATCH 06/13] drm/dp: Modify drm_edp_probe_state
> 
> Modify drm_edp_probe_state to read current level from
> DP_EDP_PANEL_TARGET_LUMINANCE_VALUE. We divide it by
> 1000 since the value in this register is in millinits.
> 
> Signed-off-by: Suraj Kandpal <suraj.kandpal at intel.com>
> ---
>  drivers/gpu/drm/display/drm_dp_helper.c | 35 ++++++++++++++++++-------
>  1 file changed, 25 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/gpu/drm/display/drm_dp_helper.c
> b/drivers/gpu/drm/display/drm_dp_helper.c
> index c58973d8c5f0..bb1242a1bf6b 100644
> --- a/drivers/gpu/drm/display/drm_dp_helper.c
> +++ b/drivers/gpu/drm/display/drm_dp_helper.c
> @@ -4185,7 +4185,7 @@ drm_edp_backlight_probe_state(struct drm_dp_aux
> *aux, struct drm_edp_backlight_i
>  			      u8 *current_mode)
>  {
>  	int ret;
> -	u8 buf[2];
> +	u8 buf[3];
>  	u8 mode_reg;
> 
>  	ret = drm_dp_dpcd_read_byte(aux,
> DP_EDP_BACKLIGHT_MODE_SET_REGISTER, &mode_reg); @@ -4202,17
> +4202,32 @@ drm_edp_backlight_probe_state(struct drm_dp_aux *aux, struct
> drm_edp_backlight_i
>  	if (*current_mode == DP_EDP_BACKLIGHT_CONTROL_MODE_DPCD) {
>  		int size = 1 + bl->lsb_reg_used;
> 
> -		ret = drm_dp_dpcd_read_data(aux,
> DP_EDP_BACKLIGHT_BRIGHTNESS_MSB, buf, size);
> -		if (ret < 0) {
> -			drm_dbg_kms(aux->drm_dev, "%s: Failed to read
> backlight level: %d\n",
> -				    aux->name, ret);
> -			return ret;
> +		if (bl->luminance_set) {
> +			ret = drm_dp_dpcd_read_data(aux,
> DP_EDP_PANEL_TARGET_LUMINANCE_VALUE,
> +						    buf, sizeof(buf));
> +			if (ret < 0) {
> +				drm_dbg_kms(aux->drm_dev,
> +					    "%s: Failed to read backlight level:
> %d\n",
> +					    aux->name, ret);
> +				return ret;
>  		}
> 
> -		if (bl->lsb_reg_used)
> -			return (buf[0] << 8) | buf[1];
> -		else
> -			return buf[0];
> +		return (buf[0] | buf[1] << 8 | buf[2] << 16) / 1000;
Can a comment be added here on the unit?

Upon adding the above comment
Reviewed-by: Arun R Murthy <arun.r.murthy at intel.com>

Thanks and Regards,
Arun R Murthy
--------------------
> +		} else {
> +			ret = drm_dp_dpcd_read_data(aux,
> DP_EDP_BACKLIGHT_BRIGHTNESS_MSB,
> +						    buf, size);
> +			if (ret < 0) {
> +				drm_dbg_kms(aux->drm_dev,
> +					    "%s: Failed to read backlight level:
> %d\n",
> +					    aux->name, ret);
> +				return ret;
> +			}
> +
> +			if (bl->lsb_reg_used)
> +				return (buf[0] << 8) | buf[1];
> +			else
> +				return buf[0];
> +		}
>  	}
> 
>  	/*
> --
> 2.34.1



More information about the Nouveau mailing list