drivers/gpu/drm/amd/include/amd_shared.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/include/amd_shared.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/include/amd_shared.h- Extension
.h- Size
- 16776 bytes
- Lines
- 489
- 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
drm/amd_asic_type.hdrm/drm_print.h
Detected Declarations
struct amdgpu_ip_blockstruct amd_ip_funcsenum amd_chip_flagsenum amd_apu_flagsenum amd_ip_block_typeenum amd_clockgating_stateenum amd_powergating_stateenum PP_FEATURE_MASKenum amd_harvest_ip_maskenum DC_FEATURE_MASKenum DC_DEBUG_MASKenum amd_dpm_forced_level
Annotated Snippet
struct amd_ip_funcs {
char *name;
int (*early_init)(struct amdgpu_ip_block *ip_block);
int (*late_init)(struct amdgpu_ip_block *ip_block);
int (*sw_init)(struct amdgpu_ip_block *ip_block);
int (*sw_fini)(struct amdgpu_ip_block *ip_block);
int (*early_fini)(struct amdgpu_ip_block *ip_block);
int (*hw_init)(struct amdgpu_ip_block *ip_block);
int (*hw_fini)(struct amdgpu_ip_block *ip_block);
void (*late_fini)(struct amdgpu_ip_block *ip_block);
int (*prepare_suspend)(struct amdgpu_ip_block *ip_block);
int (*suspend)(struct amdgpu_ip_block *ip_block);
int (*resume)(struct amdgpu_ip_block *ip_block);
void (*complete)(struct amdgpu_ip_block *ip_block);
bool (*is_idle)(struct amdgpu_ip_block *ip_block);
int (*wait_for_idle)(struct amdgpu_ip_block *ip_block);
bool (*check_soft_reset)(struct amdgpu_ip_block *ip_block);
int (*pre_soft_reset)(struct amdgpu_ip_block *ip_block);
int (*soft_reset)(struct amdgpu_ip_block *ip_block);
int (*post_soft_reset)(struct amdgpu_ip_block *ip_block);
int (*set_clockgating_state)(struct amdgpu_ip_block *ip_block,
enum amd_clockgating_state state);
int (*set_powergating_state)(struct amdgpu_ip_block *ip_block,
enum amd_powergating_state state);
void (*get_clockgating_state)(struct amdgpu_ip_block *ip_block, u64 *flags);
void (*dump_ip_state)(struct amdgpu_ip_block *ip_block);
void (*print_ip_state)(struct amdgpu_ip_block *ip_block, struct drm_printer *p);
};
#endif /* __AMD_SHARED_H__ */
Annotation
- Immediate include surface: `drm/amd_asic_type.h`, `drm/drm_print.h`.
- Detected declarations: `struct amdgpu_ip_block`, `struct amd_ip_funcs`, `enum amd_chip_flags`, `enum amd_apu_flags`, `enum amd_ip_block_type`, `enum amd_clockgating_state`, `enum amd_powergating_state`, `enum PP_FEATURE_MASK`, `enum amd_harvest_ip_mask`, `enum DC_FEATURE_MASK`.
- 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.