mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-28 16:54:57 -04:00
While reading some docs, I have found some minor misspelled words and some parts that could be improved. The ASoC USB documentation refers to the USB DPCM backend link as DCPM in two places. The ASoC platform documentation still points readers to the old DPCM.txt name. The ALSA configuration guide also has two references that omit their current subdirectory. Fix a few stale and misspelled references in the ALSA and ASoC documentation and update the references and fix a typo in the ASoC index. Assisted-by: Codex:GPT-5.5 Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com> Link: https://patch.msgid.link/20260508-asoc-doc-fixes-v1-1-b53eec42e340@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
79 lines
2.0 KiB
ReStructuredText
79 lines
2.0 KiB
ReStructuredText
====================
|
|
ASoC Platform Driver
|
|
====================
|
|
|
|
An ASoC platform driver class can be divided into audio DMA drivers, SoC DAI
|
|
drivers and DSP drivers. The platform drivers only target the SoC CPU and must
|
|
have no board specific code.
|
|
|
|
Audio DMA
|
|
=========
|
|
|
|
The platform DMA driver optionally supports the following ALSA operations:-
|
|
::
|
|
|
|
/* SoC audio ops */
|
|
struct snd_soc_ops {
|
|
int (*startup)(struct snd_pcm_substream *);
|
|
void (*shutdown)(struct snd_pcm_substream *);
|
|
int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *);
|
|
int (*hw_free)(struct snd_pcm_substream *);
|
|
int (*prepare)(struct snd_pcm_substream *);
|
|
int (*trigger)(struct snd_pcm_substream *, int);
|
|
};
|
|
|
|
The platform driver exports its DMA functionality via struct
|
|
snd_soc_component_driver:-
|
|
::
|
|
|
|
struct snd_soc_component_driver {
|
|
const char *name;
|
|
|
|
...
|
|
int (*probe)(struct snd_soc_component *);
|
|
void (*remove)(struct snd_soc_component *);
|
|
int (*suspend)(struct snd_soc_component *);
|
|
int (*resume)(struct snd_soc_component *);
|
|
|
|
/* pcm creation and destruction */
|
|
int (*pcm_new)(struct snd_soc_pcm_runtime *);
|
|
void (*pcm_free)(struct snd_pcm *);
|
|
|
|
...
|
|
const struct snd_pcm_ops *ops;
|
|
const struct snd_compr_ops *compr_ops;
|
|
...
|
|
};
|
|
|
|
Please refer to the :doc:`ALSA driver documentation
|
|
<../kernel-api/writing-an-alsa-driver>` for details of audio DMA.
|
|
|
|
An example DMA driver is soc/pxa/pxa2xx-pcm.c
|
|
|
|
|
|
SoC DAI Drivers
|
|
===============
|
|
|
|
Each SoC DAI driver must provide the following features:-
|
|
|
|
1. Digital audio interface (DAI) description
|
|
2. Digital audio interface configuration
|
|
3. PCM's description
|
|
4. SYSCLK configuration
|
|
5. Suspend and resume (optional)
|
|
|
|
Please see codec.rst for a description of items 1 - 4.
|
|
|
|
|
|
SoC DSP Drivers
|
|
===============
|
|
|
|
Each SoC DSP driver usually supplies the following features :-
|
|
|
|
1. DAPM graph
|
|
2. Mixer controls
|
|
3. DMA IO to/from DSP buffers (if applicable)
|
|
4. Definition of DSP front end (FE) PCM devices.
|
|
|
|
Please see dpcm.rst for a description of item 4.
|