summaryrefslogtreecommitdiffstats
path: root/Documentation/sound
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'asoc-fix-v6.13-merge-window' of ↵Takashi Iwai7 days1-0/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * ASoC: doc: dapm: Add location information for dapm-graph toolanish kumar10 days1-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | ALSA: docs: fix dead hyperlink to Intel HD-Audio specHridesh MG14 days1-1/+1
| | | | | | | | | | | | | | | | | | 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>
* | Merge tag 'asoc-v6.13' of ↵Takashi Iwai2024-11-183-8/+41
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * ASoC: machine: update documentationanish kumar2024-11-111-0/+26
| | | | | | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: update clock api detailsanish kumar2024-10-311-0/+12
| | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: remove dpcm_xxx flagsKuninori Morimoto2024-10-231-8/+3
| | | | | | | | | | | | | | | | 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>
* | ALSA: docs: Add toctree index entry for co-processor acceleration APIBagas Sanjaya2024-10-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: 04177158cf98 ("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>
* | ALSA: docs: compress-accel: Format state machine flowchart as code blockBagas Sanjaya2024-10-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: 04177158cf98 ("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>
* | ALSA: compress_offload: introduce accel operation modeJaroslav Kysela2024-10-251-0/+134
|/ | | | | | | | | | | | | | | | | | | | | | | | 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
* Docs/sound: Add documentation for userspace-driven ALSA timersIvan Orlov2024-08-182-0/+127
| | | | | | | | | | | | | | | 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
* ALSA: docs: Drop snd_print*() stuffTakashi Iwai2024-08-082-31/+0
| | | | | | | | | 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
* ALSA: hda: Enhance pm_blacklist optionTakashi Iwai2024-07-301-0/+3
| | | | | | | | | | | | | | | | | 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>
* Documentation: sound: Fix trailing whitespacesAbhinav Saxena2024-05-161-8/+8
| | | | | | | | | | | 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>
* Merge tag 'asoc-v6.10' of ↵Takashi Iwai2024-05-132-54/+488
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * ASoC: doc: dapm: update event typesLuca Ceresoli2024-04-291-8/+11
| | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: update section "DAPM Widget Events"Luca Ceresoli2024-04-291-12/+18
| | | | | | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: improve section "Codec/DSP Widget Interconnections"Luca Ceresoli2024-04-291-11/+8
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: fix and improve section "Registering DAPM controls"Luca Ceresoli2024-04-291-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: describe how widgets and routes are registeredLuca Ceresoli2024-04-291-2/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: extend initial descrptionLuca Ceresoli2024-04-292-9/+396
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: replace "map" with "graph"Luca Ceresoli2024-04-291-3/+3
| | | | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: remove dash after colonLuca Ceresoli2024-04-291-7/+7
| | | | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: minor rewordingLuca Ceresoli2024-04-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: fix struct nameLuca Ceresoli2024-04-291-1/+1
| | | | | | | | | | | | | | | | | | 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>
| * ASoC: doc: dapm: fix typosLuca Ceresoli2024-04-291-3/+3
| | | | | | | | | | | | | | | | | | | | 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>
* | ALSA: docs: Correct the kernel object suffix of targetAndy Shevchenko2024-05-081-2/+2
|/ | | | | | | | | 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>
* ALSA: doc: Use DEFINE_SIMPLE_DEV_PM_OPS()Takashi Iwai2024-02-121-2/+4
| | | | | | | | | | | | | 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>
* ASoC: doc: Fix undefined SND_SOC_DAPM_NOPM argumentCristian Ciocaltea2023-11-211-1/+1
| | | | | | | | | | 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>
* Merge tag 'asoc-v6.7' of ↵Takashi Iwai2023-10-212-4/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ]
| * ASoC: doc: Update codec to codec examplesAmadeusz Sławiński2023-09-282-4/+7
| | | | | | | | | | | | | | | | | | | | | | 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: 7ddc7f91beb2 ("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>
* | ALSA: docs: Fix a typo of midi2_ump_probe option for snd-usb-audioTakashi Iwai2023-09-121-2/+2
|/ | | | | | | | A simple typo fix: midi2_probe => midi2_ump_probe. Fixes: febdfa0e9c8a ("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>
* ALSA: emu10k1: add separate documentation for E-MU cardsOswald Buddenhagen2023-08-262-0/+227
| | | | | | | | 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>
* ALSA: emu10k1: more documentation updatesOswald Buddenhagen2023-08-262-77/+77
| | | | | | | | | | | | - 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>
* ALSA: emu10k1: de-duplicate audigy-mixer.rst vs. sb-live-mixer.rstOswald Buddenhagen2023-08-261-66/+1
| | | | | | | | | | 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>
* ALSA: doc: Fix missing backquote in midi-2.0.rstTakashi Iwai2023-08-251-1/+1
| | | | | | | | | | | 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: e240cff9e6e9 ("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>
* ALSA: documentation: Add description for USB MIDI 2.0 gadget driverTakashi Iwai2023-08-241-0/+188
| | | | | | | | 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>
* ALSA: doc: Update description for the new PCM copy opsTakashi Iwai2023-08-181-39/+19
| | | | | | | | | | 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>
* ALSA: compress: allow setting codec params after next trackSrinivas Kandagatla2023-06-211-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge branch 'topic/midi20' into for-nextTakashi Iwai2023-06-131-6/+33
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * ALSA: docs: Update MIDI 2.0 documentation for UMP 1.1 enhancementTakashi Iwai2023-06-121-6/+33
| | | | | | | | | | | | | | | | 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>
* | docs: sound: add 'pcmtest' driver documentationIvan Orlov2023-06-072-0/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Merge branch 'topic/midi20' into for-nextTakashi Iwai2023-05-232-0/+352
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * ALSA: docs: Add MIDI 2.0 documentationTakashi Iwai2023-05-232-0/+352
| | | | | | | | | | | | | | | | | | | | 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>
* | ALSA: emu10k1: straighten out FX send initOswald Buddenhagen2023-05-171-18/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The mixer structures were filled in two places: on driver init, and when the devices are opened. The latter made the former pointless, so we remove the former. This implies that mixer dumps may now return all zeroes, which is OK, as restoring them is meaningless as well. Things were even weirder for the (generally unused) secondary sends: Some of the initialization loops were forgotten when support for Audigy was added, thus creating the technically illegal state of multiple sends being routed to the same FX accumulator (though it apparently doesn't matter when the amount is zero). The global multi-channel init used some rather bizarre values for the secondary sends, and the init on open actually forgot to re-initialize them. We now use a not really more useful, but simpler formula. The direct register init was also bogus. This doesn't really matter, as the value is overwritten when a voice comes into use, but still. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Link: https://lore.kernel.org/r/20230516093612.3536451-2-oswald.buddenhagen@gmx.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: emu10k1: enable bit-exact playback, part 2: voice attenuationOswald Buddenhagen2023-05-162-2/+2
|/ | | | | | | | | | | | | | | | | | | | The voice volume is a raw fractional multiplier that can't actually represent 1.0. To still enable real pass-through, we now set the volume to 0.5 (which results in no loss of precision, as the FX bus provides fractional values) and scale up the samples in DSP code. To maintain backwards compatibility with existing configuration files, we rescale the values in the mixer controls. The range is extended upwards from 0xffff to 0x1fffd, which actually introduces the possibility of specifying an amplification. There is still a minor incompatibility with user space, namely if someone loaded custom DSP code. They'll just get half the volume, so this doesn't seem like a big deal. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Link: https://lore.kernel.org/r/20230514170323.3408834-8-oswald.buddenhagen@gmx.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: docs: Fix code block indentation in ALSA driver exampleBagas Sanjaya2023-05-031-11/+11
| | | | | | | | | | | | | | | | | | | | | Sphinx reports htmldocs warnings: Documentation/sound/kernel-api/writing-an-alsa-driver.rst:3997: WARNING: Literal block expected; none found. Documentation/sound/kernel-api/writing-an-alsa-driver.rst:4004: WARNING: Literal block expected; none found. Documentation/sound/kernel-api/writing-an-alsa-driver.rst:4009: WARNING: Unexpected indentation. Documentation/sound/kernel-api/writing-an-alsa-driver.rst:4035: WARNING: Literal block expected; none found. These are due to indentation of example driver snippets which is outside the code block scope. Fix these by indenting code blocks in question to the scope. Fixes: 4d421eebe1465d ("ALSA: docs: writing-an-alsa-driver.rst: polishing") Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/linux-doc/202305021822.4U6XOvGf-lkp@intel.com/ Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com> Link: https://lore.kernel.org/r/20230503035416.62722-1-bagasdotme@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: docs: Extend module parameters descriptionIvan Orlov2023-05-031-0/+13
| | | | | | | | | | | | | | | | | Common ALSA module parameters look a little bit confusing because of the description lacking, and it took me a while to understand the purpose of their existence. To figure it out I asked the question about them to the "alsa-devel" mailing list, and Takashi Iwai answered me with the text I appended to the ALSA documentation in this patch. These common module parameters aren't used a lot nowadays, but as I understand they are important for providing compatibility with some existing user-space apps. So in my opinion it is a good idea to document why we need them. Signed-off-by: Ivan Orlov <ivan.orlov0322@gmail.com> Link: https://lore.kernel.org/r/20230501101634.476297-1-ivan.orlov0322@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'for-linus' into for-nextTakashi Iwai2023-04-271-1/+1
|\ | | | | | | | | | | | | Merge 6.3-devel branch back in order to apply the more Realtek HD-audio changes cleanly. Signed-off-by: Takashi Iwai <tiwai@suse.de>
| * ALSA: hda/sigmatel: add pin overrides for Intel DP45SG motherboardOswald Buddenhagen2023-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | Like the other boards from the D*45* series, this one sets up the outputs not quite correctly. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Cc: <stable@vger.kernel.org> Link: https://lore.kernel.org/r/20230405201220.2197826-1-oswald.buddenhagen@gmx.de Signed-off-by: Takashi Iwai <tiwai@suse.de>