xe_mmio_read64_2x32(9)
okay bestie, welcome to the Kernel API Manual glow-up for xe_mmio_read64_2x32(9) π«Άβ¨ this one is all about reading a 64-bit register the safe way, no cap.
π NAME π
xe_mmio_read64_2x32 β read a 64-bit register as two 32-bit reads.
πΈ SYNOPSIS πΈ
u64 xe_mmio_read64_2x32 (struct xe_mmio *mmio , struct xe_reg reg );
π ARGUMENTS π
mmioβ MMIO target πregβ register to read value from β¨
π¦ DESCRIPTION π¦
so here's the tea β: even though Intel GPUs have some 64-bit registers, the hardware officially only supports GTTMMADR register reads of 32 bits or smaller. and yes, even if a readq operation may return a reasonable value, that violation of the spec should not be relied upon β all 64-bit register reads should be performed as two 32-bit reads of the upper and lower dwords. periodt π
when you're reading registers that may be changing (think counters), a rollover of the lower dword between the two 32-bit reads can be problematic π. this function attempts to ensure the upper dword has stabilized before returning the 64-bit value. iconique behavior, honestly πβ¨
note that because this function may re-read the register multiple times while waiting for the value to stabilize, it should not be used to read any registers where read operations have side effects. seriously bestie, don't do it ππ
Returns: the value of the 64-bit register. slay π
π SEE ALSO π
Kernel file ./drivers/gpu/drm/xe/xe_mmio.c plus these iconique friends:
xe_mmio_probe_tiles(9)xe_mmio_probe_early(9)xe_mmio_init(9)xe_mmio_wait32(9)xe_mmio_wait32_not(9)xe_mmio_init_vf_view(9)
xoxo, your Kernel API Manual bestie β source/version ./drivers/gpu/drm/xe, dated October 2026, page xe_mmio_read64_2x32(9) πππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms