STRUCT SDW_INTEL_CTX(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct sdw_intel_ctx(9) πŸ’–

okay so hi bestie, welcome to the Kernel API Manual entry for struct sdw_intel_ctx β€” yes it's giving "struct with a whole lot of responsibilities" and honestly? iconic. πŸŽ€


✨ NAME ✨

struct sdw_intel_ctx β€” the context allocated by the controller driver probe. like, the little home base the probe sets up for itself. 🏠


🌸 SYNOPSIS 🌸

struct sdw_intel_ctx {
    int count;
    void __iomem *mmio_base;
    u32 link_mask;
    acpi_handle handle;
    struct sdw_intel_link_dev **ldev;
    struct list_head link_list;
    struct mutex shim_lock;
    u32 shim_mask;
    u32 shim_base;
    u32 alh_base;
    struct sdw_peripherals *peripherals;
 };

(that stray space before the closing }; is canon, don't come for me πŸ’…)


πŸ¦‹ Members πŸ¦‹

so this is the part where we meet every single member one by one, no skipping, periodt.

  • count β€” the link count. literally how many links we're talking about. πŸ”’
  • mmio_base β€” the mmio base of SoundWire registers. careful though bestie: it's only used to check hardware capabilities after all power dependencies are settled. so don't go poking at it early, mwah. ⚑
  • link_mask β€” a bit-wise mask listing the SoundWire links reported by the Controller. bit-wise, iykyk. πŸ‘‘
  • handle β€” the ACPI parent handle. πŸͺͺ
  • ldev β€” info for each link, and it's controller-specific and kept opaque here. so like… not our business, respectfully. πŸ™ˆ
  • link_list β€” a list used to handle interrupts across all links. all of them. every single one. πŸ’€
  • shim_lock β€” a mutex to handle concurrent rmw (read-modify-write) access to the shared SHIM registers. concurrency protection slay 🫢
  • shim_mask β€” flags to track initialization of the SHIM shared registers. 🚩
  • shim_base β€” the sdw shim base. πŸ“
  • alh_base β€” the sdw alh base. πŸ“
  • peripherals β€” an array representing Peripherals exposed across all enabled links. 🌈

⭐ SEE ALSO ⭐

go read these next, bestie, they're all in the 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_res(9)

and that's the whole page, no cap πŸ’œ this came out of ./include/linux/soundwire and it's stamped October 2026 β€” mwah, bye bestie, go forth and probe responsibly πŸ”₯✨

πŸ“¦ where this page comes from