STRUCT SDW_MASTER_OPS(9)
π 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 structsdw_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; bits31:24are reserved πget_device_numβ callback for vendor-specificdevice_numberallocation π¦put_device_numβ callback for vendor-specificdevice_numberrelease π§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
- 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