drivers/gpu/drm/amd/display/include/grph_object_id.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/include/grph_object_id.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/include/grph_object_id.h- Extension
.h- Size
- 8358 bytes
- Lines
- 321
- 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
- No C-style include directives detected by the generator.
Detected Declarations
struct graphics_object_idenum object_typeenum object_enum_idenum generic_idenum controller_idenum clock_source_idenum encoder_idenum connector_idenum audio_idenum engine_idenum transmitter_color_depthenum dp_alt_modefunction dal_graphics_object_id_initfunction dal_graphics_object_id_to_uintfunction dal_graphics_object_id_get_controller_idfunction dal_graphics_object_id_get_clock_source_idfunction dal_graphics_object_id_get_encoder_idfunction dal_graphics_object_id_get_connector_idfunction dal_graphics_object_id_get_audio_idfunction dal_graphics_object_id_get_engine_idfunction dal_graphics_object_id_equalfunction dc_connector_supports_analog
Annotated Snippet
struct graphics_object_id {
uint32_t id:8;
enum object_enum_id enum_id :4;
enum object_type type :4;
uint32_t reserved:16; /* for padding. total size should be u32 */
};
/* some simple functions for convenient graphics_object_id handle */
static inline struct graphics_object_id dal_graphics_object_id_init(
uint32_t id,
enum object_enum_id enum_id,
enum object_type type)
{
struct graphics_object_id result = {
id, enum_id, type, 0
};
return result;
}
/* Based on internal data members memory layout */
static inline uint32_t dal_graphics_object_id_to_uint(
struct graphics_object_id id)
{
return id.id + (id.enum_id << 0x8) + (id.type << 0xc);
}
static inline enum controller_id dal_graphics_object_id_get_controller_id(
struct graphics_object_id id)
{
if (id.type == OBJECT_TYPE_CONTROLLER)
return (enum controller_id) id.id;
return CONTROLLER_ID_UNDEFINED;
}
static inline enum clock_source_id dal_graphics_object_id_get_clock_source_id(
struct graphics_object_id id)
{
if (id.type == OBJECT_TYPE_CLOCK_SOURCE)
return (enum clock_source_id) id.id;
return CLOCK_SOURCE_ID_UNDEFINED;
}
static inline enum encoder_id dal_graphics_object_id_get_encoder_id(
struct graphics_object_id id)
{
if (id.type == OBJECT_TYPE_ENCODER)
return (enum encoder_id) id.id;
return ENCODER_ID_UNKNOWN;
}
static inline enum connector_id dal_graphics_object_id_get_connector_id(
struct graphics_object_id id)
{
if (id.type == OBJECT_TYPE_CONNECTOR)
return (enum connector_id) id.id;
return CONNECTOR_ID_UNKNOWN;
}
static inline enum audio_id dal_graphics_object_id_get_audio_id(
struct graphics_object_id id)
{
if (id.type == OBJECT_TYPE_AUDIO)
return (enum audio_id) id.id;
return AUDIO_ID_UNKNOWN;
}
static inline enum engine_id dal_graphics_object_id_get_engine_id(
struct graphics_object_id id)
{
if (id.type == OBJECT_TYPE_ENGINE)
return (enum engine_id) id.id;
return ENGINE_ID_UNKNOWN;
}
static inline bool dal_graphics_object_id_equal(
struct graphics_object_id id_1,
struct graphics_object_id id_2)
{
if ((id_1.id == id_2.id) && (id_1.enum_id == id_2.enum_id) &&
(id_1.type == id_2.type)) {
return true;
}
return false;
}
static inline bool dc_connector_supports_analog(const enum connector_id conn)
{
return conn == CONNECTOR_ID_VGA ||
Annotation
- Detected declarations: `struct graphics_object_id`, `enum object_type`, `enum object_enum_id`, `enum generic_id`, `enum controller_id`, `enum clock_source_id`, `enum encoder_id`, `enum connector_id`, `enum audio_id`, `enum engine_id`.
- 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.