drivers/gpu/drm/amd/include/amd_acpi.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/include/amd_acpi.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/include/amd_acpi.h
Extension
.h
Size
22812 bytes
Lines
526
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct atif_verify_interface {
	u16 size;		/* structure size in bytes (includes size field) */
	u16 version;		/* version */
	u32 notification_mask;	/* supported notifications mask */
	u32 function_bits;	/* supported functions bit vector */
} __packed;

struct atif_system_params {
	u16 size;		/* structure size in bytes (includes size field) */
	u32 valid_mask;		/* valid flags mask */
	u32 flags;		/* flags */
	u8 command_code;	/* notify command code */
} __packed;

struct atif_sbios_requests {
	u16 size;		/* structure size in bytes (includes size field) */
	u32 pending;		/* pending sbios requests */
	u8 panel_exp_mode;	/* panel expansion mode */
	u8 thermal_gfx;		/* thermal state: target gfx controller */
	u8 thermal_state;	/* thermal state: state id (0: exit state, non-0: state) */
	u8 forced_power_gfx;	/* forced power state: target gfx controller */
	u8 forced_power_state;	/* forced power state: state id */
	u8 system_power_src;	/* system power source */
	u8 backlight_level;	/* panel backlight level (0-255) */
} __packed;

struct atif_qbtc_arguments {
	u16 size;		/* structure size in bytes (includes size field) */
	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 input_signal;	/* input signal in range 0-255 */
} __packed;

struct atif_qbtc_output {
	u16 size;		/* structure size in bytes (includes size field) */
	u16 flags;		/* all zeroes */
	u8 error_code;		/* error code */
	u8 ac_level;		/* default brightness on AC power */
	u8 dc_level;		/* default brightness on DC power */
	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];
} __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
#define ATIF_NOTIFY_81		1
#define ATIF_NOTIFY_N		2

struct atcs_verify_interface {
	u16 size;		/* structure size in bytes (includes size field) */
	u16 version;		/* version */
	u32 function_bits;	/* supported functions bit vector */
} __packed;

#define ATCS_VALID_FLAGS_MASK	0x3

struct atcs_pref_req_input {
	u16 size;		/* structure size in bytes (includes size field) */
	u16 client_id;		/* client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) */
	u16 valid_flags_mask;	/* valid flags mask */
	u16 flags;		/* flags */
	u8 req_type;		/* request type */
	u8 perf_req;		/* performance request */
} __packed;

struct atcs_pref_req_output {
	u16 size;		/* structure size in bytes (includes size field) */
	u8 ret_val;		/* return value */
} __packed;

struct atcs_pwr_shift_input {
	u16 size;		/* structure size in bytes (includes size field) */
	u16 dgpu_id;		/* client id (bit 2-0: func num, 7-3: dev num, 15-8: bus num) */
	u8 dev_acpi_state;	/* D0 = 0, D3 hot = 3 */
	u8 drv_state;	/* 0 = operational, 1 = not operational */
} __packed;

struct atcs_get_uma_size_output {
	u16 size;		/* structure size in bytes (includes size field) */
	u32 uma_size_mb;	/* allocated UMA size in MB */
} __packed;

Annotation

Implementation Notes