drivers/gpu/drm/amd/include/umsch_mm_4_0_api_def.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/include/umsch_mm_4_0_api_def.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/include/umsch_mm_4_0_api_def.h- Extension
.h- Size
- 11579 bytes
- Lines
- 447
- 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 UMSCH_INSTANCE_DB_OFFSETstruct UMSCH_LOG_CONTEXT_STATE_CHANGEstruct UMSCH_LOG_QUEUE_NEW_WORKstruct UMSCH_LOG_QUEUE_UNWAIT_SYNC_OBJECTstruct UMSCH_LOG_QUEUE_NO_MORE_WORKstruct UMSCH_LOG_QUEUE_WAIT_SYNC_OBJECTstruct UMSCH_LOG_ENTRY_HEADERstruct UMSCH_LOG_ENTRY_DATAstruct UMSCH_LOG_BUFFERstruct UMSCH_API_STATUSenum UMSCH_API_TYPEenum UMSCH_MS_LOG_CONTEXT_STATEenum UMSCH_MS_LOG_OPERATIONenum UMSCH_API_OPCODEenum UMSCH_AMD_PRIORITY_LEVELenum UMSCH_ENGINE_TYPEenum VM_HUB_TYPEenum UMSCH_RESUME_OPTIONenum UMSCH_RESET_OPTION
Annotated Snippet
struct UMSCH_INSTANCE_DB_OFFSET {
uint32_t instance_index;
uint32_t doorbell_offset;
};
struct UMSCH_LOG_CONTEXT_STATE_CHANGE {
uint64_t h_context;
enum UMSCH_MS_LOG_CONTEXT_STATE new_context_state;
};
struct UMSCH_LOG_QUEUE_NEW_WORK {
uint64_t h_queue;
uint64_t reserved;
};
struct UMSCH_LOG_QUEUE_UNWAIT_SYNC_OBJECT {
uint64_t h_queue;
uint64_t h_sync_object;
};
struct UMSCH_LOG_QUEUE_NO_MORE_WORK {
uint64_t h_queue;
uint64_t reserved;
};
struct UMSCH_LOG_QUEUE_WAIT_SYNC_OBJECT {
uint64_t h_queue;
uint64_t h_sync_object;
};
struct UMSCH_LOG_ENTRY_HEADER {
uint32_t first_free_entry_index;
uint32_t wraparound_count;
uint64_t number_of_entries;
uint64_t reserved[2];
};
struct UMSCH_LOG_ENTRY_DATA {
uint64_t gpu_time_stamp;
uint32_t operation_type; /* operation_type is of UMSCH_LOG_OPERATION type */
uint32_t reserved_operation_type_bits;
union {
struct UMSCH_LOG_CONTEXT_STATE_CHANGE context_state_change;
struct UMSCH_LOG_QUEUE_NEW_WORK queue_new_work;
struct UMSCH_LOG_QUEUE_UNWAIT_SYNC_OBJECT queue_unwait_sync_object;
struct UMSCH_LOG_QUEUE_NO_MORE_WORK queue_no_more_work;
struct UMSCH_LOG_QUEUE_WAIT_SYNC_OBJECT queue_wait_sync_object;
uint64_t all[2];
};
};
struct UMSCH_LOG_BUFFER {
struct UMSCH_LOG_ENTRY_HEADER header;
struct UMSCH_LOG_ENTRY_DATA entries[1];
};
enum UMSCH_API_OPCODE {
UMSCH_API_SET_HW_RSRC = 0x00,
UMSCH_API_SET_SCHEDULING_CONFIG = 0x1,
UMSCH_API_ADD_QUEUE = 0x2,
UMSCH_API_REMOVE_QUEUE = 0x3,
UMSCH_API_PERFORM_YIELD = 0x4,
UMSCH_API_SUSPEND = 0x5,
UMSCH_API_RESUME = 0x6,
UMSCH_API_RESET = 0x7,
UMSCH_API_SET_LOG_BUFFER = 0x8,
UMSCH_API_CHANGE_CONTEXT_PRIORITY = 0x9,
UMSCH_API_QUERY_SCHEDULER_STATUS = 0xA,
UMSCH_API_UPDATE_AFFINITY = 0xB,
UMSCH_API_MAX = 0xFF
};
union UMSCH_API_HEADER {
struct {
uint32_t type : 4; /* 0 - Invalid; 1 - Scheduling; 2 - TBD */
uint32_t opcode : 8;
uint32_t dwsize : 8;
uint32_t reserved : 12;
};
uint32_t u32All;
};
enum UMSCH_AMD_PRIORITY_LEVEL {
AMD_PRIORITY_LEVEL_IDLE = 0,
AMD_PRIORITY_LEVEL_NORMAL = 1,
AMD_PRIORITY_LEVEL_FOCUS = 2,
AMD_PRIORITY_LEVEL_REALTIME = 3,
AMD_PRIORITY_NUM_LEVELS
};
Annotation
- Detected declarations: `struct UMSCH_INSTANCE_DB_OFFSET`, `struct UMSCH_LOG_CONTEXT_STATE_CHANGE`, `struct UMSCH_LOG_QUEUE_NEW_WORK`, `struct UMSCH_LOG_QUEUE_UNWAIT_SYNC_OBJECT`, `struct UMSCH_LOG_QUEUE_NO_MORE_WORK`, `struct UMSCH_LOG_QUEUE_WAIT_SYNC_OBJECT`, `struct UMSCH_LOG_ENTRY_HEADER`, `struct UMSCH_LOG_ENTRY_DATA`, `struct UMSCH_LOG_BUFFER`, `struct UMSCH_API_STATUS`.
- 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.