STRUCT SBTSI_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct sbtsi_data(9) ✨

okay so bestie, picture this: it's struct sbtsi_data(9) from the Kernel API Manual, and it's literally the driver's private little diary for an AMD SB-TSI device πŸ’– this whole page is just us going through every single field in that struct, no skips, no cap 🫢


🌸 NAME 🌸

struct sbtsi_data β€” driver private data for an AMD SB-TSI device

like, it's the driver's personal stash of state. main character energy fr πŸ’…


✨ SYNOPSIS ✨

struct sbtsi_data {
    union {
      struct i2c_client *client;
      struct i3c_device *i3cdev;
    };
    struct miscdevice sbtsi_misc_dev;
    struct mutex lock;
    struct kref kref;
    u8 dev_addr;
    bool ext_range_mode;
    bool read_order;
    bool is_i3c;
    bool detached;
 };

copy it exactly like that, don't be out here editing structs, that's not the vibe πŸ™ˆ


πŸŽ€ Members πŸŽ€

  • {unnamed_union} β€” anonymous πŸ‘‘ it's the unnamed one, she has no name, she simply exists.
  • client β€” the underlying I2C client ngl, this is who we're actually talking to.
  • i3cdev β€” the underlying I3C device (when using I3C bus) β€” so like, the I3C-era version of the above πŸ¦‹
  • sbtsi_misc_dev β€” miscdevice exposing ioctl interface at /dev/sbtsi-<addr> β€” yup, that's a real path, that's where the ioctl interface lives, slay ✨
  • lock β€” mutex protecting concurrent access to the device β€” literally the bouncer at the club, keeps everybody from crashing into each other 😭
  • kref β€” reference count; keeps sbtsi_data alive while misc fds are open β€” she stays alive until the last fd leaves the group chat πŸ’€
  • dev_addr β€” I2C/I3C device address, used as the auxiliary device instance id and name the misc device node β€” so it's doing double duty and honestly? iconic 🌟
  • ext_range_mode β€” sensor uses extended temperature range πŸ”₯ (no, that's not a metaphor, that's the actual flag)
  • read_order β€” if set, decimal part must be read before integer part ⚠️ okay so this one matters, order is not a suggestion, decimal FIRST, then integer, don't get cute with it
  • is_i3c β€” true when the device is accessed over I3C βœ…
  • detached β€” set on driver unbind; open/ioctl return -ENODEV afterward β€” so once she's detached, open/ioctl are gonna hit you with -ENODEV, periodt πŸ’…

πŸ”₯ SEE ALSO πŸ”₯

go read those too, iykyk 🧚


and that's the whole page bestie, no crumbs left πŸ“ this little gem came from the kernel file path ./include/linux/misc and it's dated October 2026 β€” so yeah, mark your calendar, she's from the future πŸ’œ bye babes, go read your structs πŸ’–

πŸ“¦ where this page comes from