STRUCT SDW_INTEL_RES(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct sdw_intel_res(9) β€” like, the whole tea πŸ«–

okay so bestie, welcome to the Kernel API Manual entry for struct sdw_intel_res β€” no cap, this is a big one. It's the Soundwire Intel global resource structure, and it's typically populated by the DSP driver. So like, the DSP driver is the main character here and everyone else is just living in its group chat πŸ’–


✨ SYNOPSIS ✨

this is the whole squad, one struct, exact vibes:

struct sdw_intel_res {
    const struct sdw_intel_hw_ops *hw_ops;
    int count;
    void __iomem *mmio_base;
    int irq;
    acpi_handle handle;
    struct device *parent;
    const struct sdw_intel_ops *ops;
    struct device *dev;
    u32 link_mask;
    u32 clock_stop_quirks;
    u32 shim_base;
    u32 alh_base;
    bool ext;
    bool mic_privacy;
    struct hdac_bus *hbus;
    struct mutex *eml_lock;
 };

like, look at her. sixteen fields. absolutely eating πŸ”₯


πŸŽ€ Members πŸŽ€

  • hw_ops β€” the abstraction for platform ops. it's giving "let the platform do its thing" πŸ’…
  • count β€” link count. that's it, that's the field πŸ¦‹
  • mmio_base β€” mmio base of SoundWire registers ✨
  • irq β€” interrupt number, the classic
  • handle β€” the ACPI parent handle 🫢
  • parent β€” parent device, hi mom πŸ‘‹
  • ops β€” callback ops
  • dev β€” the device implementing hwparams and free callbacks. she does it all, lowkey πŸ‘‘
  • link_mask β€” bit-wise mask listing links selected by the DSP driver. and hiiighkey important: this mask may be a subset of the one reported by the controller, since machine-specific quirks are handled in the DSP driver. periodt πŸ’€
  • clock_stop_quirks β€” mask array of possible behaviors requested by the DSP driver. and fr fr, the quirks are common for all links for now. so like, no per-link differentiation yet, iykyk 🌸
  • shim_base β€” sdw shim base.
  • alh_base β€” sdw alh base. (name a more iconic duo, i'll wait πŸ’œ)
  • ext β€” extended HDaudio link support ⭐
  • mic_privacy β€” ACE version supports microphone privacy πŸ™ˆ iconic of her honestly
  • hbus β€” the hdac_bus pointer, needed for power management πŸ”‹ like yes, power management matters, don't skip her
  • eml_lock β€” mutex protecting shared registers in the HDaudio multi-link space. shared registers = shared custody, so be nice and lock properly bestie πŸ”’

🌈 SEE ALSO 🌈

  • Kernel file ./include/linux/soundwire/sdw_intel.h
  • struct sdw_intel_stream_params_data(9)
  • struct sdw_intel_stream_free_data(9)
  • struct sdw_intel_ops(9)
  • struct sdw_intel_acpi_info(9)
  • struct sdw_intel_ctx(9)

go read those next, bestie, they're all connected to this one's lore 🧚


ngl, if you're touching this struct you're probably already deep in SoundWire/HDaudio land β€” remember the quirks are common for all links for now, and link_mask can legit be a subset of what the controller reports. that's not a bug, that's just how the DSP driver does machine-specific quirk handling ✨

and that's the whole page!! from ./include/linux/soundwire, October 2026 edition, struct sdw_intel_res(9) β€” slay, go forth and populate your DSP resources πŸ’–πŸŽ€πŸ’…

πŸ“¦ where this page comes from