diff --git a/Documentation/sound/soc/index.rst b/Documentation/sound/soc/index.rst index e57df2dab2fd..8bed8f8f48da 100644 --- a/Documentation/sound/soc/index.rst +++ b/Documentation/sound/soc/index.rst @@ -18,3 +18,4 @@ The documentation is spilt into the following sections:- jack dpcm codec-to-codec
- usb
diff --git a/Documentation/sound/soc/usb.rst b/Documentation/sound/soc/usb.rst new file mode 100644 index 000000000000..bd3d9eb86b07 --- /dev/null +++ b/Documentation/sound/soc/usb.rst @@ -0,0 +1,429 @@ +================ +ASoC USB support +================
+Overview +======== +In order to leverage the existing USB sound device support in ALSA, the +ASoC USB APIs are introduced to allow for the entities to communicate +with one another.
nit-pick: entities is rather vague and an overloaded term in USB audio. Maybe "allow the subsystems to exchange configuration information"
+One potential use case would be to support USB audio offloading, which is +an implementation that allows for an external DSP on the SoC to handle the
nit-pick: not sure about the reference to an 'external DSP'. "external" would usually to a stand-alone device and there's no real need for DSP capabilities for USB offload, e.g. a regular embedded core would do just fine.
maybe "allows for an alternate power-optimized path in the audio subsystem to handle the transfer of audio data over the USB bus"
+transfer of audio data over the USB bus. This would let the main +processor to stay in lower power modes for longer duration. The following +is an example design of how the ASoC and ALSA pieces can be connected +together to achieve this:
- int snd_soc_usb_update_offload_route(struct device *dev, int card, int pcm,
int direction, long *route)
+..
- ``dev``: USB device to look up offload path mapping
- ``card``: USB sound card index
- ``pcm``: USB sound PCM device index
- ``direction``: direction to fetch offload routing information
- ``route``: mapping of sound card and pcm indexes for the offload path
nit-pick: again explain how the card and pcm indices are handled.
+-------------------------------- +USB devices can be hotplugged into the USB root hub at any point in time.
"root hub" really?
Is this really required? I would think the entire framework would work just fine if the device is connected to any hub at any level, not just "the" root hub.