include/sound/sdw.h
Source file repositories/reference/linux-study-clean/include/sound/sdw.h
File Facts
- System
- Linux kernel
- Corpus path
include/sound/sdw.h- Extension
.h- Size
- 1667 bytes
- Lines
- 50
- Domain
- Driver Families
- Bucket
- include/sound
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/soundwire/sdw.hsound/asound.hsound/pcm.hsound/pcm_params.h
Detected Declarations
function Copyright
Annotated Snippet
#include <linux/soundwire/sdw.h>
#include <sound/asound.h>
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#ifndef __INCLUDE_SOUND_SDW_H
#define __INCLUDE_SOUND_SDW_H
/**
* snd_sdw_params_to_config() - Conversion from hw_params to SoundWire config
*
* @substream: Pointer to the PCM substream structure
* @params: Pointer to the hardware params structure
* @stream_config: Stream configuration for the SoundWire audio stream
* @port_config: Port configuration for the SoundWire audio stream
*
* This function provides a basic conversion from the hw_params structure to
* SoundWire configuration structures. The user will at a minimum need to also
* set the port number in the port config, but may also override more of the
* setup, or in the case of a complex user, not use this helper at all and
* open-code everything.
*/
static inline void snd_sdw_params_to_config(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct sdw_stream_config *stream_config,
struct sdw_port_config *port_config)
{
stream_config->frame_rate = params_rate(params);
stream_config->ch_count = params_channels(params);
stream_config->bps = snd_pcm_format_width(params_format(params));
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
stream_config->direction = SDW_DATA_DIR_RX;
else
stream_config->direction = SDW_DATA_DIR_TX;
port_config->ch_mask = GENMASK(stream_config->ch_count - 1, 0);
}
#endif
Annotation
- Immediate include surface: `linux/soundwire/sdw.h`, `sound/asound.h`, `sound/pcm.h`, `sound/pcm_params.h`.
- Detected declarations: `function Copyright`.
- Atlas domain: Driver Families / include/sound.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.