Commit graph

837 commits

Author SHA1 Message Date
Takashi Iwai
7bba999e93 Merge branch 'for-linus' into for-next
Pull pending ASoC and HD-audio fixes for 6.14-rc1

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2025-01-20 09:25:33 +01:00
Takashi Iwai
3ab4a3199c ALSA: seq: Notify UMP EP and FB changes
So far we notify the sequencer client and port changes upon UMP FB
changes, but those aren't really corresponding to the UMP updates.
e.g. when a FB info gets updated, it's not notified but done only when
some of sequencer port attribute is changed.  This is no ideal
behavior.

This patch adds the two new sequencer event types for notifying the
UMP EP and FB changes via the announce port.  The new event takes
snd_seq_ev_ump_notify type data, which is compatible with
snd_seq_addr (where the port number is replaced with the block
number).

The events are sent when the EP and FB info gets updated explicitly
via ioctl, or the backend UMP receives the corresponding UMP
messages.

The sequencer protocol version is bumped to 1.0.5 along with it.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250110155943.31578-9-tiwai@suse.de
2025-01-12 13:12:21 +01:00
Takashi Iwai
b8fefed73a ALSA: rawmidi: Show substream activity in info ioctl
The UMP legacy rawmidi may turn on/off the substream dynamically
depending on the UMP Function Block information.  So far, there was no
direct way to know whether the substream is disabled (inactive) or
not; at most one can take a look at the substream name string or try
to open and get -ENODEV.

This patch extends the rawmidi info ioctl to show the current inactive
state of the given substream.  When the selected substream is
inactive, info flags field contains the new bit flag
SNDRV_RAWMIDI_INFO_STREAM_INACTIVE.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250110155943.31578-3-tiwai@suse.de
2025-01-12 13:12:20 +01:00
Takashi Iwai
bdf46443f3 ALSA: rawmidi: Expose the tied device number in info ioctl
The UMP legacy rawmidi is derived from the UMP rawmidi, but currently
there is no way to know which device is involved in other side.

This patch extends the rawmidi info ioctl to show the tied device
number.  As default it stores -1, indicating that no tied device.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250110155943.31578-2-tiwai@suse.de
2025-01-12 13:12:20 +01:00
Richard Fitzgerald
080505f3c6
ALSA: doc: Add codecs/index.rst to top-level index
commit 088fb4ee17 ("ALSA: doc: cs35l56: Add information about
Cirrus Logic CS35L54/56/57") added a new subdirectory with an index
file, so this file must be added to the top-level index.

Fixes: 088fb4ee17 ("ALSA: doc: cs35l56: Add information about Cirrus Logic CS35L54/56/57")
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20250109105657.96860-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-01-09 11:15:56 +00:00
Richard Fitzgerald
088fb4ee17
ALSA: doc: cs35l56: Add information about Cirrus Logic CS35L54/56/57
Add documentation for the Cirrus Logic CS35L54/56/57 amps, which are
all managed by the cs35l56 drivers.

The aim and scope of this documentation is to provide troubleshooting
information for end-users.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20250108141045.1032-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2025-01-08 16:21:44 +00:00
Takashi Iwai
2e5bf5b6d2 ASoC: Fixes for v6.13
A pile of driver specific quirks and fixes that came in since the merge
 window.  One of the AMD fixes is a bit broken for some systems, I'm
 expecting an incremental change to fix that but it seems better overall
 to merge the rest of the fixes.
 
 There's also one small documentation update that seemed sensible to
 apply now, pointing to the dapm-graph tool.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmdIbcgACgkQJNaLcl1U
 h9DlTgf7BxJR5q38fnk2XxOr8CF8qngDgL+KTPmUqVFNTv8R8wypMaQ0IV4dxkHn
 YB4ABuGkXnSiJml4cBXaPq+l+xU8wp3QM8GY+EwmXJApDGJ9dzDJI2S0m/+VrYm3
 ZIHNKrwXu/f0KB5HMSPmg0gsuCi88Y89GcFqeI0+F2fnFjv87VmyFktbE5Qy7pNa
 OQVoGuGHel7CYEW0arOXs/lbhSrYRiSzEr2fR9l1Yx6HbIyt/c1nDzWbJar6emYw
 gDeyUETJtOEg1FqkFmjCFLIhZMVReoyA/VJ+OzaBn8CjHr2HLecl5zbZVoG3id4l
 f9JhcMD+5Q19u9ijDYUdn9JgR9AhTw==
 =/CdR
 -----END PGP SIGNATURE-----

Merge tag 'asoc-fix-v6.13-merge-window' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.13

A pile of driver specific quirks and fixes that came in since the merge
window.  One of the AMD fixes is a bit broken for some systems, I'm
expecting an incremental change to fix that but it seems better overall
to merge the rest of the fixes.

There's also one small documentation update that seemed sensible to
apply now, pointing to the dapm-graph tool.
2024-11-28 14:55:21 +01:00
anish kumar
8697ecc327
ASoC: doc: dapm: Add location information for dapm-graph tool
To help developers debug DAPM issues and visualize widget connectivity,
the dapm-graph tool provides a graphical representation of how widgets
and routes are connected. This commit adds the location information for
the tool to the documentation, making it easier for users to find and
use it for troubleshooting DAPM-related problems.

Signed-off-by: anish kumar <yesanishhere@gmail.com>
Link: https://patch.msgid.link/20241121232958.46179-1-yesanishhere@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-11-25 12:42:52 +00:00
Hridesh MG
56386292a0 ALSA: docs: fix dead hyperlink to Intel HD-Audio spec
Update the hyperlink as it currently redirects to a generic site
instead of the actual specification.

Signed-off-by: Hridesh MG <hridesh699@gmail.com>
Link: https://patch.msgid.link/20241120155553.21099-1-hridesh699@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-11-21 12:34:18 +01:00
Takashi Iwai
1a7585c3a4 ASoC: Updates for v6.13
This release was mainly about new drivers, there's a very large batch of
 new drivers and devices including quite a few from newer vendors which
 is great to see.  Other than the new drivers and the usual routine fixes
 and enhancements the bulk of the work has been Morimoto-san's continuing
 work on simplifiying APIs, plus a few other bits:
 
  - More API simplifications from Morimoto-san.
  - Renaming of the sh directory to Renesas to reflect the focus on other
    architectures.
  - Factoring out of some of the common code for Realtek devices.
  - Support for Allwinner H616, AMD ACP 6.3 systems, AWInic AW88081,
    Cirrus Logic CS32L84, Everest ES8328, Iron Devices SMA1307, Longsoon
    I2S, NeoFidelity NTP8918 and NTP8835, Philips UDA1342, Qualcomm
    SM8750, RealTek RT721, and ST Microelectronics STM32MP25.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmc7NioACgkQJNaLcl1U
 h9CQpQf/R0SfnI7RKkYNwyqiH+aHn75bMOAq5xyGqfUIithkWXFRwi+4r08wW0yF
 3u6GLgwuzjHAGzupN+TxWTucglMdzwdaL+Z+JbVwhejK0ugTz/EJOS/Y0IW+pIoX
 /icQuE3fcW1ODDrDoBp8KkkjkCGwUddR6Oth75oDMEFG++ug7x8zxJEEvhZ6deFr
 7UOAa22BqdCRNFWGmYJvJH31SKsapQcA237/bRTHitiNhwxIYRnQ7VvaOES7BdcT
 BtL2yCjgU2o3MGwdJdj5r/tm0HC6M1o7mJF2bb3i9dos6NB4uOM9UV4dKNcdKth9
 TGIbd62noD5h03HzBCplREfA3ynrsA==
 =6HJR
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v6.13' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next

ASoC: Updates for v6.13

This release was mainly about new drivers, there's a very large batch of
new drivers and devices including quite a few from newer vendors which
is great to see.  Other than the new drivers and the usual routine fixes
and enhancements the bulk of the work has been Morimoto-san's continuing
work on simplifiying APIs, plus a few other bits:

 - More API simplifications from Morimoto-san.
 - Renaming of the sh directory to Renesas to reflect the focus on other
   architectures.
 - Factoring out of some of the common code for Realtek devices.
 - Support for Allwinner H616, AMD ACP 6.3 systems, AWInic AW88081,
   Cirrus Logic CS32L84, Everest ES8328, Iron Devices SMA1307, Longsoon
   I2S, NeoFidelity NTP8918 and NTP8835, Philips UDA1342, Qualcomm
   SM8750, RealTek RT721, and ST Microelectronics STM32MP25.
2024-11-18 14:34:54 +01:00
anish kumar
e90dbd3839
ASoC: machine: update documentation
1. Added clocking details.
2. Updated ways to register the dai's
3. Bit more detail about card registration details.

Signed-off-by: anish kumar <yesanishhere@gmail.com>
Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
Link: https://patch.msgid.link/20241109192231.11623-1-yesanishhere@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-11-11 11:47:08 +00:00
anish kumar
0196105667
ASoC: doc: update clock api details
Added ASoC clock api kernel doc in this
document.

Signed-off-by: anish kumar <yesanishhere@gmail.com>
Link: https://patch.msgid.link/20241031035829.54852-1-yesanishhere@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-10-31 12:00:57 +00:00
Bagas Sanjaya
9a0f609106 ALSA: docs: Add toctree index entry for co-processor acceleration API
Sphinx reports missing toctree entry warning for co-processor
acceleration API docs:

Documentation/sound/designs/compress-accel.rst: WARNING: document isn't included in any toctree

Add the missing entry to fix the warning.

Fixes: 04177158cf ("ALSA: compress_offload: introduce accel operation mode")
Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
Link: https://patch.msgid.link/20241028111647.17378-3-bagasdotme@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-10-28 16:04:57 +01:00
Bagas Sanjaya
f42eb49309 ALSA: docs: compress-accel: Format state machine flowchart as code block
Stephen Rothwell reports multiple htmldocs indentation warnings when
merging sound tree for linux-next:

Documentation/sound/designs/compress-accel.rst:67: ERROR: Unexpected indentation.
Documentation/sound/designs/compress-accel.rst:67: WARNING: Blank line required after table.
Documentation/sound/designs/compress-accel.rst:68: WARNING: Line block ends without a blank line.
Documentation/sound/designs/compress-accel.rst:72: WARNING: Block quote ends without a blank line; unexpected unindent.
Documentation/sound/designs/compress-accel.rst:73: WARNING: Block quote ends without a blank line; unexpected unindent.

Fix these above by wrapping passthrough audio stream state machine
flowchart in a literal code block.

Fixes: 04177158cf ("ALSA: compress_offload: introduce accel operation mode")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/linux-next/20241028193242.11597640@canb.auug.org.au/
Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
Link: https://patch.msgid.link/20241028111647.17378-2-bagasdotme@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-10-28 16:04:55 +01:00
Jaroslav Kysela
04177158cf ALSA: compress_offload: introduce accel operation mode
There is a requirement to expose the audio hardware that accelerates various
tasks for user space such as sample rate converters, compressed
stream decoders, etc.

This is description for the API extension for the compress ALSA API which
is able to handle "tasks" that are not bound to real-time operations
and allows for the serialization of operations.

For details, refer to "compress-accel.rst" document.

Cc: Mark Brown <broonie@kernel.org>
Cc: Shengjiu Wang <shengjiu.wang@gmail.com>
Cc: Nicolas Dufresne <nicolas@ndufresne.ca>
Cc: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Cc: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Tested-by: Shengjiu Wang <shengjiu.wang@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20241002093904.1809799-1-perex@perex.cz
2024-10-25 10:53:20 +02:00
Kuninori Morimoto
0e3dc8e4bd
ASoC: doc: remove dpcm_xxx flags
dpcm_xxx flags are no longer needed. Let's remove it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://patch.msgid.link/874j569vgw.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-10-23 13:02:04 +01:00
Ivan Orlov
8fad71b677 Docs/sound: Add documentation for userspace-driven ALSA timers
Add the documentation which describes the new userspace-driven timers
API introduced in this patch series. The documentation contains:

- Description of userspace-driven ALSA timers, what they are for
- Description of the timers API
- Example of how the timers can be created and triggered
- How the timers can be used as a timer sources for snd-aloop module

Suggested-by: Axel Holzinger <aholzinger@gmx.de>
Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20240813120701.171743-3-ivan.orlov0322@gmail.com
2024-08-18 09:55:54 +02:00
Takashi Iwai
9acb51e961 ALSA: docs: Drop snd_print*() stuff
The legacy snd_print*() helpers will be dropped now.  Clean up the
corresponding documentation, too.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20240807133452.9424-54-tiwai@suse.de
2024-08-08 07:49:47 +02:00
Takashi Iwai
3bb668264d ALSA: hda: Enhance pm_blacklist option
We want sometimes to keep the runtime PM disabled persistently just
like we did for the PM deny-list in the previous change, e.g. for
testing some buggy device.  This patch enhances the existing
pm_blacklist option for achieving it easily.

The default behavior doesn't change -- the driver looks up the deny
list and disables the runtime PM if matches.  However, when
pm_blacklist=1 option is set, now the driver disables the runtime PM
completely, just like the deny-list does.

Update the documentation for this option, too.

Link: https://patch.msgid.link/20240729141519.18398-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-07-30 07:45:55 +02:00
Abhinav Saxena
2ea13d6262 Documentation: sound: Fix trailing whitespaces
Remove trailing whitespace from sound/hd-audio/notes as reported by
checkpatch. Removing trailing spaces improves consistency, and
prevents Preventing potential merge conflicts due to whitespace
differences. maintain a cleaner and more professional codebase.

Signed-off-by: Abhinav Saxena <xandfury@gmail.com>
Link: https://lore.kernel.org/r/20240515034103.1010269-1-xandfury@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-05-16 16:00:30 +02:00
Takashi Iwai
3a07362fab ASoC: Updates for v6.10
This is a very big update, in large part due to extensive work the Intel
 people have been doing in their drivers though it's also been busy
 elsewhere.  There's also a big overhaul of the DAPM documentation from
 Luca Ceresoli arising from the work he did putting together his recent
 ELC talk, and he also contributed a new tool for visualising the DAPM
 state.
 
  - A new tool dapm-graph for visualising the DAPM state.
  - Substantial fixes and clarifications for the DAPM documentation.
  - Very large updates throughout the Intel audio drivers.
  - Cleanups of accessors for driver data, module labelling, and for
    constification.
  - Modernsation and cleanup work in the Mediatek drivers.
  - Several fixes and features for the DaVinci I2S driver.
  - New drivers for several AMD and Intel platforms, Nuvoton NAU8325,
    Rockchip RK3308 and Texas Instruments PCM6240.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmZB2aoACgkQJNaLcl1U
 h9D9YQf+K66pFTAMro/X4KWXfg3EeHnqgwbdb1pN/3zKqFgnxPfxJvhvpeM+bFSj
 yZGssZZzd9jMkm6rLOZRPCycqSZtimy9DjSnNyPhQgU0jA2ZS1NRMnpN77ubMkPW
 IBeWO8j5TBYaqttlmM0YBscErng9GsNqOD5a+HW9AJz5+TYbIIWt/2TVnyBRU0LV
 NGkKj1x7AvJY239kitJ4cfFGZpPaGU7bxUk1HCpSPWM+asIpNSxBhKD73zZlWHZ/
 kwJSbFslXdCm/TZZQtox/Z8GClxQ2dasWEfXWZK9kBJbHD3UH7VJ4Em50pBWnKis
 piarddgSvu5zhVmZkhJhkmOe8jiswA==
 =N5Dj
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v6.10' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Updates for v6.10

This is a very big update, in large part due to extensive work the Intel
people have been doing in their drivers though it's also been busy
elsewhere.  There's also a big overhaul of the DAPM documentation from
Luca Ceresoli arising from the work he did putting together his recent
ELC talk, and he also contributed a new tool for visualising the DAPM
state.

 - A new tool dapm-graph for visualising the DAPM state.
 - Substantial fixes and clarifications for the DAPM documentation.
 - Very large updates throughout the Intel audio drivers.
 - Cleanups of accessors for driver data, module labelling, and for
   constification.
 - Modernsation and cleanup work in the Mediatek drivers.
 - Several fixes and features for the DaVinci I2S driver.
 - New drivers for several AMD and Intel platforms, Nuvoton NAU8325,
   Rockchip RK3308 and Texas Instruments PCM6240.
2024-05-13 11:39:49 +02:00
Andy Shevchenko
5e7488cdeb ALSA: docs: Correct the kernel object suffix of target
The correct suffix is 'y' for the kernel code and
'objs' for the user space. Update documentation.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240506085219.3403731-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-05-08 18:15:32 +02:00
Luca Ceresoli
4155a82f6a
ASoC: doc: dapm: update event types
Some new event types now exist, so update the code fragment.

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-12-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:36 +09:00
Luca Ceresoli
ce5a4f101c
ASoC: doc: dapm: update section "DAPM Widget Events"
The example in this section is not in the kernel sources anymore. Replace
it with an up to date code fragment. Reword the initial paragraph. Remove
"Please" which is not standard practice in documentation.

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-11-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:35 +09:00
Luca Ceresoli
057acfb460
ASoC: doc: dapm: improve section "Codec/DSP Widget Interconnections"
Improve wording in a few places, cleanup ReST colon syntax, remove space
before colon, and remove the "codec" parameter in the parentheses of
snd_soc_dapm_new_widgets() (there should be no parameters in the docs, and
that function takes a card, not a codec).

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-10-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:34 +09:00
Luca Ceresoli
d40e821944
ASoC: doc: dapm: fix and improve section "Registering DAPM controls"
Extend the first paragraph to mention the {,num_}dapm_routes fields just
like the widget conterparts. Mention the route fields also in the code
example. Fix "at build time", this really means "at probe time".

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-9-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:34 +09:00
Luca Ceresoli
36de8c0e26
ASoC: doc: dapm: describe how widgets and routes are registered
The small paragraph describing how to register widgets is incomplete (does
not mention routes) and mentions snd_soc_dapm_new_control() which is not
really used. Moreover it appears as a part of the "Virtual Widgets"
subsection.

Replace it with a detailed and current description of how widgets and
routes are registered, mentioning both static declaration and runtime
registration. Also make this a section on its own.

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-8-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:33 +09:00
Luca Ceresoli
dd5f36e591
ASoC: doc: dapm: extend initial descrption
Extend the initial description providing clearer definitions of "widget"
and "route", and to stop using the word "component" to mean "widget". Give
more details and clarify wording and add a picture representing a real DAPM
graph.

Group all the introductory paragraphs before the "DAPM power domains", and
split the latter to a specific section.

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-7-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:32 +09:00
Luca Ceresoli
7d0e761078
ASoC: doc: dapm: replace "map" with "graph"
DAPM is actually based on a graph, so use this specific term instead of the
more generic "map".

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-6-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:31 +09:00
Luca Ceresoli
3233a68fcb
ASoC: doc: dapm: remove dash after colon
There is no need for a dash after colons. Also fix an incorrect ":-::"
sequence.

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-4-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:30 +09:00
Luca Ceresoli
610277caa7
ASoC: doc: dapm: minor rewording
Slightly reword for better readability: replace "PM" -> "power management
frameworks", add missing comma.

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-3-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:29 +09:00
Luca Ceresoli
eaf84bda62
ASoC: doc: dapm: fix struct name
struct snd_soc_codec_dai does not exist.

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-2-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:28 +09:00
Luca Ceresoli
534e0cd89b
ASoC: doc: dapm: fix typos
Fix various typos.

Reviewed-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://lore.kernel.org/r/20240426-dapm-docs-v2-1-87b07547eb5b@bootlin.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-04-29 23:49:27 +09:00
Takashi Iwai
e129d6c9ac ALSA: doc: Use DEFINE_SIMPLE_DEV_PM_OPS()
Use the new DEFINE_SIMPLE_DEV_PM_OPS() instead of SIMPLE_DEV_PM_OPS()
for the example code.  This allows us to drop CONFIG_PM_SLEEP ifdefs.

While we're at it, expand the driver definition instead of passing
directly via .driver.pm field.  This seems to be a more common
pattern.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://lore.kernel.org/r/20240207155140.18238-30-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-02-12 11:50:26 +01:00
Cristian Ciocaltea
67c7666fe8
ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argument
The virtual widget example makes use of an undefined SND_SOC_DAPM_NOPM
argument passed to SND_SOC_DAPM_MIXER().  Replace with the correct
SND_SOC_NOPM definition.

Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Link: https://lore.kernel.org/r/20231121120751.77355-1-cristian.ciocaltea@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-11-21 17:02:22 +00:00
Takashi Iwai
39cd06e3f7 ASoC: Updates for v6.7
This is quite a large set of changes but mostly due to API cleanups and
 in driver specific ways rather than due to anything subsystem wide.
 Highlights include:
 
  - Standardisation of API prefixes on snd_soc_, removing asoc_.
  - GPIO API usage improvements.
  - Support for HDA patches.
  - Lots of work on SOF, including crash dump support.
  - Support for AMD platforms with es83xx, Awinc AT87390, many Intel
    platforms, many Mediatek platforms, Qualcomm SM6115,  Richtek RTQ9128
    and Texas Instruments TAS575x.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmUy6X8ACgkQJNaLcl1U
 h9Cv7Qf+PO4ucl/rFITWAp2Ta9fw7Z5J6UCiXiR54TPgAiLJrpKSi3rbYTXjO90Y
 1NNOdoMKr109zdOpdSZI7EX0GgWQbGbdB40nxESdTcojAloRH0jt4RaF7G7B7+86
 b8PGlVPLLV/4zFf9f2gpEKPcKhRRRKYOBIEB+amfjWpdXVrqPD3zS/S16Q3Hn4Gy
 Fx9b9X/lVDG9uqJomHpunEdViZjkm5CCNzdyAhHH99afiqSe//pevx6/FpzAHyng
 AZgE9Yfq4Xw4pdzDdGVfYC+L1GZiHIDRzsusz6aPA5nrMhSn0ru8PMGtmQQTzyhb
 PLYw0OW8cWymfqwal8wrNGJfSZ8IGA==
 =lN5P
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v6.7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next

ASoC: Updates for v6.7

This is quite a large set of changes but mostly due to API cleanups and
in driver specific ways rather than due to anything subsystem wide.
Highlights include:

 - Standardisation of API prefixes on snd_soc_, removing asoc_.
 - GPIO API usage improvements.
 - Support for HDA patches.
 - Lots of work on SOF, including crash dump support.
 - Support for AMD platforms with es83xx, Awinc AT87390, many Intel
   platforms, many Mediatek platforms, Qualcomm SM6115,  Richtek RTQ9128
   and Texas Instruments TAS575x.

[ the merge conflicts around SOF Intel HD-audio and CS35L41 subcodec
  drivers are resolved here -- tiwai ]
2023-10-21 09:49:15 +02:00
Amadeusz Sławiński
b5d5c87986
ASoC: doc: Update codec to codec examples
There are examples in documentation for codec to codec connection.
However they show method before recent series of patches which renamed
the fields. Update documentation accordingly.

Fixes: 7ddc7f91be ("ASoC: soc.h: clarify Codec2Codec params")
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20230928134706.662947-1-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-09-28 16:04:13 +02:00
Takashi Iwai
60edec9bef ALSA: docs: Fix a typo of midi2_ump_probe option for snd-usb-audio
A simple typo fix: midi2_probe => midi2_ump_probe.

Fixes: febdfa0e9c ("ALSA: docs: Update MIDI 2.0 documentation for UMP 1.1 enhancement")
Link: https://lore.kernel.org/r/20230912075944.14032-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-09-12 10:00:46 +02:00
Oswald Buddenhagen
0982e519df ALSA: emu10k1: add separate documentation for E-MU cards
They are sufficiently different from Sound Blasters.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230825222157.170978-3-oswald.buddenhagen@gmx.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-08-26 09:25:17 +02:00
Oswald Buddenhagen
13890a6a87 ALSA: emu10k1: more documentation updates
- Clarify the data flows. For SB Live! I fixed only the most obvious
  point ("from" vs. "for").
- Mention 7.1 side channels on Audigy.
- Be unspecific about the output DACs on Audigy, as lots of variants
  actually exist (see emu_chip_details table).

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230825222157.170978-2-oswald.buddenhagen@gmx.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-08-26 09:25:08 +02:00
Oswald Buddenhagen
d945ef3627 ALSA: emu10k1: de-duplicate audigy-mixer.rst vs. sb-live-mixer.rst
Let the MANUALS/PATENTS section of the former simply refer to the latter
- there is no point in duplicating this information with little value to
end users.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230825222157.170978-1-oswald.buddenhagen@gmx.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-08-26 09:24:59 +02:00
Takashi Iwai
a3ca016af1 ALSA: doc: Fix missing backquote in midi-2.0.rst
Fix the missing  missing backquote that caused a sphinx warning:
  Documentation/sound/designs/midi-2.0.rst:517: WARNING: Inline interpreted text or phrase reference start-string without end-string.

Fixes: e240cff9e6 ("ALSA: documentation: Add description for USB MIDI 2.0 gadget driver")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/r/20230825152957.18c54ae2@canb.auug.org.au
Link: https://lore.kernel.org/r/20230825092351.11780-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-08-25 11:24:35 +02:00
Takashi Iwai
e240cff9e6 ALSA: documentation: Add description for USB MIDI 2.0 gadget driver
The USB MIDI 2.0 gadget driver is now supported for 6.6 kernel, and
here we show a brief instruction how to enable and use it.

Link: https://lore.kernel.org/r/20230824075108.29958-5-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-08-24 10:03:18 +02:00
Takashi Iwai
36fc349aee ALSA: doc: Update description for the new PCM copy ops
Update the documentation about the PCM copy callbacks.
The update was kept minimalistic, just correcting the use of copy_user
ops with the single copy ops, and drop/update the text mentioning the
copy_kernel.

Link: https://lore.kernel.org/r/20230815190136.8987-24-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-08-18 12:19:19 +02:00
Srinivas Kandagatla
7ea9ee0064 ALSA: compress: allow setting codec params after next track
For gapless playback it is possible that each track can have different
codec profile with same decoder, for example we have WMA album,
we may have different tracks as WMA v9, WMA v10 and so on

Or if DSP's like QDSP have abililty to switch decoders on single stream
for each track, then this call could be used to set new codec parameters.

Existing code does not allow to change this profile while doing gapless
playback.

Reuse existing SNDRV_COMPRESS_SET_PARAMS to set this new track params along
some additional checks to enforce proper state machine.

With this new changes now the user can call SNDRV_COMPRESS_SET_PARAMS
anytime after setting next track and additional check in write should
also ensure that params are set before writing new data.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Acked-by: Vinod Koul <vkoul@kernel.org>
Link: https://lore.kernel.org/r/20230619092805.21649-1-srinivas.kandagatla@linaro.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-21 07:28:31 +02:00
Takashi Iwai
508b662b69 Merge branch 'topic/midi20' into for-next
As the updated MIDI 2.0 spec has been published freshly, this is a
catch up to add the support for new specs, especially UMP v1.1
features, on Linux kernel.

The new UMP v1.1 introduced the concept of Function Blocks (FB), which
is a kind of superset of USB MIDI 2.0 Group Terminal Blocks (GTB).
The patch set adds the support for FB as the primary information
source while keeping the parse of GTB as fallback.  Also UMP v1.1
supports the groupless messages, the protocol switch, static FBs, and
other new fundamental features, and those are supported as well.

Link: https://www.midi.org/midi-articles/details-about-midi-2-0-midi-ci-profiles-and-property-exchange
Link: https://lore.kernel.org/r/20230612081054.17200-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-13 07:37:59 +02:00
Takashi Iwai
febdfa0e9c ALSA: docs: Update MIDI 2.0 documentation for UMP 1.1 enhancement
There have been a few enhancements for the new UMP 1.1 features.
Update the documentation accordingly.

Link: https://lore.kernel.org/r/20230612081054.17200-11-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-12 18:22:35 +02:00
Ivan Orlov
f091ec768c docs: sound: add 'pcmtest' driver documentation
Add documentation for the new Virtual PCM Test Driver. It covers all
possible usage cases: errors and delay injections, random and
pattern-based data generation, playback and ioctl redefinition
functionalities testing.

We have a lot of different virtual media drivers, which can be used for
testing of the userspace applications and media subsystem middle layer.
However, all of them are aimed at testing the video functionality and
simulating the video devices. For audio devices we have only snd-dummy
module, which is good in simulating the correct behavior of an ALSA device.
I decided to write a tool, which would help to test the userspace ALSA
programs (and the PCM middle layer as well) under unusual circumstances
to figure out how they would behave. So I came up with this Virtual PCM
Test Driver.

This new Virtual PCM Test Driver has several features which can be useful
during the userspace ALSA applications testing/fuzzing, or testing/fuzzing
of the PCM middle layer. Not all of them can be implemented using the
existing virtual drivers (like dummy or loopback). Here is what can this
driver do:

- Simulate both capture and playback processes
- Check the playback stream for containing the looped pattern
- Generate random or pattern-based capture data
- Inject delays into the playback and capturing processes
- Inject errors during the PCM callbacks

Also, this driver can check the playback stream for containing the
predefined pattern, which is used in the corresponding selftest to check
the PCM middle layer data transferring functionality. Additionally, this
driver redefines the default RESET ioctl, and the selftest covers this PCM
API functionality as well.

The driver supports both interleaved and non-interleaved access modes, and
have separate pattern buffers for each channel. The driver supports up to
4 channels and up to 8 substreams.

Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com>
Acked-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20230606193254.20791-1-ivan.orlov0322@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-07 13:08:35 +02:00
Takashi Iwai
03a58514d4 Merge branch 'topic/midi20' into for-next
This is a (largish) patch set for adding the support of MIDI 2.0
functionality, mainly targeted for USB devices.  MIDI 2.0 is a
complete overhaul of the 40-years old MIDI 1.0.  Unlike MIDI 1.0 byte
stream, MIDI 2.0 uses packets in 32bit words for Universal MIDI Packet
(UMP) protocol.  It supports both MIDI 1.0 commands for compatibility
and the extended MIDI 2.0 commands for higher resolutions and more
functions.

For supporting the UMP, the patch set extends the existing ALSA
rawmidi and sequencer interfaces, and adds the USB MIDI 2.0 support to
the standard USB-audio driver.

The rawmidi for UMP has a different device name (/dev/snd/umpC*D*) and
it reads/writes UMP packet data in 32bit CPU-native endianness.  For
the old MIDI 1.0 applications, the legacy rawmidi interface is
provided, too.

As default, USB-audio driver will take the alternate setting for MIDI
2.0 interface, and the compatibility with MIDI 1.0 is provided via the
rawmidi common layer.  However, user may let the driver falling back
to the old MIDI 1.0 interface by a module option, too.

A UMP-capable rawmidi device can create the corresponding ALSA
sequencer client(s) to support the UMP Endpoint and UMP Group
connections.  As a nature of ALSA sequencer, arbitrary connections
between clients/ports are allowed, and the ALSA sequencer core
performs the automatic conversions for the connections between a new
UMP sequencer client and a legacy MIDI 1.0 sequencer client.  It
allows the existing application to use MIDI 2.0 devices without
changes.

The MIDI-CI, which is another major extension in MIDI 2.0, isn't
covered by this patch set.  It would be implemented rather in
user-space.

Roughly speaking, the first half of this patch set is for extending
the rawmidi and USB-audio, and the second half is for extending the
ALSA sequencer interface.

The patch set is based on 6.4-rc2 kernel, but all patches can be
cleanly applicable on 6.2 and 6.3 kernels, too (while 6.1 and older
kernels would need minor adjustment for uapi header changes).

The updates for alsa-lib and alsa-utils will follow shortly later.

The author thanks members of MIDI Association OS/API Working Group,
especially Andrew Mee, for great helps for the initial design and
debugging / testing the drivers.

Link: https://lore.kernel.org/r/20230523075358.9672-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-05-23 14:14:47 +02:00
Takashi Iwai
6b39e30dce ALSA: docs: Add MIDI 2.0 documentation
Add the brief document for describing the MIDI 2.0 implementation on
Linux kernel.  Both rawmidi and sequencer API extensions are
described.

Acked-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20230523075358.9672-38-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-05-23 12:11:40 +02:00