drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/dc/dce110/dce110_mem_input_v.c- Extension
.c- Size
- 27223 bytes
- Lines
- 1052
- 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.hdce/dce_11_0_d.hdce/dce_11_0_sh_mask.hgmc/gmc_8_2_d.hgmc/gmc_8_2_sh_mask.hinclude/logger_interface.hinc/dce_calcs.hdce/dce_mem_input.hdce110_mem_input_v.h
Detected Declarations
enum bits_per_pixelfunction filesfunction program_pri_addr_cfunction program_pri_addr_lfunction program_addrfunction enablefunction program_tilingfunction program_size_and_rotationfunction program_pixel_formatfunction dce_mem_input_v_is_surface_pendingfunction dce_mem_input_v_program_surface_flip_and_addrfunction dce_mem_input_v_program_pte_vmfunction dce_mem_input_v_program_surface_configfunction program_urgency_watermarkfunction program_urgency_watermark_lfunction program_urgency_watermark_cfunction program_stutter_watermarkfunction program_stutter_watermark_lfunction program_stutter_watermark_cfunction program_nbp_watermarkfunction program_nbp_watermark_lfunction program_nbp_watermark_cfunction dce_mem_input_v_program_display_marksfunction dce_mem_input_program_chroma_display_marksfunction dce110_allocate_mem_input_vfunction dce110_free_mem_input_vfunction dce110_mem_input_v_construct
Annotated Snippet
switch (format) {
case SURFACE_PIXEL_FORMAT_GRPH_PALETA_256_COLORS:
grph_depth = 0;
grph_format = 0;
break;
case SURFACE_PIXEL_FORMAT_GRPH_RGB565:
grph_depth = 1;
grph_format = 1;
break;
case SURFACE_PIXEL_FORMAT_GRPH_ARGB8888:
case SURFACE_PIXEL_FORMAT_GRPH_ABGR8888:
grph_depth = 2;
grph_format = 0;
break;
case SURFACE_PIXEL_FORMAT_GRPH_ARGB2101010:
case SURFACE_PIXEL_FORMAT_GRPH_ABGR2101010:
case SURFACE_PIXEL_FORMAT_GRPH_ABGR2101010_XR_BIAS:
grph_depth = 2;
grph_format = 1;
break;
case SURFACE_PIXEL_FORMAT_GRPH_ARGB16161616:
case SURFACE_PIXEL_FORMAT_GRPH_ABGR16161616:
case SURFACE_PIXEL_FORMAT_GRPH_ABGR16161616F:
case SURFACE_PIXEL_FORMAT_GRPH_ARGB16161616F:
grph_depth = 3;
grph_format = 0;
break;
default:
grph_depth = 2;
grph_format = 0;
break;
}
set_reg_field_value(
value,
grph_depth,
UNP_GRPH_CONTROL,
GRPH_DEPTH);
set_reg_field_value(
value,
grph_format,
UNP_GRPH_CONTROL,
GRPH_FORMAT);
dm_write_reg(
mem_input110->base.ctx,
mmUNP_GRPH_CONTROL,
value);
value = dm_read_reg(
mem_input110->base.ctx,
mmUNP_GRPH_CONTROL_EXP);
/* VIDEO FORMAT 0 */
set_reg_field_value(
value,
0,
UNP_GRPH_CONTROL_EXP,
VIDEO_FORMAT);
dm_write_reg(
mem_input110->base.ctx,
mmUNP_GRPH_CONTROL_EXP,
value);
} else {
/* Video 422 and 420 needs UNP_GRPH_CONTROL_EXP programmed */
uint32_t value;
uint8_t video_format;
value = dm_read_reg(
mem_input110->base.ctx,
mmUNP_GRPH_CONTROL_EXP);
switch (format) {
case SURFACE_PIXEL_FORMAT_VIDEO_420_YCbCr:
video_format = 2;
break;
case SURFACE_PIXEL_FORMAT_VIDEO_420_YCrCb:
video_format = 3;
break;
default:
video_format = 0;
break;
}
set_reg_field_value(
value,
video_format,
UNP_GRPH_CONTROL_EXP,
VIDEO_FORMAT);
Annotation
- Immediate include surface: `dm_services.h`, `dce/dce_11_0_d.h`, `dce/dce_11_0_sh_mask.h`, `gmc/gmc_8_2_d.h`, `gmc/gmc_8_2_sh_mask.h`, `include/logger_interface.h`, `inc/dce_calcs.h`, `dce/dce_mem_input.h`.
- Detected declarations: `enum bits_per_pixel`, `function files`, `function program_pri_addr_c`, `function program_pri_addr_l`, `function program_addr`, `function enable`, `function program_tiling`, `function program_size_and_rotation`, `function program_pixel_format`, `function dce_mem_input_v_is_surface_pending`.
- 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.