[PATCH v2 1/3] ACPI: video: Allow GPU drivers to report no panels
Rafael J. Wysocki
rafael at kernel.org
Thu Dec 8 11:32:53 UTC 2022
On Thu, Dec 8, 2022 at 2:09 AM Mario Limonciello
<mario.limonciello at amd.com> wrote:
>
> The current logic for the ACPI backlight detection will create
> a backlight device if no native or vendor drivers have created
> 8 seconds after the system has booted if the ACPI tables
> included backlight control methods.
>
> If the GPU drivers have loaded, they may be able to report whether
> any LCD panels were found. Allow using this information to factor
> in whether to enable the fallback logic for making an acpi_video0
> backlight device.
>
> Suggested-by: Hans de Goede <hdegoede at redhat.com>
> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
> ---
> v1->v2:
> * Cancel registration for backlight device instead (Hans)
> * drop desktop check (Dan)
>
> drivers/acpi/acpi_video.c | 11 +++++++++++
> include/acpi/video.h | 1 +
> 2 files changed, 12 insertions(+)
>
> diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
> index 32953646caeb..f64fdb029090 100644
> --- a/drivers/acpi/acpi_video.c
> +++ b/drivers/acpi/acpi_video.c
> @@ -2178,6 +2178,17 @@ static bool should_check_lcd_flag(void)
> return false;
> }
>
> +/*
> + * At least one graphics driver has reported that no LCD is connected
> + * via the native interface. cancel the registration for fallback acpi_video0.
> + * If another driver still deems this necessary, it can explicitly register it.
> + */
> +void acpi_video_report_nolcd(void)
> +{
> + cancel_delayed_work(&video_bus_register_backlight_work);
> +}
> +EXPORT_SYMBOL(acpi_video_report_nolcd);
> +
> int acpi_video_register(void)
> {
> int ret = 0;
> diff --git a/include/acpi/video.h b/include/acpi/video.h
> index a275c35e5249..1fccb111c197 100644
> --- a/include/acpi/video.h
> +++ b/include/acpi/video.h
> @@ -53,6 +53,7 @@ enum acpi_backlight_type {
> };
>
> #if IS_ENABLED(CONFIG_ACPI_VIDEO)
> +extern void acpi_video_report_nolcd(void);
It looks like a stub is needed for the other case. Apparently, things
fail to compile due to the lack of it.
> extern int acpi_video_register(void);
> extern void acpi_video_unregister(void);
> extern void acpi_video_register_backlight(void);
> --
> 2.34.1
>
More information about the amd-gfx
mailing list