xe_pcode_ini...n_freq_table(9)
π xe_pcode_ini...n_freq_table(9) β a.k.a. the Kernel API Manual page
okay so bestie, grab your matcha π because we're reading a kernel API manual page together and honestly? it's kind of iconic. this is the man page for xe_pcode_init_min_freq_table(9) β yes, the title in the header is literally rendered as xe_pcode_ini...n_freq_table(9) because someone let the terminal truncate it, and no, we are not fixing it, we are respecting it π
β¨ NAME β¨
xe_pcode_init_min_freq_table β Initialize PCODE's QOS frequency table π
πΈ SYNOPSIS πΈ
int xe_pcode_init_min_freq_table (struct xe_tile *tile , u32 min_gt_freq
, u32 max_gt_freq );
like, that's the whole signature. three args. no cap. π«Ά
π¦ ARGUMENTS π¦
tileβ the tile instance π (yes, the tile, the main character)min_gt_freqβ Minimal (RPn) GT frequency, measured in units of 50MHz β¨max_gt_freqβ Maximal (RP0) GT frequency, also in units of 50MHz β¨
π₯ DESCRIPTION π₯
So what does this thing actually do? It initializes PCODE's QOS frequency table so PCODE can make a proper minimal frequency / power steering decision, and that decision depends on the current requested GT frequency. That's the vibe check it's performing π
For older platforms this used to be a more complete table that included the IA freq. But for the latest platforms this table has become a simple 1-1 Ring vs GT frequency. Even though it's simple now β without setting it, PCODE might not take the right decisions for some memory frequencies, and that affects latency π so like, please set it.
Return values, bestie, listen up π
β it returns 0 on success, and -ERROR number on failure. Specifically -EINVAL if the max frequency is higher then the minimal, and other errors are directly translated from the PCODE Error returns:
-ENXIO: "Illegal Command"-ETIMEDOUT: "Timed out"-EINVAL: "Illegal Data"-ENXIO, "Illegal Subcommand"-EBUSY: "PCODE Locked"-EOVERFLOW, "GT ratio out of range"-EACCES, "PCODE Rejected"-EPROTO, "Unknown"
(yeah, the punctuation is inconsistent in the source and I am not touching it β character for character, periodt π§)
π SEE ALSO π
Kernel file ./drivers/gpu/drm/xe/xe_pcode.c β plus these other baddies:
PCODE(9)xe_pcode_request(9)xe_pcode_ready(9)xe_pcode_init_early(9)xe_pcode_probe_early(9)xe_get_pcode_version(9)
okay that's the whole page, you ate that π this little beauty lives over in ./drivers/gpu/drm/xe and it's dated October 2026, so likeβ¦ future me behavior fr fr. go forth and initialize those frequency tables, bestie ππβ
π¦ 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