STRUCT INTEL_SST_DRV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ NAME πŸ’œ

struct intel_sst_drv β€” driver ops, bestie. that's the whole vibe. it's the big struct that holds everything about the SST driver πŸŽ€

so like, quick heads up before we go: this page is from the Kernel API Manual, section 9, and the star of the show is struct intel_sst_drv(9). ok now let's get into it ✨


🌈 SYNOPSIS 🌈

struct intel_sst_drv {
    int sst_state;
    int irq_num;
    unsigned short          dev_id;
    void __iomem            *ddr;
    void __iomem            *shim;
    void __iomem            *mailbox;
    void __iomem            *iram;
    void __iomem            *dram;
    unsigned int            mailbox_add;
    unsigned int            iram_base;
    unsigned int            dram_base;
    unsigned int            shim_phy_add;
    unsigned int            iram_end;
    unsigned int            dram_end;
    unsigned int            ddr_end;
    unsigned int            ddr_base;
    unsigned int            mailbox_recv_offset;
    struct list_head        block_list;
    struct list_head        ipc_dispatch_list;
    struct sst_platform_info *pdata;
    struct list_head        rx_list;
    struct work_struct      ipc_post_msg_wq;
    wait_queue_head_t wait_queue;
    struct workqueue_struct *post_msg_wq;
    unsigned int            tstamp;
    struct stream_info      streams[MAX_NUM_STREAMS+1];
    spinlock_t ipc_spin_lock;
    spinlock_t block_lock;
    spinlock_t rx_msg_lock;
    struct pci_dev          *pci;
    struct device           *dev;
    volatile long unsigned          pvt_id;
    struct mutex            sst_lock;
    unsigned int            stream_cnt;
    unsigned int            csr_value;
    void *fw_in_mem;
    struct sst_sg_list      fw_sg_list, library_list;
    struct intel_sst_ops    *ops;
    struct sst_info         info;
    struct pm_qos_request   *qos;
    unsigned int            use_dma;
    unsigned int            use_lli;
    atomic_t fw_clear_context;
    bool lib_dwnld_reqd;
    struct list_head        memcpy_list;
    struct sst_ipc_reg      ipc_reg;
    struct sst_mem_mgr      lib_mem_mgr;
    char firmware_name[FW_NAME_SIZE];
    struct snd_sst_fw_version fw_version;
    struct sst_fw_save      *fw_save;
};

like… look at her. absolutely iconic. every field is doing its little job 🫢


πŸ¦‹ Members πŸ¦‹

ok so not every field gets a shoutout below β€” only the ones the docs actually talk about. don't come for me, I'm just reporting what's there πŸ’…

  • sst_state β€” the current sst device state. literally the mood ring of the device.
  • dev_id β€” device identifier. it's the pci_id for pci devices and the acpi_id for acpi devices. iykyk.
  • shim β€” SST shim pointer ✨
  • mailbox β€” SST mailbox pointer πŸ“¬
  • iram β€” SST IRAM pointer
  • dram β€” SST DRAM pointer
  • shim_phy_add β€” SST shim phy addr
  • ipc_dispatch_list β€” ipc messages that got dispatched
  • pdata β€” SST info passed as a part of pci platform data
  • rx_list β€” to copy the process_reply/process_msg from DSP
  • ipc_post_msg_wq β€” wq to post IPC messages context
  • post_msg_wq β€” wq to post IPC messages
  • streams β€” sst stream contexts
  • ipc_spin_lock β€” spin lock to handle audio shim access and ipc queue
  • block_lock β€” spin lock to add block to block_list and assign pvt_id
  • rx_msg_lock β€” spin lock to handle the rx messages from the DSP
  • pci β€” sst pci device struture (yes, that's how it's spelled in the original, no I will not be fixing it, it's canon now πŸ™ˆ)
  • dev β€” pointer to current device struct
  • pvt_id β€” sst private id
  • sst_lock β€” sst device lock
  • stream_cnt β€” total sst active stream count
  • qos β€” PM Qos struct firmware_name : Firmware / Library name
ngl that last one is doing a little too much in one bullet, but I'm keeping it exactly as the docs hand it to me. facts are facts πŸ’€

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./sound/soc/intel/atom/sst/sst.h, plus these absolute main characters:

  • struct sst_block(9)
  • struct stream_info(9)
  • struct sst_fw_header(9)
  • struct fw_module_header(9)
  • struct fw_block_info(9)

go read them, they're the supporting cast and they ate 🌸


and that's the page bestie!! πŸŽ€ this one lives at ./sound/soc/intel/atom/sst, dated October 2026, and it's filed under struct intel_sst_drv(9) in the Kernel API Manual. slay, bye πŸ’–βœ¨

πŸ“¦ where this page comes from