STRUCT SDW_INTEL_RES(9)
π 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 classichandleβ the ACPI parent handle π«Άparentβ parent device, hi mom πopsβ callback opsdevβ the device implementinghwparamsandfreecallbacks. 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 honestlyhbusβ thehdac_buspointer, needed for power management π like yes, power management matters, don't skip hereml_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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms