Ping?

Alex

On Thu, May 7, 2020 at 12:09 PM Alex Deucher <alexdeuc...@gmail.com> wrote:
>
> 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

Reply via email to