drivers/gpu/drm/etnaviv/etnaviv_gpu.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/etnaviv/etnaviv_gpu.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/etnaviv/etnaviv_gpu.h- Extension
.h- Size
- 5450 bytes
- Lines
- 232
- 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
etnaviv_cmdbuf.hetnaviv_gem.hetnaviv_mmu.hetnaviv_drv.hcommon.xml.hstate.xml.h
Detected Declarations
struct etnaviv_gem_submitstruct etnaviv_vram_mappingstruct etnaviv_chip_identitystruct etnaviv_eventstruct etnaviv_cmdbuf_suballocstruct regulatorstruct clkstruct reset_controlstruct etnaviv_gpuenum etnaviv_sec_modeenum etnaviv_gpu_statefunction gpu_writefunction gpu_readfunction gpu_fix_power_addressfunction gpu_write_powerfunction gpu_read_power
Annotated Snippet
struct etnaviv_chip_identity {
u32 model;
u32 revision;
u32 product_id;
u32 customer_id;
u32 eco_id;
/* Supported feature fields. */
u32 features;
/* Supported minor feature fields. */
u32 minor_features0;
u32 minor_features1;
u32 minor_features2;
u32 minor_features3;
u32 minor_features4;
u32 minor_features5;
u32 minor_features6;
u32 minor_features7;
u32 minor_features8;
u32 minor_features9;
u32 minor_features10;
u32 minor_features11;
/* Number of streams supported. */
u32 stream_count;
/* Total number of temporary registers per thread. */
u32 register_max;
/* Maximum number of threads. */
u32 thread_count;
/* Number of shader cores. */
u32 shader_core_count;
/* Number of Neural Network cores. */
u32 nn_core_count;
/* Size of the vertex cache. */
u32 vertex_cache_size;
/* Number of entries in the vertex output buffer. */
u32 vertex_output_buffer_size;
/* Number of pixel pipes. */
u32 pixel_pipes;
/* Number of instructions. */
u32 instruction_count;
/* Number of constants. */
u32 num_constants;
/* Buffer size */
u32 buffer_size;
/* Number of varyings */
u8 varyings_count;
};
enum etnaviv_sec_mode {
ETNA_SEC_NONE = 0,
ETNA_SEC_KERNEL,
ETNA_SEC_TZ
};
struct etnaviv_event {
struct dma_fence *fence;
struct etnaviv_gem_submit *submit;
void (*sync_point)(struct etnaviv_gpu *gpu, struct etnaviv_event *event);
};
struct etnaviv_cmdbuf_suballoc;
struct regulator;
struct clk;
struct reset_control;
#define ETNA_NR_EVENTS 30
enum etnaviv_gpu_state {
ETNA_GPU_STATE_UNKNOWN = 0,
ETNA_GPU_STATE_IDENTIFIED,
ETNA_GPU_STATE_RESET,
ETNA_GPU_STATE_INITIALIZED,
ETNA_GPU_STATE_RUNNING,
ETNA_GPU_STATE_FAULT,
};
Annotation
- Immediate include surface: `etnaviv_cmdbuf.h`, `etnaviv_gem.h`, `etnaviv_mmu.h`, `etnaviv_drv.h`, `common.xml.h`, `state.xml.h`.
- Detected declarations: `struct etnaviv_gem_submit`, `struct etnaviv_vram_mapping`, `struct etnaviv_chip_identity`, `struct etnaviv_event`, `struct etnaviv_cmdbuf_suballoc`, `struct regulator`, `struct clk`, `struct reset_control`, `struct etnaviv_gpu`, `enum etnaviv_sec_mode`.
- 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.