> -----Original Message----- > From: Kandpal, Suraj <suraj.kand...@intel.com> > Sent: Monday, April 14, 2025 9:47 AM > To: nouv...@lists.freedesktop.org; dri-devel@lists.freedesktop.org; intel- > x...@lists.freedesktop.org; intel-...@lists.freedesktop.org > Cc: Nautiyal, Ankit K <ankit.k.nauti...@intel.com>; Murthy, Arun R > <arun.r.mur...@intel.com>; Kandpal, Suraj <suraj.kand...@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.kand...@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.mur...@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