drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgk104.c- Extension
.c- Size
- 49840 bytes
- Lines
- 1717
- 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.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
ram.hramfuc.hcore/option.hsubdev/bios.hsubdev/bios/init.hsubdev/bios/M0205.hsubdev/bios/M0209.hsubdev/bios/pll.hsubdev/bios/rammap.hsubdev/bios/timing.hsubdev/clk.hsubdev/clk/pll.hsubdev/gpio.h
Detected Declarations
struct gk104_ramfucstruct gk104_ramstruct gk104_ram_trainfunction gk104_ram_trainfunction r1373f4_initfunction r1373f4_finifunction gk104_ram_nutsfunction gk104_ram_calc_gddr5function nvkm_sddr3_dll_resetfunction nvkm_sddr3_dll_disablefunction gk104_ram_calc_sddr3function gk104_ram_calc_datafunction list_for_each_entryfunction gk104_calc_pll_outputfunction gk104_pll_calc_hiclkfunction gk104_ram_calc_xitsfunction gk104_ram_calcfunction gk104_ram_prog_0function list_for_each_entryfunction gk104_ram_progfunction gk104_ram_tidyfunction gk104_ram_train_typefunction gk104_ram_train_init_0function gk104_ram_train_initfunction gk104_ram_initfunction gk104_ram_ctor_datafunction gk104_ram_dtorfunction list_for_each_entry_safefunction gk104_ram_new_function gk104_ram_new
Annotated Snippet
struct gk104_ramfuc {
struct ramfuc base;
struct nvbios_pll refpll;
struct nvbios_pll mempll;
struct ramfuc_reg r_gpioMV;
u32 r_funcMV[2];
struct ramfuc_reg r_gpio2E;
u32 r_func2E[2];
struct ramfuc_reg r_gpiotrig;
struct ramfuc_reg r_0x132020;
struct ramfuc_reg r_0x132028;
struct ramfuc_reg r_0x132024;
struct ramfuc_reg r_0x132030;
struct ramfuc_reg r_0x132034;
struct ramfuc_reg r_0x132000;
struct ramfuc_reg r_0x132004;
struct ramfuc_reg r_0x132040;
struct ramfuc_reg r_0x10f248;
struct ramfuc_reg r_0x10f290;
struct ramfuc_reg r_0x10f294;
struct ramfuc_reg r_0x10f298;
struct ramfuc_reg r_0x10f29c;
struct ramfuc_reg r_0x10f2a0;
struct ramfuc_reg r_0x10f2a4;
struct ramfuc_reg r_0x10f2a8;
struct ramfuc_reg r_0x10f2ac;
struct ramfuc_reg r_0x10f2cc;
struct ramfuc_reg r_0x10f2e8;
struct ramfuc_reg r_0x10f250;
struct ramfuc_reg r_0x10f24c;
struct ramfuc_reg r_0x10fec4;
struct ramfuc_reg r_0x10fec8;
struct ramfuc_reg r_0x10f604;
struct ramfuc_reg r_0x10f614;
struct ramfuc_reg r_0x10f610;
struct ramfuc_reg r_0x100770;
struct ramfuc_reg r_0x100778;
struct ramfuc_reg r_0x10f224;
struct ramfuc_reg r_0x10f870;
struct ramfuc_reg r_0x10f698;
struct ramfuc_reg r_0x10f694;
struct ramfuc_reg r_0x10f6b8;
struct ramfuc_reg r_0x10f808;
struct ramfuc_reg r_0x10f670;
struct ramfuc_reg r_0x10f60c;
struct ramfuc_reg r_0x10f830;
struct ramfuc_reg r_0x1373ec;
struct ramfuc_reg r_0x10f800;
struct ramfuc_reg r_0x10f82c;
struct ramfuc_reg r_0x10f978;
struct ramfuc_reg r_0x10f910;
struct ramfuc_reg r_0x10f914;
struct ramfuc_reg r_mr[16]; /* MR0 - MR8, MR15 */
struct ramfuc_reg r_0x62c000;
struct ramfuc_reg r_0x10f200;
struct ramfuc_reg r_0x10f210;
struct ramfuc_reg r_0x10f310;
struct ramfuc_reg r_0x10f314;
struct ramfuc_reg r_0x10f318;
struct ramfuc_reg r_0x10f090;
struct ramfuc_reg r_0x10f69c;
struct ramfuc_reg r_0x10f824;
struct ramfuc_reg r_0x1373f0;
struct ramfuc_reg r_0x1373f4;
struct ramfuc_reg r_0x137320;
struct ramfuc_reg r_0x10f65c;
struct ramfuc_reg r_0x10f6bc;
struct ramfuc_reg r_0x100710;
struct ramfuc_reg r_0x100750;
};
struct gk104_ram {
struct nvkm_ram base;
struct gk104_ramfuc fuc;
struct list_head cfg;
u32 parts;
u32 pmask;
u32 pnuts;
Annotation
- Immediate include surface: `ram.h`, `ramfuc.h`, `core/option.h`, `subdev/bios.h`, `subdev/bios/init.h`, `subdev/bios/M0205.h`, `subdev/bios/M0209.h`, `subdev/bios/pll.h`.
- Detected declarations: `struct gk104_ramfuc`, `struct gk104_ram`, `struct gk104_ram_train`, `function gk104_ram_train`, `function r1373f4_init`, `function r1373f4_fini`, `function gk104_ram_nuts`, `function gk104_ram_calc_gddr5`, `function nvkm_sddr3_dll_reset`, `function nvkm_sddr3_dll_disable`.
- 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.