STRUCT SDW_MASTER_PORT_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct sdw_master_port_ops (9) πŸ’…

okay so bestie, this is a page from the Kernel API Manual and it's literally all about struct sdw_master_port_ops β€” the callback functions that go from the bus over to the Master driver so it can set up the Master Data ports. that's the whole vibe. no cap.


✨ SYNOPSIS ✨

like, here's the whole struct, and yes you're gonna want to read it exactly:

struct sdw_master_port_ops {
    int (*dpn_set_port_params)(struct sdw_bus *bus, struct
sdw_port_params *port_params, unsigned int bank);
    int (*dpn_set_port_transport_params)(struct sdw_bus *bus, struct
sdw_transport_params *transport_params, enum sdw_reg_bank bank);
    int (*dpn_port_prep)(struct sdw_bus *bus, struct sdw_prepare_ch
*prepare_ch);
    int (*dpn_port_enable_ch)(struct sdw_bus *bus, struct sdw_enable_ch
*enable_ch, unsigned int bank);
 };

🌸 Members 🌸

these are the four little icons of this struct, mwah:

  • dpn_set_port_params β€” sets the Port parameters for the Master Port. it's a Mandatory callback, so like… you literally cannot skip it. mandatory mandatory. 🫢
  • dpn_set_port_transport_params β€” sets the transport parameters for the Master Port. also a Mandatory callback. yeah, this one's required too, no wiggle room πŸ’€
  • dpn_port_prep β€” the Port prepare operations for the Master Data Port. that's it, that's the job.
  • dpn_port_enable_ch β€” enables the channels of the Master Port. go off, channels πŸ‘‘

πŸ¦‹ SEE ALSO πŸ¦‹

it all lives in the Kernel file ./include/linux/soundwire/sdw.h, and here's the full squad it hangs out with (sorry, it's a long list, but every single one is here and i'm not about to leave anyone out):

  • 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_defer(9)
  • struct sdw_master_ops(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)
  • sdw_slave_wait_for_init(9)

ngl bestie, if you're implementing a Master driver you're gonna be living in these callbacks. the two Mandatory ones are non-negotiable, fr fr πŸ’…

okay that's the whole page, love u, bye! πŸŽ€ this one came from ./include/linux/soundwire, dated October 2026, and it's page struct sdw_master_port_ops(9) of the Kernel API Manual β€” drink some water and go implement ur callbacks, queen πŸ‘‘βœ¨

πŸ“¦ where this page comes from