STRUCT SDW_MASTER_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, this is struct sdw_master_ops(9) from the Kernel API Manual β€” literally the Master driver ops page. It’s giving β€œthe callback lineup that makes SoundWire masters do their thing,” and we’re gonna go through every single one πŸ’…βœ¨


✨ SYNOPSIS ✨

struct sdw_master_ops {
    int (*read_prop)(struct sdw_bus *bus);
    u64 (*override_adr)(struct sdw_bus *bus, u64 addr);
    enum sdw_command_response (*xfer_msg)(struct sdw_bus *bus, struct
sdw_msg *msg);
    enum sdw_command_response (*xfer_msg_defer)(struct sdw_bus *bus);
    int (*set_bus_conf)(struct sdw_bus *bus, struct sdw_bus_params
*params);
    int (*pre_bank_switch)(struct sdw_bus *bus);
    int (*post_bank_switch)(struct sdw_bus *bus);
    u32 (*read_ping_status)(struct sdw_bus *bus);
    int (*get_device_num)(struct sdw_bus *bus, struct sdw_slave *slave);
    void (*put_device_num)(struct sdw_bus *bus, struct sdw_slave
*slave);
    void (*new_peripheral_assigned)(struct sdw_bus *bus, struct
sdw_slave *slave, int dev_num);
    int (*bpt_send_async)(struct sdw_bus *bus, struct sdw_slave *slave,
struct sdw_bpt_msg *msg);
    int (*bpt_wait)(struct sdw_bus *bus, struct sdw_slave *slave, struct
sdw_bpt_msg *msg);
 };

🌸 Members 🌸

  • read_prop β€” reads the Master properties, periodt πŸ”₯
  • override_adr β€” overrides the value read from firmware; it’s the quirk for buggy firmware situation πŸ™ˆ
  • xfer_msg β€” the transfer message callback, iconic behavior only πŸ’…
  • xfer_msg_defer β€” the defer version of the transfer message callback; the message is handled with the bus struct sdw_defer ✨
  • set_bus_conf β€” sets the bus configuration πŸŽ€
  • pre_bank_switch β€” callback for pre bank switch, no cap 🫢
  • post_bank_switch β€” callback for post bank switch, matching energy 🌸
  • read_ping_status β€” reads status from PING frames, reported with two bits per Device; bits 31:24 are reserved πŸ‘‘
  • get_device_num β€” callback for vendor-specific device_number allocation πŸ¦‹
  • put_device_num β€” callback for vendor-specific device_number release 🧚
  • new_peripheral_assigned β€” callback to handle enumeration of new peripheral, main character energy fr fr ⭐
  • bpt_send_async β€” reserves resources for BPT stream and sends message using BTP protocol πŸ’œ
  • bpt_wait β€” waits for message completion using BTP protocol and releases resources 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./include/linux/soundwire/sdw.h and the whole related-entries lineup:

enum sdw_slave_status(9), enum sdw_clk_stop_type(9), enum sdw_command_response(9), enum sdw_stream_type(9), enum sdw_data_direction(9), enum sdw_port_data_mode(9), enum sdw_p15_behave(9), enum sdw_dpn_type(9), enum sdw_clk_stop_mode(9), struct sdw_dp0_prop(9), struct sdw_dpn_prop(9), struct sdw_slave_prop(9), struct sdw_master_prop(9), struct sdw_slave_id(9), struct sdw_slave_intr_status(9), enum sdw_reg_bank(9), struct sdw_prepare_ch(9), enum sdw_port_prep_ops(9), struct sdw_bus_params(9), struct sdw_slave_ops(9), struct sdw_slave(9), struct sdw_master_device(9), struct sdw_port_params(9), struct sdw_transport_params(9), struct sdw_enable_ch(9), struct sdw_master_port_ops(9), struct sdw_defer(9), struct sdw_port_config(9), struct sdw_stream_config(9), enum sdw_stream_state(9), struct sdw_stream_params(9), struct sdw_stream_runtime(9), struct sdw_bus(9), and sdw_slave_wait_for_init(9) πŸ’–


mwah πŸ’‹ β€” this little page came from ./include/linux/soundwire, dated October 2026, and that’s the whole vibe check bestie πŸŽ€

πŸ“¦ where this page comes from