STRUCT SDW_DP0_PROP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct sdw_dp0_prop(9) β€” the DP0 properties glow-up

okay bestie so welcome to the kernel API manual, and today's main character is struct sdw_dp0_prop β€” literally the struct that holds all the DP0 properties. she's giving humble little struct but she's carrying a whole lot of SoundWire lore, so let's get into it 🫢


✨ SYNOPSIS ✨

like, here's her whole personality, laid out:

struct sdw_dp0_prop {
    u32 *words;
    u32 max_word;
    u32 min_word;
    u32 num_words;
    u32 ch_prep_timeout;
    bool BRA_flow_controlled;
    bool simple_ch_prep_sm;
    bool imp_def_interrupts;
    int num_lanes;
    u32 *lane_list;
 };

no cap, that's the whole thing πŸ’…


πŸŽ€ Members πŸŽ€

okay so let's meet the cast, one by one, because every single one of them matters:

  • words β€” the wordlengths that are supported. literally the list of them 🌸
  • max_word β€” the maximum number of bits in a Payload Channel Sample. and listen, it's 1 to 64 (inclusive), so don't be out here trying 65, she will not be doing that πŸ’€
  • min_word β€” the minimum number of bits in a Payload Channel Sample. same vibe, also 1 to 64 (inclusive). bookends, your honour πŸŽ€
  • num_words β€” the number of wordlengths that are supported. yes it's a count, yes it's giving very on-the-nose naming, we love a self-explanatory queen ✨
  • ch_prep_timeout β€” a port-specific timeout value, and the unit is milliseconds. write that down bestie ⏱️
  • BRA_flow_controlled β€” the slave implementation results in an OK_NotReady response. iykyk πŸ™ˆ
  • simple_ch_prep_sm β€” tells you if a channel prepare sequence is required. she's the "do we actually have to do the little dance" flag 🩰
  • imp_def_interrupts β€” if this is set, then each bit corresponds to support for implementation-defined interrupts. bit-by-bit girlies, we stan a bitmask πŸ‘‘
  • num_lanes β€” the array size of lane_list. she's just here to tell you how long the list is, and honestly? relatable πŸ’œ
  • lane_list β€” indicates which Lanes can be used by DP0. the VIP lane guest list 🌈

πŸ’– Description πŸ’–

so here's the tea: the wordlengths are specified by Spec as max, min AND the number of discrete values. and then the implementation can define based on the wordlengths they support β€” so like, the spec sets the frame but you get to decorate the room, yk? ✨


πŸ¦‹ SEE ALSO πŸ¦‹

bestie buckle up, this is a long guest list, but every single one of them is invited to the function, no cuts, no skips, ok? 🫢

Kernel file ./include/linux/soundwire

  • 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_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_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)

ok that's literally the whole page, no notes, hope this slayed for you πŸ’…

and finally, the cute little sign-off so you know where she lives and when she was born: this one's from ./include/linux/soundwire, dated October 2026, and she answers to struct sdw_dp0_prop(9) β€” mwah, bye bestie πŸ“πŸ§šπŸ’œ

πŸ“¦ where this page comes from