mirror of https://gitee.com/openkylin/linux.git
amdgpu_acpi: add backlight control for the DC case
This uses backlight_device_set_brightness() to set the brightness level requested via ATIF. Signed-off-by: Andriy Gapon <avg@FreeBSD.org> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
a2eb03a569
commit
bcb7b0ef82
|
@ -444,7 +444,6 @@ static int amdgpu_atif_handler(struct amdgpu_device *adev,
|
||||||
|
|
||||||
DRM_DEBUG_DRIVER("ATIF: %d pending SBIOS requests\n", count);
|
DRM_DEBUG_DRIVER("ATIF: %d pending SBIOS requests\n", count);
|
||||||
|
|
||||||
/* todo: add DC handling */
|
|
||||||
if ((req.pending & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST) &&
|
if ((req.pending & ATIF_PANEL_BRIGHTNESS_CHANGE_REQUEST) &&
|
||||||
!amdgpu_device_has_dc_support(adev)) {
|
!amdgpu_device_has_dc_support(adev)) {
|
||||||
struct amdgpu_encoder *enc = atif->encoder_for_bl;
|
struct amdgpu_encoder *enc = atif->encoder_for_bl;
|
||||||
|
@ -463,6 +462,27 @@ static int amdgpu_atif_handler(struct amdgpu_device *adev,
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#if defined(CONFIG_DRM_AMD_DC)
|
||||||
|
#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) {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
if (req.pending & ATIF_DGPU_DISPLAY_EVENT) {
|
if (req.pending & ATIF_DGPU_DISPLAY_EVENT) {
|
||||||
if (adev->flags & AMD_IS_PX) {
|
if (adev->flags & AMD_IS_PX) {
|
||||||
pm_runtime_get_sync(adev->ddev->dev);
|
pm_runtime_get_sync(adev->ddev->dev);
|
||||||
|
|
Loading…
Reference in New Issue