drivers/gpu/drm/amd/display/modules/power/power_helpers.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/modules/power/power_helpers.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/modules/power/power_helpers.h
Extension
.h
Size
7296 bytes
Lines
212
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 dmcu_iram_parameters {
	unsigned int *backlight_lut_array;
	unsigned int backlight_lut_array_size;
	bool backlight_ramping_override;
	unsigned int backlight_ramping_reduction;
	unsigned int backlight_ramping_start;
	unsigned int min_abm_backlight;
	unsigned int set;
};
struct backlight_state {
	/* HW uses u16.16 format for backlight PWM */
	unsigned int backlight_pwm;
	/* DM may call power module to set backlight
	 * targeting percent brightness
	 */
	unsigned int backlight_millipercent;
	/* DM may call power module to set backlight based on an explicit
	 * nits value.
	 */
	unsigned int backlight_millinit;
	unsigned int frame_ramp;
	bool smooth_brightness_enabled;
	bool isHDR;
};
struct power_entity {
	struct dc_stream_state *stream;
	struct psr_caps *caps;
	struct mod_power_psr_context *psr_context;

	/*PSR cached properties*/
	bool psr_enabled;
	unsigned int psr_events;
	unsigned int psr_power_opt;
	unsigned int replay_events;
};

struct pwr_backlight_properties {
	bool use_nits_based_brightness;
	bool disable_fractional_pwm;

	unsigned int min_abm_backlight;
	unsigned int num_backlight_levels;

	bool backlight_ramping_override;
	unsigned int backlight_ramping_reduction;
	unsigned int backlight_ramping_start;

	/* Backlight cached properties */
	unsigned int ac_backlight_percent;
	unsigned int dc_backlight_percent;

	/* backlight LUT stored in HW u16.16 format*/
	unsigned int *backlight_lut;
	unsigned int min_backlight_pwm;
	unsigned int max_backlight_pwm;
	unsigned int backlight_range;

	/* Describes the panel's min and max luminance in millinits measured
	 * on full white screen, in min and max backlight settings.
	 */
	unsigned int min_brightness_millinits;
	unsigned int max_brightness_millinits;
	unsigned int nits_range;

	bool backlight_caps_valid;
	bool use_custom_backlight_caps;
	unsigned int custom_backlight_caps_config_no;
	bool use_linear_backlight_curve;
};

struct dmcu_varibright_cached_properties {
	unsigned int varibright_config_setting;
	unsigned int varibright_level;
	unsigned int varibright_hw_level;
	unsigned int def_varibright_level;
	bool varibright_user_enable;
	bool varibright_active;
};

struct core_power {
	struct mod_power mod_public;
	struct dc *dc;
	struct power_entity *map;
	struct dmcu_varibright_cached_properties varibright_prop;
	struct pwr_backlight_properties bl_prop[MAX_NUM_EDP];
	struct backlight_state bl_state[MAX_NUM_EDP];
	unsigned int edp_num;

	bool psr_smu_optimizations_support;
	bool multi_disp_optimizations_support;

Annotation

Implementation Notes