STRUCT I3C_CCC_CMD_PAYLOAD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct i3c_ccc_cmd_payload(9) πŸ¦‹

okay so this is a page from the Kernel API Manual bestie, and it's all about struct i3c_ccc_cmd_payload β€” literally the payload container for CCCs. tiny struct, big responsibilities πŸ’…


✨ NAME ✨

struct i3c_ccc_cmd_payload β€” the CCC payload, that's it, that's the vibe πŸŽ€


✨ SYNOPSIS ✨

struct i3c_ccc_cmd_payload {
    u16 len;
    u16 actual_len;
    u16 optional_bytes;
    void *data;
 };

look at her. four members. no notes. πŸ‘‘


✨ Members ✨

  • len β€” the payload length you're requesting, like the length you asked for when you placed the order πŸ›οΈ
  • actual_len β€” how many bytes actually came back on a GET CCC (the driver fills this one in for you, so don't go touching it yourself, mwah 🫢)
  • optional_bytes β€” GET CCCs are allowed to come back with up to this many fewer bytes than len, so yes, under-delivery is legal here, no cap 😭
  • data β€” the payload data itself. and listen: this buffer must be DMA-able. non-negotiable. the hardware needs to be able to reach it directly, so do not hand it some random stack buffer and hope for the best πŸ’€

✨ SEE ALSO ✨

all the siblings and cousins, fr fr 🧚

  • Kernel file ./include/linux/i3c/ccc.h
  • struct i3c_ccc_events(9)
  • struct i3c_ccc_mwl(9)
  • struct i3c_ccc_mrl(9)
  • struct i3c_ccc_dev_desc(9)
  • struct i3c_ccc_defslvs(9)
  • enum i3c_ccc_test_mode(9)
  • struct i3c_ccc_enttm(9)
  • struct i3c_ccc_setda(9)
  • struct i3c_ccc_getpid(9)
  • struct i3c_ccc_getbcr(9)
  • struct i3c_ccc_getdcr(9)
  • struct i3c_ccc_getstatus(9)
  • struct i3c_ccc_getaccmst(9)
  • struct i3c_ccc_bridged_slave_desc(9)
  • struct i3c_ccc_setbrgtgt(9)
  • enum i3c_sdr_max_data_rate(9)
  • enum i3c_tsco(9)
  • struct i3c_ccc_getmxds(9)
  • struct i3c_ccc_gethdrcap(9)
  • enum i3c_ccc_setxtime_subcmd(9)
  • struct i3c_ccc_setxtime(9)
  • struct i3c_ccc_getxtime(9)
  • struct i3c_ccc_cmd_dest(9)
  • struct i3c_ccc_cmd(9)

bestie reminder one more time because it matters: data must be <red>DMA-able</red>. that's the whole assignment. πŸ”₯

and that's the page!! sourced from ./include/linux/i3c, dated October 2026 β€” mwah, go read the rest of the i3c headers, ily, bye πŸ’–πŸŒΈ

πŸ“¦ where this page comes from