XE_RTP_ACTION_SET(9)
π XE_RTP_ACTION_SET(9) β the one where we set bits, bestie β¨
Okay so real talk, this is a page from the Kernel API Manual, and it's literally about XE_RTP_ACTION_SET β the macro that sets bits in a register. No cap, that's the whole vibe. Let's get into it π«Ά
πΈ NAME πΈ
XE_RTP_ACTION_SET β sets bits from val_ in the register. Yes, that's it. That's the job. Iconic, minimal, does exactly what it says on the tin π
β¨ SYNOPSIS β¨
XE_RTP_ACTION_SET (reg_ , val_ , ... );
Look at her. Three little pieces and she's already running the whole register. Obsessed π
π ARGUMENTS π
reg_β the Register. Like, the actual one you're poking. The main character, honestly πval_β the bits you wanna set in that register. This is your contribution, your little gift to the hardware πΈ...β extra fields you can override in thestruct xe_rtp_actionentry. Yes bestie, it's variadic, she's flexible like that π¦
π DESCRIPTION π
so here's the tea: for masked registers this all translates to a single write. One and done, no drama, slay β¨
But for other registers?? it's a RMW β a read-modify-write, the classic little "read it, change it, write it back" situation. Lowkey more steps but she's still doing her thing π
And the correspondent bspec notation looks like this β the example here is for bits 2 and 5, but honestly it could be any bits, don't @ me:
REGNAME[2] = 1 REGNAME[5] = 1
That's it. That's the notation. Bits going to 1, living their best life π§
π₯ SEE ALSO π₯
Go read these next, they're all in the kernel file ./drivers/gpu/drm/xe/xe_rtp.h, and they're all giving main character energy in their own way:
XE_RTP_RULE_PLATFORM(9)XE_RTP_RULE_SUBPLATFORM(9)XE_RTP_RULE_PLATFORM_STEP(9)XE_RTP_RULE_GRAPHICS_STEP(9)XE_RTP_RULE_MEDIA_STEP(9)XE_RTP_RULE_ENGINE_CLASS(9)XE_RTP_RULE_FUNC(9)XE_RTP_RULE_GRAPHICS_VERSION(9)XE_RTP_RULE_GRAPHICS_VERSION_RANGE(9)XE_RTP_RULE_GRAPHICS_VERSION_ANY_GT(9)XE_RTP_RULE_MEDIA_VERSION(9)XE_RTP_RULE_MEDIA_VERSION_RANGE(9)XE_RTP_RULE_MEDIA_VERSION_ANY_GT(9)XE_RTP_RULE_IS_INTEGRATED(9)XE_RTP_RULE_IS_DISCRETE(9)XE_RTP_RULE_OR(9)XE_RTP_ACTION_WR(9)XE_RTP_ACTION_CLR(9)XE_RTP_ACTION_FIELD_SET(9)XE_RTP_ACTION_FIELD_SET_FUNC(9)XE_RTP_ACTION_WHITELIST(9)XE_RTP_NAME(9)XE_RTP_ENTRY_FLAG(9)XE_RTP_ACTION_FLAG(9)XE_RTP_RULES(9)XE_RTP_ACTIONS(9)xe_rtp_match_always(9)xe_rtp_match_even_instance(9)xe_rtp_match_has_flat_ccs(9)xe_rtp_match_has_msix(9)
That's thirty, bestie. Thirty. I counted π
Heads up: everything above lives in the kernel source tree, so it's kernel-API territory β read the linked pages before you go setting bits in places, iykyk π
okay that's the whole page, mwah π This lil' beauty ships out of ./drivers/gpu/drm/xe and the version stamp says October 2026 β so mark your calendar, screenshot it, put it on your wall, periodt πβπ
π¦ 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