STRUCT SDW_CDNS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, this is the manual page for struct sdw_cdns(9) β€” the Cadence driver context β€” straight out of the Kernel API Manual. iconic little struct energy, honestly. πŸŽ€

✨ SYNOPSIS ✨

here's the whole struct, copied exactly, no edits, periodt:

struct sdw_cdns {
    struct device *dev;
    struct sdw_bus bus;
    unsigned int instance;
    u32 ip_offset;
    u32 response_buf[CDNS_MCP_IP_MAX_CMD_LEN + 2];
    struct completion tx_complete;
    struct sdw_cdns_port *ports;
    int num_ports;
    struct sdw_cdns_streams pcm;
    int pdi_loopback_source;
    int pdi_loopback_target;
    void __iomem *registers;
    bool link_up;
    unsigned int msg_count;
    bool interrupt_enabled;
    struct work_struct work;
    struct delayed_work attach_dwork;
    struct list_head list;
    struct sdw_cdns_dai_runtime **dai_runtime_array;
    struct mutex status_update_lock;
 };

🌸 Members 🌸

okay, vibe check on the members the page actually gives us blurbs for:

  • dev β€” Linux device. the literal device situation. πŸ’»
  • bus β€” Bus handle. yes bestie, the bus. 🚌
  • instance β€” instance number. which one are we, iykyk. πŸ”’
  • ip_offset β€” version-dependent offset to access IP_MCP registers and fields. version-dependent is doing a lot of work there, ngl. πŸŒ€
  • response_buf β€” SoundWire response buffer. it's giving "hold my response." πŸ“₯
  • tx_complete β€” Tx completion. the completion moment. ✨
  • ports β€” Data ports. plural, because we contain multitudes. πŸ”Œ
  • num_ports β€” Total number of data ports. the count, the math, the crown. πŸ‘‘
  • pcm β€” PCM streams. stream girlie behavior. 🌊
  • registers β€” Cadence registers. the register section, no notes. πŸ“‹
  • link_up β€” Link status. is the link up? that's the whole mood. πŸ”—
  • msg_count β€” Messages sent on bus. counting messages like it's a group chat. πŸ’¬
  • dai_runtime_array β€” runtime context for each allocated DAI. every allocated DAI gets its lil runtime moment. 🫢
  • status_update_lock β€” protect concurrency between interrupt-based and delayed work status update. the lock is literally protecting the concurrency between interrupt-based and delayed work status update, and we respect her for it. πŸ”’

and just so we're keeping it a hundred: the synopsis also has pdi_loopback_source, pdi_loopback_target, interrupt_enabled, work, attach_dwork, and list chillin' in the struct. the source page doesn't give those their own separate blurbs, so I'm not inventing any lore. πŸ’…

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/soundwire/cadence_master.h: struct sdw_cdns_pdi(9), struct sdw_cdns_streams(9), struct sdw_cdns_stream_config(9), struct sdw_cdns_dai_runtime(9)

that's the whole page, bestie. the footer vibes are: source/version ./drivers/soundwire, date October 2026, and the running footer still says struct sdw_cdns(9). slay and goodbye, manual page. πŸ’œ

πŸ“¦ where this page comes from