STRUCT ST_LSM6DSX_FIFO_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct st_lsm6dsx_fifo_ops β€” ST IMU FIFO settings ✨

Okay bestie, gather round πŸ’– this one's a Kernel API Manual page, section 9, and it's literally all about struct st_lsm6dsx_fifo_ops β€” the ST IMU FIFO settings vibe. It's giving "small struct, big responsibilities" energy and I'm obsessed. πŸŽ€


🌸 NAME 🌸

struct st_lsm6dsx_fifo_ops β€” ST IMU FIFO settings. That's the whole thing, no cap. It's the little bundle of callbacks and register info that tells the driver how to handle the FIFO. πŸ¦‹


✨ SYNOPSIS ✨

struct st_lsm6dsx_fifo_ops {
    int (*update_fifo)(struct st_lsm6dsx_sensor *sensor, bool enable);
    int (*read_fifo)(struct st_lsm6dsx_hw *hw);
    struct {
      u8 addr;
      u16 mask;
    } fifo_th;
    struct {
      u8 addr;
      u16 mask;
    } fifo_diff;
    u16 max_size;
    u8 th_wl;
 };

Look at her. Perfect. No notes. πŸ’… Note the two anonymous nested structs β€” fifo_th and fifo_diff β€” each one is just addr + mask, its whole personality. 🫢


πŸ‘‘ Members πŸ‘‘

  • update_fifo β€” Update FIFO configuration callback. Yeah, it does exactly what it says on the tin: it's the function pointer that updates the FIFO config for you. πŸ”₯
  • read_fifo β€” Read FIFO callback. Reads the FIFO. Main character energy, honestly. πŸ‘‘
  • fifo_th β€” FIFO threshold register info (addr + mask). So it's carrying the register address and the mask for the threshold, together, as they should be. πŸ’–
  • fifo_diff β€” FIFO diff status register info (addr + mask). Same deal, but for the diff status register. Twins but not identical, iykyk. 🌸
  • max_size β€” Sensor max fifo length in FIFO words. That's u16, and it's the ceiling of how long the FIFO can get, measured in FIFO words. Don't forget the units bestie, they matter. ⭐
  • th_wl β€” FIFO threshold word length. A single u8 holding the threshold word length. Small but iconic. πŸŽ€

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h
  • struct st_lsm6dsx_hw_ts_settings(9)
  • struct st_lsm6dsx_shub_settings(9)
  • struct st_lsm6dsx_ext_dev_settings(9)
  • struct st_lsm6dsx_settings(9)
  • struct st_lsm6dsx_sensor(9)
  • struct st_lsm6dsx_hw(9)

Like, go read the whole friend group, they're all connected. πŸ”₯


Okay so lowkey the whole struct lives in ./drivers/iio/imu/st_lsm6dsx and this page is dated October 2026 πŸ’œ β€” that's the source tree and the date, keep them safe, they're part of the lore. 🌈

Anyway bestie that's the page, you ate that, periodt. πŸ’…βœ¨πŸ“

πŸ“¦ where this page comes from