drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/amdgpu/amdgpu_mmhub.h- Extension
.h- Size
- 3459 bytes
- Lines
- 104
- 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 amdgpu_mmhub_rasstruct amdgpu_mmhub_funcsstruct amdgpu_mmhub_client_idsstruct amdgpu_mmhubenum amdgpu_mmhub_ras_memory_idfunction amdgpu_mmhub_init_client_infofunction amdgpu_mmhub_client_name
Annotated Snippet
struct amdgpu_mmhub_ras {
struct amdgpu_ras_block_object ras_block;
};
struct amdgpu_mmhub_funcs {
u64 (*get_fb_location)(struct amdgpu_device *adev);
u64 (*get_mc_fb_offset)(struct amdgpu_device *adev);
void (*init)(struct amdgpu_device *adev);
int (*gart_enable)(struct amdgpu_device *adev);
void (*set_fault_enable_default)(struct amdgpu_device *adev,
bool value);
void (*gart_disable)(struct amdgpu_device *adev);
int (*set_clockgating)(struct amdgpu_device *adev,
enum amd_clockgating_state state);
void (*get_clockgating)(struct amdgpu_device *adev, u64 *flags);
void (*setup_vm_pt_regs)(struct amdgpu_device *adev, uint32_t vmid,
uint64_t page_table_base);
void (*update_power_gating)(struct amdgpu_device *adev,
bool enable);
int (*get_xgmi_info)(struct amdgpu_device *adev);
};
struct amdgpu_mmhub_client_ids {
const char * const (*names)[2];
unsigned int size;
};
struct amdgpu_mmhub {
struct ras_common_if *ras_if;
const struct amdgpu_mmhub_funcs *funcs;
struct amdgpu_mmhub_ras *ras;
struct amdgpu_mmhub_client_ids client_ids;
};
static inline void
amdgpu_mmhub_init_client_info(struct amdgpu_mmhub *mmhub,
const char * const (*names)[2],
unsigned int size)
{
mmhub->client_ids.names = names;
mmhub->client_ids.size = size;
}
static inline const char *
amdgpu_mmhub_client_name(struct amdgpu_mmhub *mmhub,
u32 cid, bool is_write)
{
if (cid < mmhub->client_ids.size)
return mmhub->client_ids.names[cid][is_write];
return NULL;
}
int amdgpu_mmhub_ras_sw_init(struct amdgpu_device *adev);
#endif
Annotation
- Detected declarations: `struct amdgpu_mmhub_ras`, `struct amdgpu_mmhub_funcs`, `struct amdgpu_mmhub_client_ids`, `struct amdgpu_mmhub`, `enum amdgpu_mmhub_ras_memory_id`, `function amdgpu_mmhub_init_client_info`, `function amdgpu_mmhub_client_name`.
- 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.