STRUCT TCS_GROUP(9)
β¨ struct tcs_group(9) β¨
okay so bestie, welcome to the Kernel API Manual π you're literally about to meet struct tcs_group β a whole squad of Trigger Command Sets (TCS) that exist for one reason: to send state requests to the controller. group chat energy, but make it hardware π
πΈ NAME πΈ
struct tcs_group β a group of Trigger Command Sets (TCS) that you send state requests to the controller with π«Ά
β¨ SYNOPSIS β¨
struct tcs_group {
struct rsc_drv *drv;
int type;
u32 mask;
u32 offset;
int num_tcs;
int ncpt;
const struct tcs_request *req[MAX_TCS_PER_TYPE];
unsigned long slots[BITS_TO_LONGS( MAX_TCS_SLOTS)];
};
π¦ Members π¦
like, every single field, no skipping, iykyk π
drvβ The controller. the main character, honestly πtypeβ type of the TCS in this group βactive,sleep, orwake. pick your vibe β¨maskβ mask of the TCSes relative to all the TCSes in the RSC.offsetβ start of the TCS group relative to the TCSes in the RSC.num_tcsβ how many TCSes live in this type. the headcount πncptβ number of commands in each TCS.reqβ the requests that get sent from the TCS; only used forACTIVE_ONLYtransfers (tho it could be on a wake/sleep TCS if we are borrowing it for anACTIVE_ONLYtransfer π). The whole choreography is:- Start: grab
drv->lock, setreq, settcs_in_use, dropdrv->lock, trigger - End: get irq, access
req, grabdrv->lock, cleartcs_in_use, dropdrv->lock
- Start: grab
literally a whole routine, respect the lock discipline fr fr π₯
slotsβ indicates which ofcmd_addrare occupied; only used forSLEEP/WAKETCSs. things are tightly packed in the case that (ncpt < MAX_CMDS_PER_TCS). like, ifncpt = 2andMAX_CMDS_PER_TCS = 16thenbit[2]= the first bit in the 2nd TCS. no wasted space, we love a compact queen π
ngl thereqandslotsfields both have conditions on when they're used, so pls don't just assume they're always live β read the vibes (and the field) first π
π SEE ALSO π
Kernel file ./drivers/soc/qcom/rpmh-internal.h, plus the besties: struct rpmh_request(9), struct rpmh_ctrlr(9), struct rsc_drv(9) π
and that's the whole page, bestie π§ this one came from ./drivers/soc/qcom and it's dated October 2026, filed under struct tcs_group(9) β go forth and slay your state requests ππ₯π
π¦ 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