drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/dc/core/dc_hw_sequencer.c- Extension
.c- Size
- 196963 bytes
- Lines
- 5167
- 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.hcore_types.htiming_generator.hhw_sequencer.hhw_sequencer_private.hbasics/dc_common.hresource.hdc_dmub_srv.hdc_state_priv.hopp.hdsc.hdchubbub.hdccg.habm.hdcn10/dcn10_hubbub.hdce/dmub_hw_lock_mgr.hlink_service.h
Detected Declarations
struct out_csc_color_matrix_typeenum black_color_formatenum dc_color_space_typefunction is_rgb_typefunction is_rgb_limited_typefunction is_ycbcr601_typefunction is_ycbcr601_limited_typefunction is_ycbcr709_typefunction is_ycbcr2020_typefunction is_ycbcr709_limited_typefunction get_color_space_typefunction color_space_to_black_colorfunction hwss_wait_for_blank_completefunction get_mpctree_visual_confirm_colorfunction get_surface_visual_confirm_colorfunction get_hdr_visual_confirm_colorfunction get_smartmux_visual_confirm_colorfunction get_vabc_visual_confirm_colorfunction get_subvp_visual_confirm_colorfunction get_mclk_switch_visual_confirm_colorfunction get_cursor_visual_confirm_colorfunction get_dcc_visual_confirm_colorfunction set_p_state_switch_methodfunction set_drr_and_clear_adjust_pendingfunction get_fams2_visual_confirm_colorfunction hwss_build_fast_sequencefunction hwss_execute_sequencefunction hwss_add_optc_pipe_control_lockfunction hwss_add_hubp_set_flip_control_gslfunction hwss_add_hubp_program_triplebufferfunction hwss_add_hubp_update_plane_addrfunction hwss_add_dpp_set_input_transfer_funcfunction hwss_add_dpp_program_gamut_remapfunction hwss_add_dpp_program_bias_and_scalefunction hwss_add_optc_program_manual_triggerfunction hwss_add_dpp_set_output_transfer_funcfunction hwss_add_mpc_update_visual_confirmfunction hwss_add_mpc_power_on_mpc_mem_pwrfunction hwss_add_mpc_set_output_cscfunction hwss_add_mpc_set_ocsc_defaultfunction hwss_add_dmub_send_dmcub_cmdfunction hwss_add_dmub_subvp_save_surf_addrfunction hwss_add_hubp_wait_for_dcc_meta_propfunction hwss_add_hubp_wait_pipe_read_startfunction hwss_add_hws_apply_update_flags_for_phantomfunction hwss_add_hws_update_phantom_vp_positionfunction hwss_add_optc_set_odm_combinefunction hwss_add_optc_set_odm_bypass
Annotated Snippet
struct out_csc_color_matrix_type {
enum dc_color_space_type color_space_type;
uint16_t regval[12];
};
static const struct out_csc_color_matrix_type output_csc_matrix[] = {
{ COLOR_SPACE_RGB_TYPE,
{ 0x2000, 0, 0, 0,
0, 0x2000, 0, 0,
0, 0, 0x2000, 0} },
{ COLOR_SPACE_RGB_LIMITED_TYPE,
{ 0x1B67, 0, 0, 0x201,
0, 0x1B67, 0, 0x201,
0, 0, 0x1B67, 0x201} },
{ COLOR_SPACE_YCBCR601_TYPE,
{ 0xE04, 0xF444, 0xFDB9, 0x1004,
0x831, 0x1016, 0x320, 0x201,
0xFB45, 0xF6B7, 0xE04, 0x1004} },
{ COLOR_SPACE_YCBCR709_TYPE,
{ 0xE04, 0xF345, 0xFEB7, 0x1004,
0x5D3, 0x1399, 0x1FA, 0x201,
0xFCCA, 0xF533, 0xE04, 0x1004} },
/* TODO: correct values below */
{ COLOR_SPACE_YCBCR601_LIMITED_TYPE,
{ 0xE00, 0xF447, 0xFDB9, 0x1000,
0x991, 0x12C9, 0x3A6, 0x200,
0xFB47, 0xF6B9, 0xE00, 0x1000} },
{ COLOR_SPACE_YCBCR709_LIMITED_TYPE,
{ 0xE00, 0xF349, 0xFEB7, 0x1000,
0x6CE, 0x16E3, 0x24F, 0x200,
0xFCCB, 0xF535, 0xE00, 0x1000} },
{ COLOR_SPACE_YCBCR2020_TYPE,
{ 0x1000, 0xF149, 0xFEB7, 0x1004,
0x0868, 0x15B2, 0x01E6, 0x201,
0xFB88, 0xF478, 0x1000, 0x1004} },
{ COLOR_SPACE_YCBCR709_BLACK_TYPE,
{ 0x0000, 0x0000, 0x0000, 0x1000,
0x0000, 0x0000, 0x0000, 0x0200,
0x0000, 0x0000, 0x0000, 0x1000} },
};
static bool is_rgb_type(
enum dc_color_space color_space)
{
bool ret = false;
if (color_space == COLOR_SPACE_SRGB ||
color_space == COLOR_SPACE_XR_RGB ||
color_space == COLOR_SPACE_MSREF_SCRGB ||
color_space == COLOR_SPACE_2020_RGB_FULLRANGE ||
color_space == COLOR_SPACE_ADOBERGB ||
color_space == COLOR_SPACE_DCIP3 ||
color_space == COLOR_SPACE_DOLBYVISION)
ret = true;
return ret;
}
static bool is_rgb_limited_type(
enum dc_color_space color_space)
{
bool ret = false;
if (color_space == COLOR_SPACE_SRGB_LIMITED ||
color_space == COLOR_SPACE_2020_RGB_LIMITEDRANGE)
ret = true;
return ret;
}
static bool is_ycbcr601_type(
enum dc_color_space color_space)
{
bool ret = false;
if (color_space == COLOR_SPACE_YCBCR601 ||
color_space == COLOR_SPACE_XV_YCC_601)
ret = true;
return ret;
}
static bool is_ycbcr601_limited_type(
enum dc_color_space color_space)
{
bool ret = false;
if (color_space == COLOR_SPACE_YCBCR601_LIMITED)
ret = true;
return ret;
}
static bool is_ycbcr709_type(
Annotation
- Immediate include surface: `dm_services.h`, `core_types.h`, `timing_generator.h`, `hw_sequencer.h`, `hw_sequencer_private.h`, `basics/dc_common.h`, `resource.h`, `dc_dmub_srv.h`.
- Detected declarations: `struct out_csc_color_matrix_type`, `enum black_color_format`, `enum dc_color_space_type`, `function is_rgb_type`, `function is_rgb_limited_type`, `function is_ycbcr601_type`, `function is_ycbcr601_limited_type`, `function is_ycbcr709_type`, `function is_ycbcr2020_type`, `function is_ycbcr709_limited_type`.
- 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.