Ping?
On Tue, May 5, 2020 at 3:48 PM Alex Deucher <alexdeuc...@gmail.com> wrote: > > Just register the a pointer to the backlight device and use > that. Unifies the DC and non-DC handling. > > Signed-off-by: Alex Deucher <alexander.deuc...@amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 73 ++++++++++-------------- > 1 file changed, 30 insertions(+), 43 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > index 956cbbda4793..913c8f0513bd 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c > @@ -64,7 +64,9 @@ struct amdgpu_atif { > struct amdgpu_atif_notifications notifications; > struct amdgpu_atif_functions functions; > struct amdgpu_atif_notification_cfg notification_cfg; > - struct amdgpu_encoder *encoder_for_bl; > +#if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || > defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) > + struct backlight_device *bd; > +#endif > struct amdgpu_dm_backlight_caps backlight_caps; > }; > > @@ -444,45 +446,21 @@ static int amdgpu_atif_handler(struct amdgpu_device > *adev, > > DRM_DEBUG_DRIVER("ATIF: %d pending SBIOS requests\n", count); > > - if ((req.pending & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST) && > - !amdgpu_device_has_dc_support(adev)) { > - struct amdgpu_encoder *enc = atif->encoder_for_bl; > - > - if (enc) { > - struct amdgpu_encoder_atom_dig *dig = > enc->enc_priv; > - > - DRM_DEBUG_DRIVER("Changing brightness to > %d\n", > - req.backlight_level); > - > - amdgpu_display_backlight_set_level(adev, enc, > req.backlight_level); > - > -#if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || > defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) > - backlight_force_update(dig->bl_dev, > - > BACKLIGHT_UPDATE_HOTKEY); > -#endif > - } > - } > -#if defined(CONFIG_DRM_AMD_DC) > + if (req.pending & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST) { > #if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || > defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) > - if ((req.pending & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST) && > - amdgpu_device_has_dc_support(adev)) { > - struct amdgpu_display_manager *dm = &adev->dm; > - struct backlight_device *bd = dm->backlight_dev; > - > - if (bd) { > + if (atif->bd) { > DRM_DEBUG_DRIVER("Changing brightness to > %d\n", > req.backlight_level); > - > /* > * XXX backlight_device_set_brightness() is > * hardwired to post BACKLIGHT_UPDATE_SYSFS. > * It probably should accept 'reason' > parameter. > */ > - backlight_device_set_brightness(bd, > req.backlight_level); > + backlight_device_set_brightness(atif->bd, > req.backlight_level); > } > - } > -#endif > #endif > + } > + > if (req.pending & ATIF_DGPU_DISPLAY_EVENT) { > if (adev->flags & AMD_IS_PX) { > pm_runtime_get_sync(adev->ddev->dev); > @@ -829,23 +807,32 @@ int amdgpu_acpi_init(struct amdgpu_device *adev) > adev->atif = atif; > > if (atif->notifications.brightness_change) { > - struct drm_encoder *tmp; > - > - /* Find the encoder controlling the brightness */ > - list_for_each_entry(tmp, > &adev->ddev->mode_config.encoder_list, > - head) { > - struct amdgpu_encoder *enc = to_amdgpu_encoder(tmp); > - > - if ((enc->devices & (ATOM_DEVICE_LCD_SUPPORT)) && > - enc->enc_priv) { > - struct amdgpu_encoder_atom_dig *dig = > enc->enc_priv; > - if (dig->bl_dev) { > - atif->encoder_for_bl = enc; > - break; > +#if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || > defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) > + if (amdgpu_device_has_dc_support(adev)) { > +#if defined(CONFIG_DRM_AMD_DC) > + struct amdgpu_display_manager *dm = &adev->dm; > + atif->bd = dm->backlight_dev; > +#endif > + } else { > + struct drm_encoder *tmp; > + > + /* Find the encoder controlling the brightness */ > + list_for_each_entry(tmp, > &adev->ddev->mode_config.encoder_list, > + head) { > + struct amdgpu_encoder *enc = > to_amdgpu_encoder(tmp); > + > + if ((enc->devices & > (ATOM_DEVICE_LCD_SUPPORT)) && > + enc->enc_priv) { > + struct amdgpu_encoder_atom_dig *dig = > enc->enc_priv; > + if (dig->bl_dev) { > + atif->bd = dig->bl_dev; > + break; > + } > } > } > } > } > +#endif > > if (atif->functions.sbios_requests && !atif->functions.system_params) > { > /* XXX check this workraround, if sbios request function is > -- > 2.25.4 > _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx