STRUCT SDW_TRANSPORT_PARAMS(9)
π§ struct sdw_transport_params(9) β the kernel API manual, bestie edition π
okay so this is a page from the Kernel API Manual (yes, the (9) one, that's the kernel-API section, iykyk) and it's literally all about struct sdw_transport_params, which is the glow-up blueprint for a SoundWire Data Port. sit down, we're doing this together π«Ά
β¨ NAME β¨
struct sdw_transport_params β Data Port Transport Parameters. that's the whole vibe: the parameters that get transported. iconic, no notes π
πΈ SYNOPSIS πΈ
here's the struct, in its full unedited glory β copy it exactly, do not touch, she is perfect:
struct sdw_transport_params {
bool blk_grp_ctrl_valid;
unsigned int port_num;
unsigned int blk_grp_ctrl;
unsigned int sample_interval;
unsigned int offset1;
unsigned int offset2;
unsigned int hstart;
unsigned int hstop;
unsigned int blk_pkg_mode;
unsigned int lane_ctrl;
};
π¦ Members π¦
okay field-by-field, and no skipping, we respect every single one of these:
blk_grp_ctrl_validβ tells you whether this Port actually implements block group control. like, does she even have the feature or is she just standing there πport_numβ the Port number. that's it, that's the field.blk_grp_ctrlβ the block group control value itself.sample_intervalβ the sample interval.offset1β Blockoffset of the payload data.offset2β Blockoffset of the payload data. (yes, again, that's what it says, they're siblings, don't ask π€·ββοΈ)hstartβ Horizontal start of the payload data.hstopβ Horizontal stop of the payload data.blk_pkg_modeβ block per channel or block per port. pick your fighter β¨lane_ctrlβ the Data lane the Port uses for Data transfer. currently only single data lane is supported in bus β so like, one lane only, that's the whole menu rn π
π Description π
so what's the point of all of this? this struct is used to program the Data Port based on Data Port transport parameters. that's the job. π
and here's the actually-kind-of-genius part: all these parameters are banked and can be modified during a bank switch without any artifacts in audio stream. meaning you can swap them mid-bank-switch and the audio stream stays clean β no glitches, no crunchy noises, no "why is my song popping" moment. main character energy fr fr π
π SEE ALSO π
your reading list, bestie β Kernel file ./include/linux/soundwire/sdw.h, plus this whole friend group:
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_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)
ngl this page is short and sweet and that's exactly why we love her. ten fields, one job, zero drama. periodt. π
and that's the page, bestie!! π this one lives in ./include/linux/soundwire, dated October 2026, and it's filed under struct sdw_transport_params(9) like the star she is. go forth and program those Data Ports responsibly π§ββοΈπβ¨
π¦ 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