drivers/gpu/drm/amd/display/modules/inc/mod_power.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/modules/inc/mod_power.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/modules/inc/mod_power.h- Extension
.h- Size
- 14241 bytes
- Lines
- 418
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
dm_services.h
Detected Declarations
struct core_powerstruct mod_power_init_paramsstruct mod_powerstruct varibright_infostruct mod_power_psr_contextenum psr_eventenum replay_eventenum replay_enable_option
Annotated Snippet
struct mod_power_init_params {
bool disable_fractional_pwm;
/* Use nits based brightness instead of brightness percentage
*/
bool use_nits_based_brightness;
unsigned int panel_min_millinits;
unsigned int panel_max_millinits;
unsigned int min_backlight_pwm;
unsigned int max_backlight_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;
bool def_varibright_enable;
unsigned int def_varibright_level;
unsigned int varibright_level;
unsigned int abm_config_setting;
bool allow_psr_smu_optimizations;
bool allow_psr_multi_disp_optimizations;
bool use_custom_backlight_caps;
unsigned int custom_backlight_caps_config_no;
bool use_linear_backlight_curve;
};
struct mod_power {
int dummy;
};
/* VariBright settings structure */
struct varibright_info {
unsigned int level;
bool enable;
bool activate;
};
struct mod_power_psr_context {
/* ddc line */
unsigned int channel;
/* Transmitter id */
unsigned int transmitter_id;
/* Engine Id is used for Dig Be source select */
unsigned int engine_id;
/* Controller Id used for Dig Fe source select */
unsigned int controller_id;
/* Pcie or Uniphy */
unsigned int phy_type;
/* Physical PHY Id used by SMU interpretation */
unsigned int smu_phy_id;
/* Vertical total pixels from crtc timing.
* This is used for static screen detection.
* ie. If we want to detect half a frame,
* we use this to determine the hyst lines.
*/
unsigned int crtc_timing_vertical_total;
/* PSR supported from panel capabilities and
* current display configuration
*/
bool psr_supported_display_config;
/* Whether fast link training is supported by the panel */
bool psr_exit_link_training_required;
/* If RFB setup time is greater than the total VBLANK time,
* it is not possible for the sink to capture the video frame
* in the same frame the SDP is sent. In this case,
* the frame capture indication bit should be set and an extra
* static frame should be transmitted to the sink.
*/
bool psr_frame_capture_indication_req;
/* Set the last possible line SDP may be transmitted without violating
* the RFB setup time or entering the active video frame.
*/
unsigned int sdp_transmit_line_num_deadline;
/* The VSync rate in Hz used to calculate the
* step size for smooth brightness feature
*/
unsigned int vsync_rate_hz;
unsigned int skip_psr_wait_for_pll_lock;
unsigned int number_of_controllers;
/* Unused, for future use. To indicate that first changed frame from
* state3 shouldn't result in psr_inactive, but rather to perform
* an automatic single frame rfb_update.
*/
bool rfb_update_auto_en;
Annotation
- Immediate include surface: `dm_services.h`.
- Detected declarations: `struct core_power`, `struct mod_power_init_params`, `struct mod_power`, `struct varibright_info`, `struct mod_power_psr_context`, `enum psr_event`, `enum replay_event`, `enum replay_enable_option`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.