qcom_scm_call(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… qcom_scm_call(9) β€” Kernel API Manual πŸ¦‹

okay bestie, so this is qcom_scm_call from the Kernel API Manual β€” the one and only πŸ’–


🌸 NAME 🌸

qcom_scm_call β€” literally just "Invoke a syscall in the secure world" ✨ like, you're calling into the secure world, no big deal, very main character energy πŸ‘‘


πŸŽ€ SYNOPSIS πŸŽ€

int qcom_scm_call (struct device *dev , const struct qcom_scm_desc *desc , struct qcom_scm_res *res );

that's the whole vibe, copy it exactly bestie, don't retype it from memory 😭


🫢 ARGUMENTS 🫢

  • dev β€” device πŸ’» that's your device handle, that's it, that's the whole thing
  • desc β€” Descriptor structure containing arguments and return values πŸ“ like it literally holds the args you're passing in and the stuff coming back out
  • res β€” Structure containing results from SMC/HVC call 🎁 this one's where the SMC/HVC call drops off its results

⭐ DESCRIPTION ⭐

Sends a command to the SCM and waits for the command to finish processing. πŸ•βœ¨ like, you send it, and then you wait, because it's not a "fire and forget" situation, it's a "fire and then stand there watching" situation πŸ™ˆ

⚠️ ok this part is serious, no cap: this should only be called in pre-emptible context. ONLY. in pre-emptible context. not negotiable, not a suggestion, not a "well maybe just this once" β€” pre-emptible context or nothing πŸ”₯

πŸ’œ SEE ALSO πŸ’œ

Kernel file ./drivers/firmware/qcom/qcom_scm.c β€” go read the source, iykyk πŸ“–

and the whole friend group of related functions, all of them, every single one (not me listing all of these, but we keep the facts fr fr):


and that's the page bestie, go call your secure world syscalls responsibly πŸŒˆπŸ’…

source path ./drivers/firmware/qcom, dated October 2026 β€” mwah, love that for us πŸ“πŸ«ΆπŸ§š

πŸ“¦ where this page comes from