xe_pcode_ini...n_freq_table(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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:


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