include/sound/sb16_csp.h
Source file repositories/reference/linux-study-clean/include/sound/sb16_csp.h
File Facts
- System
- Linux kernel
- Corpus path
include/sound/sb16_csp.h- Extension
.h- Size
- 2100 bytes
- Lines
- 77
- 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
sound/sb.hsound/hwdep.hlinux/firmware.huapi/sound/sb16_csp.h
Detected Declarations
struct snd_sb_cspstruct snd_sb_csp_opsstruct snd_sb_csp
Annotated Snippet
struct snd_sb_csp_ops {
int (*csp_use) (struct snd_sb_csp * p);
int (*csp_unuse) (struct snd_sb_csp * p);
int (*csp_autoload) (struct snd_sb_csp * p, snd_pcm_format_t pcm_sfmt, int play_rec_mode);
int (*csp_start) (struct snd_sb_csp * p, int sample_width, int channels);
int (*csp_stop) (struct snd_sb_csp * p);
int (*csp_qsound_transfer) (struct snd_sb_csp * p);
};
/*
* CSP private data
*/
struct snd_sb_csp {
struct snd_sb *chip; /* SB16 DSP */
int used; /* usage flag - exclusive */
char codec_name[16]; /* name of codec */
unsigned short func_nr; /* function number */
unsigned int acc_format; /* accepted PCM formats */
int acc_channels; /* accepted channels */
int acc_width; /* accepted sample width */
int acc_rates; /* accepted sample rates */
int mode; /* MODE */
int run_channels; /* current CSP channels */
int run_width; /* current sample width */
int version; /* CSP version (0x10 - 0x1f) */
int running; /* running state */
struct snd_sb_csp_ops ops; /* operators */
spinlock_t q_lock; /* locking */
int q_enabled; /* enabled flag */
int qpos_left; /* left position */
int qpos_right; /* right position */
int qpos_changed; /* position changed flag */
struct snd_kcontrol *qsound_switch;
struct snd_kcontrol *qsound_space;
struct mutex access_mutex; /* locking */
const struct firmware *csp_programs[CSP_PROGRAM_COUNT];
};
int snd_sb_csp_new(struct snd_sb *chip, int device, struct snd_hwdep ** rhwdep);
#endif /* __SOUND_SB16_CSP */
Annotation
- Immediate include surface: `sound/sb.h`, `sound/hwdep.h`, `linux/firmware.h`, `uapi/sound/sb16_csp.h`.
- Detected declarations: `struct snd_sb_csp`, `struct snd_sb_csp_ops`, `struct snd_sb_csp`.
- 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.