[PATCH] drm/amd/display: Guard ACPI calls with CONFIG_ACPI

Mario Limonciello mario.limonciello at amd.com
Mon Jun 10 15:32:07 UTC 2024


On 6/10/2024 09:55, sunpeng.li at amd.com wrote:
> From: Leo Li <sunpeng.li at amd.com>
> 
> To fix CONFIG_ACPI disabled build error.
> 
> Fixes: ec6f30c776ad ("drm/amd/display: Set default brightness according to ACPI")
> Signed-off-by: Leo Li <sunpeng.li at amd.com>
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 6 ++++++
>   1 file changed, 6 insertions(+)
> 
> 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 a2c098f1b07c..6b3634db4c15 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -4572,7 +4572,9 @@ amdgpu_dm_register_backlight_device(struct amdgpu_dm_connector *aconnector)
>   	struct drm_device *drm = aconnector->base.dev;
>   	struct amdgpu_display_manager *dm = &drm_to_adev(drm)->dm;
>   	struct backlight_properties props = { 0 };
> +#if defined(CONFIG_ACPI)
>   	struct amdgpu_dm_backlight_caps caps = { 0 };
> +#endif
>   	char bl_name[16];
>   
>   	if (aconnector->bl_idx == -1)
> @@ -4585,6 +4587,7 @@ amdgpu_dm_register_backlight_device(struct amdgpu_dm_connector *aconnector)
>   		return;
>   	}
>   
> +#if defined(CONFIG_ACPI)
>   	amdgpu_acpi_get_backlight_caps(&caps);
>   	if (caps.caps_valid) {
>   		if (power_supply_is_system_supplied() > 0)
> @@ -4593,6 +4596,9 @@ amdgpu_dm_register_backlight_device(struct amdgpu_dm_connector *aconnector)
>   			props.brightness = caps.dc_level;
>   	} else
>   		props.brightness = AMDGPU_MAX_BL_LEVEL;
> +#else
> +	props.brightness = AMDGPU_MAX_BL_LEVEL;
> +#endif

Hey Leo,

Thanks for the patch!

As caps is initialized to {0} caps.caps_valid will be invalid.  So I see 
two other ways to solve this that are a little cleaner (IMO):

1)  Just block the one call:

#if defined(CONFIG_ACPI)
	amdgpu_acpi_get_backlight_caps(&caps);
#endif

2) Add a stub inline no-op function for amdgpu_acpi_get_backlight_caps() 
to the header.

I personally think #2 is cleaner (less ifdef makes a lot more readable 
code).

>   
>   	props.max_brightness = AMDGPU_MAX_BL_LEVEL;
>   	props.type = BACKLIGHT_RAW;


More information about the amd-gfx mailing list