RE: [PATCH 2/5] drm/amd: Pass luminance data to amdgpu_dm_backlight_caps

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[AMD Official Use Only - AMD Internal Distribution Only]

> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of Mario
> Limonciello
> Sent: Friday, February 21, 2025 12:10 PM
> To: amd-gfx @ lists . freedesktop . org <amd-gfx@xxxxxxxxxxxxxxxxxxxxx>; Hung,
> Alex <Alex.Hung@xxxxxxx>
> Cc: Wentland, Harry <Harry.Wentland@xxxxxxx>; Limonciello, Mario
> <Mario.Limonciello@xxxxxxx>
> Subject: [PATCH 2/5] drm/amd: Pass luminance data to
> amdgpu_dm_backlight_caps
>
> The ATIF method on some systems will provide a backlight curve. Pass this curve
> into amdgpu_dm add it to the structures.
>
> Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c      |  4 ++++
>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h | 20 +++++++++++++++++++
>  drivers/gpu/drm/amd/include/amd_acpi.h        |  9 +--------
>  3 files changed, 25 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> index 515c6f32448d..b7f8f2ff143d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c
> @@ -394,6 +394,10 @@ static int amdgpu_atif_query_backlight_caps(struct
> amdgpu_atif *atif)
>                       characteristics.max_input_signal;
>       atif->backlight_caps.ac_level = characteristics.ac_level;
>       atif->backlight_caps.dc_level = characteristics.dc_level;
> +     atif->backlight_caps.data_points = characteristics.number_of_points;
> +     memcpy(atif->backlight_caps.luminance_data,
> +            characteristics.data_points,
> +            sizeof(atif->backlight_caps.luminance_data));
>  out:
>       kfree(info);
>       return err;
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> index f3bc00e587ad..85b64c457ed6 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
> @@ -151,6 +151,18 @@ struct idle_workqueue {
>       bool running;
>  };
>
> +#define MAX_LUMINANCE_DATA_POINTS 99
> +
> +/**
> + * struct amdgpu_dm_luminance_data - Custom luminance data
> + * @luminance: Luminance in percent
> + * @input_signal: Input signal in range 0-255  */ struct
> +amdgpu_dm_luminance_data {
> +     u8 luminance;
> +     u8 input_signal;
> +} __packed;
> +
>  /**
>   * struct amdgpu_dm_backlight_caps - Information about backlight
>   *
> @@ -195,6 +207,14 @@ struct amdgpu_dm_backlight_caps {
>        * @dc_level: the default brightness if booted on DC
>        */
>       u8 dc_level;
> +     /**
> +      * @data_points: the number of custom luminance data points
> +      */
> +     u8 data_points;
> +     /**
> +      * @luminance_data: custom luminance data
> +      */
> +     struct amdgpu_dm_luminance_data
> +luminance_data[MAX_LUMINANCE_DATA_POINTS];
>  };
>
>  /**
> diff --git a/drivers/gpu/drm/amd/include/amd_acpi.h
> b/drivers/gpu/drm/amd/include/amd_acpi.h
> index 2d089d30518f..63713fdca428 100644
> --- a/drivers/gpu/drm/amd/include/amd_acpi.h
> +++ b/drivers/gpu/drm/amd/include/amd_acpi.h
> @@ -57,13 +57,6 @@ struct atif_qbtc_arguments {
>       u8 requested_display;   /* which display is requested */
>  } __packed;
>
> -#define ATIF_QBTC_MAX_DATA_POINTS 99
> -
> -struct atif_qbtc_data_point {
> -     u8 luminance;           /* luminance in percent */
> -     u8 ipnut_signal;        /* input signal in range 0-255 */
> -} __packed;


I'd be careful here lest someone changes the definition of struct amdgpu_dm_luminance_data not realizing that it used here as well.  The ACPI definition should be separate IMHO.

Alex


> -
>  struct atif_qbtc_output {
>       u16 size;               /* structure size in bytes (includes size field) */
>       u16 flags;              /* all zeroes */
> @@ -73,7 +66,7 @@ struct atif_qbtc_output {
>       u8 min_input_signal;    /* max input signal in range 0-255 */
>       u8 max_input_signal;    /* min input signal in range 0-255 */
>       u8 number_of_points;    /* number of data points */
> -     struct atif_qbtc_data_point data_points[ATIF_QBTC_MAX_DATA_POINTS];
> +     struct amdgpu_dm_luminance_data
> +data_points[MAX_LUMINANCE_DATA_POINTS];
>  } __packed;
>
>  #define ATIF_NOTIFY_MASK     0x3
> --
> 2.48.1





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux