On Wed, Feb 3, 2021 at 7:42 AM Takashi Iwai <tiwai@xxxxxxx> wrote: > > The current code tries to read the brightness value via > dc_link_get_backlight_level() no matter whether it's controlled via > aux or not, and this results in a bogus value returned. > Fix it to read the current value via > dc_link_get_backlight_level_nits() for the aux. > > BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1180749 > BugLink: https://gitlab.freedesktop.org/drm/amd/-/issues/1438 > Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> This looks fine to me. FWIW, I have a similar patch set here: https://cgit.freedesktop.org/~agd5f/linux/log/?h=backlight_wip Alex > --- > .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index c6da89df055d..fb62886ae013 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -3140,6 +3140,16 @@ static int set_backlight_via_aux(struct dc_link *link, uint32_t brightness) > return rc ? 0 : 1; > } > > +static int get_backlight_via_aux(struct dc_link *link) > +{ > + uint32_t avg, peak; > + > + if (!link || > + !dc_link_get_backlight_level_nits(link, &avg, &peak)) > + return DC_ERROR_UNEXPECTED; > + return avg; > +} > + > static int get_brightness_range(const struct amdgpu_dm_backlight_caps *caps, > unsigned *min, unsigned *max) > { > @@ -3212,8 +3222,13 @@ static int amdgpu_dm_backlight_update_status(struct backlight_device *bd) > static int amdgpu_dm_backlight_get_brightness(struct backlight_device *bd) > { > struct amdgpu_display_manager *dm = bl_get_data(bd); > - int ret = dc_link_get_backlight_level(dm->backlight_link); > + struct dc_link *link = (struct dc_link *)dm->backlight_link; > + int ret; > > + if (dm->backlight_caps.aux_support) > + ret = get_backlight_via_aux(link); > + else > + ret = dc_link_get_backlight_level(link); > if (ret == DC_ERROR_UNEXPECTED) > return bd->props.brightness; > return convert_brightness_to_user(&dm->backlight_caps, ret); > -- > 2.26.2 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel