mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 15:41:52 +02:00
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. Reviewed-by: Alex Hung <alex.hung@amd.com> Link: https://lore.kernel.org/r/20250228185145.186319-3-mario.limonciello@amd.com Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
1c79b5fcdf
commit
f729e63743
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ struct atif_qbtc_arguments {
|
|||
|
||||
struct atif_qbtc_data_point {
|
||||
u8 luminance; /* luminance in percent */
|
||||
u8 ipnut_signal; /* input signal in range 0-255 */
|
||||
u8 input_signal; /* input signal in range 0-255 */
|
||||
} __packed;
|
||||
|
||||
struct atif_qbtc_output {
|
||||
|
|
@ -75,6 +75,8 @@ struct atif_qbtc_output {
|
|||
u8 number_of_points; /* number of data points */
|
||||
struct atif_qbtc_data_point data_points[ATIF_QBTC_MAX_DATA_POINTS];
|
||||
} __packed;
|
||||
static_assert(ATIF_QBTC_MAX_DATA_POINTS == MAX_LUMINANCE_DATA_POINTS);
|
||||
static_assert(sizeof(struct atif_qbtc_data_point) == sizeof(struct amdgpu_dm_luminance_data));
|
||||
|
||||
#define ATIF_NOTIFY_MASK 0x3
|
||||
#define ATIF_NOTIFY_NONE 0
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user