drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/inc/hw/opp.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/dc/inc/hw/opp.h- Extension
.h- Size
- 10053 bytes
- Lines
- 387
- 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
hw_shared.hdc_hw_types.htransform.hmpc.h
Detected Declarations
struct fixed31_32struct clamping_and_pixel_encoding_paramsstruct bit_depth_reduction_paramsstruct gamma_pixelstruct custom_float_formatstruct custom_float_valuestruct hw_x_pointstruct pwl_float_data_exstruct gamma_pointstruct pixel_gamma_pointstruct gamma_coefficientsstruct pwl_float_datastruct mpc_tree_cfgstruct output_pixel_processorstruct opp_grph_csc_adjustmentstruct hw_adjustment_rangestruct oppbuf_paramsstruct dcn_opp_reg_statestruct opp_funcsenum clamping_rangeenum wide_gamut_regamma_modeenum channel_nameenum hw_point_positionenum fmt_stereo_actionenum ovl_csc_adjust_itemenum oppbuf_display_segmentation
Annotated Snippet
struct clamping_and_pixel_encoding_params {
enum dc_pixel_encoding pixel_encoding; /* Pixel Encoding */
enum clamping_range clamping_level; /* Clamping identifier */
enum dc_color_depth c_depth; /* Deep color use. */
};
struct bit_depth_reduction_params {
struct {
/* truncate/round */
/* trunc/round enabled*/
uint32_t TRUNCATE_ENABLED:1;
/* 2 bits: 0=6 bpc, 1=8 bpc, 2 = 10bpc*/
uint32_t TRUNCATE_DEPTH:2;
/* truncate or round*/
uint32_t TRUNCATE_MODE:1;
/* spatial dither */
/* Spatial Bit Depth Reduction enabled*/
uint32_t SPATIAL_DITHER_ENABLED:1;
/* 2 bits: 0=6 bpc, 1 = 8 bpc, 2 = 10bpc*/
uint32_t SPATIAL_DITHER_DEPTH:2;
/* 0-3 to select patterns*/
uint32_t SPATIAL_DITHER_MODE:2;
/* Enable RGB random dithering*/
uint32_t RGB_RANDOM:1;
/* Enable Frame random dithering*/
uint32_t FRAME_RANDOM:1;
/* Enable HighPass random dithering*/
uint32_t HIGHPASS_RANDOM:1;
/* temporal dither*/
/* frame modulation enabled*/
uint32_t FRAME_MODULATION_ENABLED:1;
/* same as for trunc/spatial*/
uint32_t FRAME_MODULATION_DEPTH:2;
/* 2/4 gray levels*/
uint32_t TEMPORAL_LEVEL:1;
uint32_t FRC25:2;
uint32_t FRC50:2;
uint32_t FRC75:2;
} flags;
uint32_t r_seed_value;
uint32_t b_seed_value;
uint32_t g_seed_value;
enum dc_pixel_encoding pixel_encoding;
};
enum wide_gamut_regamma_mode {
/* 0x0 - BITS2:0 Bypass */
WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_BYPASS,
/* 0x1 - Fixed curve sRGB 2.4 */
WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_SRGB24,
/* 0x2 - Fixed curve xvYCC 2.22 */
WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_XYYCC22,
/* 0x3 - Programmable control A */
WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_MATRIX_A,
/* 0x4 - Programmable control B */
WIDE_GAMUT_REGAMMA_MODE_GRAPHICS_MATRIX_B,
/* 0x0 - BITS6:4 Bypass */
WIDE_GAMUT_REGAMMA_MODE_OVL_BYPASS,
/* 0x1 - Fixed curve sRGB 2.4 */
WIDE_GAMUT_REGAMMA_MODE_OVL_SRGB24,
/* 0x2 - Fixed curve xvYCC 2.22 */
WIDE_GAMUT_REGAMMA_MODE_OVL_XYYCC22,
/* 0x3 - Programmable control A */
WIDE_GAMUT_REGAMMA_MODE_OVL_MATRIX_A,
/* 0x4 - Programmable control B */
WIDE_GAMUT_REGAMMA_MODE_OVL_MATRIX_B
};
struct gamma_pixel {
struct fixed31_32 r;
struct fixed31_32 g;
struct fixed31_32 b;
};
enum channel_name {
CHANNEL_NAME_RED,
CHANNEL_NAME_GREEN,
CHANNEL_NAME_BLUE
};
struct custom_float_format {
uint32_t mantissa_bits;
uint32_t exponenta_bits;
bool sign;
};
struct custom_float_value {
Annotation
- Immediate include surface: `hw_shared.h`, `dc_hw_types.h`, `transform.h`, `mpc.h`.
- Detected declarations: `struct fixed31_32`, `struct clamping_and_pixel_encoding_params`, `struct bit_depth_reduction_params`, `struct gamma_pixel`, `struct custom_float_format`, `struct custom_float_value`, `struct hw_x_point`, `struct pwl_float_data_ex`, `struct gamma_point`, `struct pixel_gamma_point`.
- 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.