linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] sound updates for 5.16-rc1
@ 2021-11-03 10:24 Takashi Iwai
  2021-11-03 15:04 ` pr-tracker-bot
  2021-11-17 16:18 ` Kirill A. Shutemov
  0 siblings, 2 replies; 14+ messages in thread
From: Takashi Iwai @ 2021-11-03 10:24 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Mark Brown, Liam Girdwood, Linux Kernel Mailing List

Linus,

please pull sound updates for v5.16-rc1 from:

  git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-5.16-rc1

The topmost commit is df0380b9539b04c1ae8854a984098da06d5f1e67

----------------------------------------------------------------

sound updates for 5.16-rc1

Lots of code development have been see in ASoC side as usual, while
the continued development on memalloc helper and USB-audio low-
latency support are found in the rest.  Note that a few changes in the
unusual places like arch/sh are included, which are a part of ASoC DAI
format cleanups.

ALSA core:
- Continued memallloc helper updates and cleanups, now supporting
  non-coherent and non-contiguous pages
- Fixes for races in mixer OSS layer

ASoC:
- A new version of the audio graph card which supports a wider range
  of systems
- Several conversions to YAML DT bindings
- Continuing cleanups to the SOF and Intel code
- Move of the Cirrus DSP framework into drivers/firmware to allow for
  future use by non-audio DSPs
- An overhaul of the cs42l42 driver, correcting many problems
- DAI format terminology conversions over many drivers for cleanups
- Support for AMD Vangogh and Yelow Cap, Cirrus CS35L41, Maxim
  MAX98520 and MAX98360A, Mediatek MT8195, Nuvoton NAU8821, nVidia
  Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS,
  RT5682S, and RT9120 and Rockchip RV1126 and RK3568

USB-audio:
- Continued improvements on low-latency playback
- Quirks for Pioneer devices, Line6 HX-Stomp XL, Audient iD14

HD-audio:
- Reduce excessive udelay() calls on Intel platforms; this should
  reduce the CPU load with PulseAudio
- Quirks for HP and Clevo laptops

FireWire:
- Support for meter information on MOTU

----------------------------------------------------------------

Ajit Kumar Pandey (10):
      ASoC: amd: Kconfig: Select fch clock support with machine driver
      ASoC: amd: Add common framework to support I2S on ACP SOC
      ASoC: amd: acp: Add I2S support on Renoir platform
      ASoC: amd: acp: Add callback for machine driver on ACP
      ASoC: amd: acp: Add generic machine driver support for ACP cards
      ASoC: amd: acp: Add legacy sound card support for Chrome audio
      ASoC: amd: acp: Add SOF audio support on Chrome board
      ASoC: amd: acp: Add support for Maxim amplifier codec
      ASoC: amd: acp: Add support for RT5682-VS codec
      ASoC: amd: acp: Add acp_machine struct for renoir platform.

Alejandro Tafalla (2):
      ASoC: max98927: Handle reset gpio when probing i2c
      ASoC: max98927: Add reset-gpios optional property

Alexander Stein (1):
      ASoC: meson: t9015: Add missing AVDD-supply property

Alexander Tsoy (1):
      ALSA: usb-audio: Add registration quirk for JBL Quantum 400

Amadeusz Sławiński (5):
      ASoC: core: Remove invalid snd_soc_component_set_jack call
      ASoC: topology: Check for dapm widget completeness
      ASoC: topology: Use correct device for prints
      ASoC: topology: Change topology device to card device
      ASoC: Stop dummy from overriding hwparams

Andy Shevchenko (12):
      ASoC: Intel: bytcht_es8316: Get platform data via dev_get_platdata()
      ASoC: Intel: bytcht_es8316: Use temporary variable for struct device
      ASoC: Intel: bytcht_es8316: Switch to use gpiod_get_optional()
      ASoC: Intel: bytcht_es8316: Utilize dev_err_probe() to avoid log saturation
      ASoC: Intel: bytcr_rt5640: Get platform data via dev_get_platdata()
      ASoC: Intel: bytcr_rt5640: Use temporary variable for struct device
      ASoC: Intel: bytcr_rt5640: use devm_clk_get_optional() for mclk
      ASoC: Intel: bytcr_rt5640: Utilize dev_err_probe() to avoid log saturation
      ASoC: Intel: bytcr_rt5651: Get platform data via dev_get_platdata()
      ASoC: Intel: bytcr_rt5651: Use temporary variable for struct device
      ASoC: Intel: bytcr_rt5651: use devm_clk_get_optional() for mclk
      ASoC: Intel: bytcr_rt5651: Utilize dev_err_probe() to avoid log saturation

AngeloGioacchino Del Regno (1):
      ASoC: rt5682-i2c: Use devm_clk_get_optional for optional clock

Arnd Bergmann (3):
      ASoC: samsung: add missing "fallthrough;"
      ASoC: amd: acp: fix Kconfig dependencies
      ASoC: amd: acp: select CONFIG_SND_SOC_ACPI

Bard Liao (1):
      ASoC: SOF: dai-intel: add SOF_DAI_INTEL_SSP_CLKCTRL_MCLK/BCLK_ES bits

Bixuan Cui (1):
      ASoC: mediatek: mt8195: Add missing of_node_put()

Brent Lu (9):
      ASoC: Intel: sof_rt5682: support ALC5682I-VS codec
      ASoC: intel: sof_rt5682: support jsl_rt5682s_rt1015p board
      ASoC: intel: sof_rt5682: support jsl_rt5682s_rt1015 board
      ASoC: intel: sof_rt5682: support jsl_rt5682s_mx98360a board
      ASoC: intel: sof_rt5682: update platform device name for Maxim amplifier
      ASoC: Intel: glk_rt5682_max98357a: support ALC5682I-VS codec
      ASoC: soc-acpi: add comp_ids field for machine driver matching
      ASoC: Intel: sof_rt5682: detect codec variant in probe function
      ASoC: Intel: sof_rt5682: use comp_ids to enumerate rt5682s

Bud Liviu-Alexandru (1):
      ASoC: SOF: Make Intel IPC stream ops generic

Cai Huoqing (1):
      ASoC: mediatek: mt8195: Make use of the helper function devm_platform_ioremap_resource()

Cezary Rojewski (1):
      ASoC: topology: Add header payload_size verification

Charles Keepax (10):
      ASoC: cs35l41: Fix use of an uninitialised variable
      ASoC: cs35l41: Use regmap_read_poll_timeout to wait for OTP boot
      ASoC: cs35l41: Combine adjacent register writes
      ASoC: cs35l41: Don't overwrite returned error code
      ASoC: cs35l41: Fixup the error messages
      ASoC: cs35l41: Fix a bunch of trivial code formating/style issues
      misc: cs35l41: Remove unused pdn variable
      ASoC: wm_adsp: Move check for control existence
      ASoC: wm_adsp: Switch to using wm_coeff_read_ctrl for compressed buffers
      ASoC: wm_adsp: Move sys_config_size to wm_adsp

Chengfeng Ye (2):
      ALSA: gus: fix null pointer dereference on pointer block
      ALSA: usb-audio: fix null pointer dereference on pointer cs_desc

ChiYuan Huang (4):
      ASoC: dt-bindings: rt9120: Add initial bindings
      ASoC: rt9120: Add rt9210 audio amplifier support
      ASoC: dt-bindings: rt9120: Add initial bindings
      ASoC: rt9120: Add rt9210 audio amplifier support

Christian Hewitt (1):
      ASoC: meson: implement driver_name for snd_soc_card in meson-card-utils

Christophe JAILLET (1):
      ASoC: rsnd: Fix an error handling path in 'rsnd_node_count()'

Colin Ian King (7):
      ASoC: mediatek: mt8195: Fix unused initialization of pointer etdm_data
      ASoC: mediatek: mt8195: make array adda_dai_list static const
      ASoC: qdsp6: q6afe-dai: Fix spelling mistake "Fronend" -> "Frontend"
      ASoC: codecs: Fix spelling mistake "Unsupport" -> "Unsupported"
      ASoC: meson: aiu: Fix spelling mistake "Unsupport" -> "Unsupported"
      ASoC: rockchip: i2s-tdm: Remove call to rockchip_i2s_ch_to_io
      ASoC: rockchip: i2s-tdm: Fix error handling on i2s_tdm_prepare_enable_mclk failure

Daniel Baluta (4):
      ASoC: SOF: OF: Add fw_path and tplg_path parameters
      ASoC: SOF: Introduce snd_sof_mailbox_read / snd_sof_mailbox_write callbacks
      ASoC: SOF: imx: Use newly introduced generic IPC stream ops
      ASoC: SOF: Introduce fragment elapsed notification API

David Lin (2):
      ASoC: nau8825: add set_jack coponment support
      ASoC: nau8825: add clock management for power saving

David Rhodes (3):
      ASoC: cs35l41: CS35L41 Boosted Smart Amplifier
      ASoC: cs35l41: Add bindings for CS35L41
      ASoC: cs35l41: Binding fixes

Derek Fang (11):
      ASoC: rt5682s: Add driver for ALC5682I-VS codec
      ASoC: dt-bindings: rt5682s: add bindings for rt5682s
      ASoC: rt5682s: Remove the volatile SW reset register from reg_default
      ASoC: rt5682s: Use dev_dbg instead of pr_debug
      ASoC: rt5682s: Revise the macro RT5682S_PLLB_SRC_MASK
      ASoC: dt-bindings: rt5682s: fix the device-tree schema errors
      ASoC: rt5682s: Enable ASRC auto-disable to fix pop during jack plug-in while playback
      ASoC: rt5682s: Fix HP noise caused by SAR mode switch when the system resumes
      ASoC: rt5682s: Fix hp pop produced immediately after resuming
      ASoC: rt5682: fix a little pop while playback
      ASoC: rt5682s: Downsizing the DAC volume scale

Dmitry Osipenko (2):
      ASoC: tegra: Restore AC97 support
      ASoC: tegra: Set default card name for Trimslice

Geert Uytterhoeven (7):
      ASoC: dt-bindings: wlf,wm8978: Fix I2C address in example
      ASoC: dt-bindings: rockchip: i2s-tdm: Fix rockchip,i2s-[rt]x-route
      ASoC: wm8962: Convert to devm_clk_get_optional()
      ASoC: dt-bindings: wlf,wm8962: Convert to json-schema
      ASoC: amd: acp: Wrap AMD Audio ACP components in SND_SOC_AMD_ACP_COMMON
      ASoC: amd: acp: SND_SOC_AMD_{LEGACY_MACH,SOF_MACH} should depend on X86 && PCI && I2C
      ASoC: amd: acp: SND_SOC_AMD_ACP_COMMON should depend on X86 && PCI

George Song (2):
      ASoC: dt-bindings: max98520: add initial bindings
      ASoC: max98520: add max98520 audio amplifier driver

Geraldo Nascimento (2):
      ALSA: usb-audio: fix comment reference in __uac_clock_find_source
      ALSA: usb-audio: disable implicit feedback sync for Behringer UFX1204 and UFX1604

Guennadi Liakhovetski (1):
      ASoC: SOF: add error handling to snd_sof_ipc_msg_data()

Guenter Roeck (1):
      spi: tegra20-slink: Declare runtime suspend and resume functions conditionally

Guo Zhengkui (1):
      ASoC: wm_adsp: remove a repeated including

Gustavo A. R. Silva (1):
      ALSA: virtio: Replace zero-length array with flexible-array member

Hans de Goede (6):
      ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ
      ASoC: rt5651: Use IRQF_NO_AUTOEN when requesting the IRQ
      ASoC: nau8824: Fix NAU8824_JACK_LOGIC define
      ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect
      ASoC: nau8824: Add a nau8824_components() helper
      ASoC: Intel: cht_bsw_nau8824: Set card.components string

Jack Yu (2):
      ASoC: rt1011: add i2s reference control for rt1011
      ASoC: rt5682: move clk related code to rt5682_i2c_probe

Jason Ormes (1):
      ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk

Jerome Brunet (2):
      ASoC: meson: axg-card: make links nonatomic
      ASoC: meson: axg-tdm-interface: manage formatters in trigger

Jiapeng Chong (1):
      ASoC: rt5682s: make rt5682s_aif2_dai_ops and rt5682s_soc_component_dev

Johan Hovold (3):
      ALSA: 6fire: fix control and bulk message timeouts
      ALSA: line6: fix control and interrupt message timeouts
      ALSA: ua101: fix division by zero at probe

John Keeping (1):
      ASoC: doc: update codec example code

Johnathon Clark (1):
      ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14

Julian Braha (4):
      ASoC: fix unmet dependency on GPIOLIB
      ASoC: fix unmet dependency on GPIOLIB for SND_SOC_MAX98357A
      ASoC: fix unmet dependencies on GPIOLIB for SND_SOC_DMIC
      ASoC: fix unmet dependencies on GPIOLIB for SND_SOC_RT1015P

Krzysztof Kozlowski (1):
      ASoC: dt-bindings: rt5682s: correct several errors

Kunihiko Hayashi (1):
      ASoC: dt-bindings: uniphier: Add description of each port number

Kuninori Morimoto (21):
      ASoC: test-component: add Test Component YAML bindings
      ASoC: test-component: add Test Component for Sound debug/test
      ASoC: simple-card-utils: add asoc_graph_is_ports0()
      ASoC: simple-card-utils: add codec2codec support
      ASoC: add Audio Graph Card2 driver
      ASoC: audio-graph-card2: add Multi CPU/Codec support
      ASoC: audio-graph-card2: add DPCM support
      ASoC: audio-graph-card2: add Codec2Codec support
      ASoC: add Audio Graph Card2 Yaml Document
      ASoC: add Audio Graph Card2 Custom Sample
      ASoC: audio-graph-card2-custom-sample.dtsi: add Sample DT for Normal (Single)
      ASoC: audio-graph-card2-custom-sample.dtsi: add Sample DT for Normal (Nulti)
      ASoC: audio-graph-card2-custom-sample.dtsi: add DPCM sample (Single)
      ASoC: audio-graph-card2-custom-sample.dtsi: add DPCM sample (Multi)
      ASoC: audio-graph-card2-custom-sample.dtsi: add Codec2Codec sample (Single)
      ASoC: audio-graph-card2-custom-sample.dtsi: add Codec2Codec sample (Multi)
      ASoC: soc-pcm: tidyup soc_pcm_hw_clean() - step1
      ASoC: soc-pcm: tidyup soc_pcm_hw_clean() - step2
      ASoC: soc-component: add snd_soc_component_is_codec()
      ASoC: soc-core: tidyup empty function
      ASoC: soc-core: accept zero format at snd_soc_runtime_set_dai_fmt()

Len Baker (1):
      ALSA: usx2y: Prefer struct_size over open coded arithmetic

Malik_Hsu (1):
      ASoC: Intel: sof_rt5682: Add support for max98360a speaker amp

Marc Herbert (1):
      ASoC: SOF: prefix some terse and cryptic dev_dbg() with __func__

Mark Brown (46):
      ASoC: atmel: Convert to new style DAI format definitions
      ASoC: au1x: Convert to modern terminology for DAI clocking
      ASoC: 88pm860x: Update to modern clocking terminology
      ASoC: ab8500: Update to modern clocking terminology
      ASoC: Drop mistakenly applied SPI patch
      ASoC: cros_ec_codec: Use modern ASoC DAI format terminology
      ASoC: eureka-tlv320: Update to modern clocking terminology
      ASoC: fsl-asoc-card: Update to modern clocking terminology
      ASoC: fsl-audmix: Update to modern clocking terminology
      ASoC: fsl-esai: Update to modern clocking terminology
      ASoC: fsl-mqs: Update to modern clocking terminology
      ASoC: fsl_sai: Update to modern clocking terminology
      ASoC: fsl_ssi: Update to modern clocking terminology
      ASoC: imx-audmix: Update to modern clocking terminology
      ASoC: imx-card: Update to modern clocking terminology
      ASoC: imx-es8328: Update to modern clocking terminology
      ASoC: imx-hdmi: Update to modern clocking terminology
      ASoC: imx-rpmsg: Update to modern clocking terminology
      ASoC: imx-sgtl5000: Update to modern clocking terminology
      ASoC: mpc8610_hpcd: Update to modern clocking terminology
      ASoC: pl1022_ds: Update to modern clocking terminology
      ASoC: pl1022_rdk: Update to modern clocking terminology
      ASoC: zl38060: Update to modern clocking terminology
      ASoC: ak4118: Update to modern clocking terminology
      ASoC: ak4104: Update to modern clocking terminology
      ASoC: alc5632: Use modern ASoC DAI format terminology
      ASoC: ak4642: Use modern ASoC DAI format terminology
      ASoC: ep93xx: Convert to modern clocking terminology
      ASoC: ad1836: Update to modern clocking terminology
      ASoC: adau1372: Update to modern clocking terminology
      ASoC: adau1373: Update to modern clocking terminology
      ASoC: adau1701: Update to modern clocking terminology
      ASoC: adau17x1: Update to modern clocking terminology
      ASoC: adau1977: Update to modern clocking terminology
      ASoC: adav80x: Update to modern clocking terminology
      ASoC: ad193x: Update to modern clocking terminology
      ASoC: cpcap: Use modern ASoC DAI format terminology
      ASoC: bcm: Convert to modern clocking terminology
      ASoC: alc5623: Use modern ASoC DAI format terminology
      ASoC: ak4671: Use modern ASoC DAI format terminology
      ASoC: dwc-i2s: Update to modern clocking terminology
      ASoC: ak5558: Use modern ASoC DAI format terminology
      ASoC: ak4458: Use modern ASoC DAI format terminology
      sh: Use modern ASoC DAI format terminology
      ASoC: rt9120: Drop rt9210 audio amplifier support
      ASoC: topology: Fix stub for snd_soc_tplg_component_remove()

Masahiro Yamada (1):
      ASoC: ti: rename CONFIG_SND_SOC_DM365_VOICE_CODEC_MODULE

Masanari Iida (1):
      ASoC: q6afe: q6asm: Fix typos in qcom,q6afe.txt and qcom,q6asm.txt

Maxime Ripard (4):
      ASoC: dt-bindings: Add WM8978 Binding
      ASoC: dt-bindings: Convert Bluetooth SCO Link binding to a schema
      ASoC: dt-bindings: Convert SPDIF Transmitter binding to a schema
      ASoC: dt-bindings: Convert Simple Amplifier binding to a schema

Nathan Chancellor (1):
      ASoC: qdsp6: audioreach: Fix clang -Wimplicit-fallthrough

Nicolas Frattaroli (5):
      ASoC: rockchip: add support for i2s-tdm controller
      ASoC: dt-bindings: rockchip: add i2s-tdm bindings
      ASoC: rockchip: i2s-tdm: Strip out direct CRU use
      ASoC: dt-bindings: rockchip: i2s-tdm: Drop rockchip,cru property
      ASoC: rockchip: i2s-tdm: Fix refcount test

Pavel Skripkin (1):
      ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume

Peter Ujfalusi (56):
      ASoC: soc-topology: Move template info print soc_tplg_dapm_widget_create()
      ASoC: SOF: Handle control change notification from firmware
      ASoC: SOF: intel: Do no initialize resindex_dma_base
      ASoC: SOF: Drop resindex_dma_base, dma_engine, dma_size from sof_dev_desc
      ASoC: SOF: Intel: hda-dsp: Declare locally used functions as static
      ASoC: SOF: Intel: hda: Remove boot_firmware skl and iccmax_icl declarations
      ASoC: SOF: Intel: hda: Relocate inline definitions from hda.h to hda.c for sdw
      ASoC: SOF: loader: load_firmware callback is mandatory, treat it like that
      ASoC: SOF: Intel: bdw: Set the mailbox offset directly in bdw_probe
      ASoC: SOF: ipc: Remove snd_sof_dsp_mailbox_init()
      ASoC: SOF: imx: Do not initialize the snd_sof_dsp_ops.read64
      ASoC: SOF: loader: No need to export snd_sof_fw_parse_ext_data()
      ASoC: SOF: core: Do not use 'bar' as parameter for block_read/write
      ASoC: SOF: debug: Add generic API and ops for DSP regions
      ASoC: SOF: imx: Provide debugfs_add_region_item ops for core
      ASoC: SOF: Intel: Provide debugfs_add_region_item ops for core
      ASoC: SOF: loader: Use the generic ops for region debugfs handling
      ASoC: SOF: debug: No need to export the snd_sof_debugfs_io_item()
      ASoC: SOF: ipc: Add probe message logging to ipc_log_header()
      ASoC: SOF: pcm: Remove non existent CONFIG_SND_SOC_SOF_COMPRESS reference
      ASoC: SOF: probe: Merge and clean up the probe and compress files
      ASoC: SOF: Intel: Rename hda-compress.c to hda-probes.c
      ASoC: SOF: sof-probes: Correct the function names used for snd_soc_cdai_ops
      ASoC: SOF: core: Move probe work related code under a single if () branch
      ASoC: SOF: ipc: Clarify the parameter name for ipc_trace_message()
      ASoC: SOF: ipc: Print 0x prefix for errors in ipc_trace/stream_message()
      ASoC: SOF: ipc: Remove redundant error check from sof_ipc_tx_message_unlocked
      ASoC: SOF: Rename sof_arch_ops to dsp_arch_ops
      ASoC: soc-component: Convert the mark_module to void*
      ASoC: compress/component: Use module_get_when_open/put_when_close for cstream
      ASoC: SOF: Remove struct sof_ops_table and sof_get_ops() macro
      ASoC: Intel: boards: Update to modern clocking terminology
      ASoC: SOF: Intel: hda-stream: Print stream name on STREAM_SD_OFFSET timeout
      ASoC: SOF: ipc: Make the error prints consistent in tx_wait_done()
      ASoC: SOF: Change SND_SOC_SOF_TOPLEVEL from config to menuconfig
      ASoC: SOF: debug: Swap the dsp_dump and ipc_dump sequence for fw_exception
      ASoC: SOF: ipc and dsp dump: Add markers for better visibility
      ASoC: SOF: Print the dbg_dump and ipc_dump once to reduce kernel log noise
      ASoC: SOF: loader: Print the DSP dump if boot fails
      ASoC: SOF: intel: atom: No need to do a DSP dump in atom_run()
      ASoC: SOF: debug/ops: Move the IPC and DSP dump functions out from the header
      ASoC: SOF: debug: Add SOF_DBG_DUMP_OPTIONAL flag for DSP dumping
      ASoC: SOF: intel: hda-loader: Use snd_sof_dsp_dbg_dump() for DSP dump
      ASoC: SOF: Drop SOF_DBG_DUMP_FORCE_ERR_LEVEL and sof_dev_dbg_or_err
      ASoC: SOF: debug: Print out the fw_state along with the DSP dump
      ASoC: SOF: ipc: Re-enable dumps after successful IPC tx
      ASoC: SOF: ops: Force DSP panic dumps to be printed
      ASoC: SOF: Introduce macro to set the firmware state
      ASoC: SOF: intel: hda: Drop 'error' prefix from error dump functions
      ASoC: SOF: core: Clean up snd_sof_get_status() prints
      ASoC: SOF: loader: Drop SOF_DBG_DUMP_REGS flag when firmware start fails
      ASoC: SOF: Intel: hda-loader: Drop SOF_DBG_DUMP_REGS flag from dbg_dump calls
      ASoC: SOF: Intel: hda: Dump registers and stack when SOF_DBG_DUMP_REGS is set
      ASoC: SOF: pipelines: Harmonize all functions to use struct snd_sof_dev
      ASoC: rt1011: Fix 'I2S Reference' enum control caused error
      ASoC: rt1011: Fix 'I2S Reference' enum control

Pierre-Louis Bossart (32):
      ASoC: amd: acp: declare and add prefix to 'bt_uart_enable' symbol
      ASoC: SOF: core: allow module parameter to override dma trace Kconfig
      ALSA: hda: hdac_stream: fix potential locking issue in snd_hdac_stream_assign()
      ALSA: hda: hdac_ext_stream: fix potential locking issues
      ASoC: SOF: Intel: hda-dai: fix potential locking issue
      ASoC: SOF: imx: add header file for ops
      ASoC: Intel: soc-acpi: apl/glk/tgl: add entry for devices based on ES8336 codec
      ALSA: intel-dsp-config: add quirk for APL/GLK/TGL devices based on ES8336 codec
      ASoC: Intel: add machine driver for SOF+ES8336
      ASoC: Intel: soc-acpi: add missing quirk for TGL SDCA single amp
      ASoC: Intel: sof_sdw: add missing quirk for Dell SKU 0A45
      ASoC: SOF: dai: mirror group_id definition added in firmware
      ASoC: SOF: dai: include new flags for DAI_CONFIG
      ASoC: SOF: Intel: hda: add new flags for DAI_CONFIG
      ASoC: SOF: Intel: hda-dai: improve SSP DAI handling for dynamic pipelines
      ASoC: SOF: topology: show clks_control value in dynamic debug
      ASoC: SOF: topology: allow for dynamic pipelines override for debug
      ASoC: SOF: core: debug: force all processing on primary core
      ASoC: soc-pcm: restore mixer functionality
      ASoC: topology: handle endianness warning
      ASoC: rt5682s: use 'static' qualifier
      ASoC: nau8821: fix kernel-doc
      ASoC: nau8821: clarify out-of-bounds check
      ASoC: mediatek: remove unnecessary initialization
      ASoC: mediatek: mt8195: rename shadowed array
      ASoC: mediatek: mt8195: fix return value
      ASoC: rockchip: i2s_tdm: improve return value handling
      ASoC: Intel: soc-acpi: add entry for ESSX8336 on JSL
      ASoC: es8316: add support for ESSX8336 ACPI _HID
      ASoC: Intel: soc-acpi-byt: shrink tables using compatible IDs
      ASoC: Intel: soc-acpi-cht: shrink tables using compatible IDs
      ASoC: Intel: soc-acpi: use const for all uses of snd_soc_acpi_codecs

Rander Wang (2):
      ASoC: SOF: control: fix a typo in put operations for kcontrol
      ASoC: SOF: prepare code to allocate IPC messages in fw_ready

Randy Dunlap (1):
      ALSA: ISA: not for M68K

Ranjani Sridharan (16):
      ASoC: SOF: compress: move and export sof_probe_compr_ops
      ASoC: SOF: pm: fix a stale comment
      ASoC: topology: change the complete op in snd_soc_tplg_ops to return int
      ASoC: SOF: control: Add access field in struct snd_sof_control
      ASoC: SOF: topology: Add new token for dynamic pipeline
      ASoC: SOF: sof-audio: add helpers for widgets, kcontrols and dai config set up
      AsoC: dapm: export a couple of functions
      ASoC: SOF: Add new fields to snd_sof_route
      ASoC: SOF: restore kcontrols for widget during set up
      ASoC: SOF: Don't set up widgets during topology parsing
      ASoC: SOF: Introduce widget use_count
      ASoC: SOF: Intel: hda: make sure DAI widget is set up before IPC
      ASoC: SOF: Add support for dynamic pipelines
      ASoC: SOF: topology: Add kernel parameter for topology verification
      ASoC: SOF: topology: return error if sof_connect_dai_widget() fails
      ASoC: SOF: topology: do not power down primary core during topology removal

Richard Fitzgerald (18):
      ASoC: cs42l42: Don't reconfigure the PLL while it is running
      ASoC: cs42l42: Always configure both ASP TX channels
      ASoC: cs42l42: Correct some register default values
      ASoC: cs42l42: Don't set defaults for volatile registers
      ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER
      ASoC: cs42l42: Don't claim to support 192k
      ASoC: cs42l42: Use PLL for SCLK > 12.288MHz
      ASoC: cs42l42: Allow time for HP/ADC to power-up after enable
      ASoC: cs42l42: Set correct SRC MCLK
      ASoC: cs42l42: Mark OSC_SWITCH_STATUS register volatile
      ASoC: cs42l42: Fix WARN in remove() if running without an interrupt
      ASoC: cs42l42: Always enable TS_PLUG and TS_UNPLUG interrupts
      ASoC: cs42l42: Remove unused runtime_suspend/runtime_resume callbacks
      ASoC: cs42l42: Prevent NULL pointer deref in interrupt handler
      ASoC: cs42l42: Reset and power-down on remove() and failed probe()
      ASoC: cs42l42: free_irq() before powering-down on probe() fail
      ASoC: dt-bindings: cs42l42: Correct description of ts-inv
      ASoC: cs42l42: Correct configuring of switch inversion from ts-inv

Rikard Falkeborn (9):
      ASoC: fsl: Constify static snd_soc_ops
      ASoC: tegra: Constify static snd_soc_dai_ops structs
      ASoC: ti: Constify static snd_soc_ops
      ASoC: ux500: mop500: Constify static snd_soc_ops
      ASoC: tegra: Constify static snd_soc_ops
      ASoC: qcom: apq8096: Constify static snd_soc_ops
      ASoC: amd: acp-rt5645: Constify static snd_soc_ops
      ASoC: mediatek: Constify static snd_soc_ops
      ASoC: amd: vangogh: constify static struct snd_soc_dai_ops

Sameer Pujar (14):
      ASoC: Add json-schema documentation for sound-name-prefix
      ASoC: Use schema reference for sound-name-prefix
      ASoC: Remove name-prefix.txt
      ASoC: soc-pcm: Don't reconnect an already active BE
      ASoC: simple-card-utils: Increase maximum DAI links limit to 512
      ASoC: audio-graph: Fixup CPU endpoint hw_params in a BE<->BE link
      ASoC: dt-bindings: tegra: Few more Tegra210 AHUB modules
      ASoC: tegra: Add routes for few AHUB modules
      ASoC: tegra: Add Tegra210 based MVC driver
      ASoC: tegra: Add Tegra210 based SFC driver
      ASoC: tegra: Add Tegra210 based AMX driver
      ASoC: tegra: Add Tegra210 based ADX driver
      ASoC: tegra: Add Tegra210 based Mixer driver
      ASoC: Fix warning related to 'sound-name-prefix' binding

Sebastian Andrzej Siewior (1):
      ASoC: mediatek: mt8195: Remove unsued irqs_lock.

Seven Lee (1):
      ASoC: nau8821: new driver

Shengjiu Wang (3):
      ASoC: fsl_rpmsg: add soc specific data structure
      ASoC: fsl_spdif: Add support for i.MX8ULP
      ASoC: fsl_rpmsg: Add rpmsg audio support for i.MX8ULP

Simon Trimmer (14):
      ASoC: wm_adsp: Remove use of snd_ctl_elem_type_t
      ASoC: wm_adsp: Cancel ongoing work when removing controls
      ASoC: wm_adsp: Rename generic DSP support
      ASoC: wm_adsp: Introduce cs_dsp logging macros
      ASoC: wm_adsp: Separate some ASoC and generic functions
      ASoC: wm_adsp: Split DSP power operations into helper functions
      ASoC: wm_adsp: Separate generic cs_dsp_coeff_ctl handling
      ASoC: wm_adsp: Move check of dsp->running to better place
      ASoC: wm_adsp: Pass firmware names as parameters when starting DSP core
      ASoC: wm_adsp: move firmware loading to client
      ASoC: wm_adsp: Split out struct cs_dsp from struct wm_adsp
      ASoC: wm_adsp: Separate wm_adsp specifics in cs_dsp_client_ops
      firmware: cs_dsp: add driver to support firmware loading on Cirrus Logic DSPs
      ASoC: soc-component: Remove conditional definition of debugfs data members

Srinivas Kandagatla (25):
      soc: dt-bindings: qcom: apr: convert to yaml
      soc: dt-bindings: qcom: apr: deprecate qcom,apr-domain property
      soc: qcom: apr: make code more reuseable
      soc: dt-bindings: qcom: add gpr bindings
      soc: qcom: apr: Add GPR support
      ASoC: soc-component: improve error reporting for register access
      ASoC: qcom: sm8250: add support for TX and RX Macro dais
      ASoC: qcom: sm8250: Add Jack support
      ASoC: dt-bindings: move LPASS dai related bindings out of q6afe
      ASoC: dt-bindings: move LPASS clocks related bindings out of q6afe
      ASoC: dt-bindings: rename q6afe.h to q6dsp-lpass-ports.h
      ASoC: qdsp6: q6afe-dai: move lpass audio ports to common file
      ASoC: qdsp6: q6afe-clocks: move audio-clocks to common file
      ASoC: dt-bindings: q6dsp: add q6apm-lpass-dai compatible
      ASoC: dt-bindings: lpass-clocks: add q6prm clocks compatible
      ASoC: dt-bindings: add q6apm digital audio stream bindings
      ASoC: qdsp6: audioreach: add basic pkt alloc support
      ASoC: qdsp6: audioreach: add q6apm support
      ASoC: qdsp6: audioreach: add module configuration command helpers
      ASoC: qdsp6: audioreach: add Kconfig and Makefile
      ASoC: qdsp6: audioreach: add topology support
      ASoC: qdsp6: audioreach: add q6apm-dai support
      ASoC: qdsp6: audioreach: add q6apm lpass dai support
      ASoC: qdsp6: audioreach: add q6prm support
      ASoC: qdsp6: audioreach: add support for q6prm-clocks

Srinivasa Rao Mandadapu (7):
      ASoC: dt-bindings: lpass: add binding headers for digital codecs
      ASoC: dt-bindings: lpass: add binding headers for digital codecs
      ASoC: qcom: Add compatible names in va,wsa,rx,tx codec drivers for sc7280
      ASoC: qcom: dt-bindings: Add compatible names for lpass sc7280 digital codecs
      ASoC: codecs: tx-macro: Enable tx top soundwire mic clock
      ASoC: codecs: tx-macro: Update tx default values
      ASoC: codecs: Change bulk clock voting to optional voting in digital codecs

Stefan Binding (2):
      ASoC: cs42l42: Implement Manual Type detection as fallback
      ASoC: cs42l42: Use two thresholds and increased wait time for manual type detection

Stephan Gerhold (1):
      ASoC: qcom: common: Respect status = "disabled" on DAI link nodes

Sugar Zhang (9):
      ASoC: rockchip: Add support for rv1126 pdm
      ASoC: dt-bindings: rockchip: Add binding for rv1126 pdm
      ASoC: rockchip: pdm: Add support for rk3568 pdm
      ASoC: dt-bindings: rockchip: Add binding for rk3568 pdm
      ASoC: rockchip: pdm: Add support for path map
      ASoC: dt-bindings: rockchip: pdm: Document property 'rockchip,path-map'
      ASoC: dt-bindings: rockchip: Convert pdm bindings to yaml
      ASoC: dmaengine: Introduce module option prealloc_buffer_size_kbytes
      ASoC: rockchip: Use generic dmaengine code

Takashi Iwai (29):
      ALSA: hda: Reduce udelay() at SKL+ position reporting
      ALSA: hda: Use position buffer for SKL+ again
      ALSA: usb-audio: Restrict rates for the shared clocks
      ALSA: usb-audio: Fix possible race at sync of urb completions
      ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback
      ALSA: usb-audio: Disable low-latency playback for free-wheel mode
      ALSA: usb-audio: Disable low-latency mode for implicit feedback sync
      ALSA: usb-audio: Check available frames for the next packet size
      ALSA: usb-audio: Add spinlock to stop_urbs()
      ALSA: usb-audio: Improved lowlatency playback support
      ALSA: usb-audio: Avoid killing in-flight URBs during draining
      ALSA: usb-audio: Fix packet size calculation regression
      ALSA: pcm: Add more disconnection checks at file ops
      ALSA: usb-audio: Pass JOINT_DUPLEX info flag for implicit fb streams
      ALSA: usb-audio: Less restriction for low-latency playback mode
      ALSA: usb-audio: Downgrade error message in get_ctl_value_v2()
      ALSA: usb-audio: Drop superfluous error message after disconnection
      ALSA: usb-audio: Initialize every feature unit once at probe time
      ALSA: pcm: Unify snd_pcm_delay() and snd_pcm_hwsync()
      ALSA: memalloc: Support for non-contiguous page allocation
      ALSA: memalloc: Support for non-coherent page allocation
      ALSA: memalloc: Convert x86 SG-buffer handling with non-contiguous type
      ALSA: firewire: Fix C++ style comments in uapi header
      ALSA: uapi: Fix a C++ style comment in asound.h
      ALSA: memalloc: Drop superfluous snd_dma_buffer_sync() declaration
      ALSA: memalloc: Fix a typo in snd_dma_buffer_sync() description
      ALSA: mixer: oss: Fix racy access to slots
      ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED
      ALSA: usb-audio: Add quirk for Audient iD14

Takashi Sakamoto (16):
      ALSA: firewire-motu: add message parser to gather meter information in register DSP model
      ALSA: firewire-motu: add message parser for meter information in command DSP model
      ALSA: firewire-motu: add ioctl command to read cached hardware meter
      ALSA: firewire-motu: parse messages for mixer source parameters in register-DSP model
      ALSA: firewire-motu: parse messages for mixer output parameters in register DSP model
      ALSA: firewire-motu: parse messages for output parameters in register DSP model
      ALSA: firewire-motu: parse messages for line input parameters in register DSP model
      ALSA: firewire-motu: parse messages for input parameters in register DSP model
      ALSA: firewire-motu: add ioctl command to read cached parameters in register DSP model
      ALSA: firewire-motu: queue event for parameter change in register DSP model
      ALSA: firewire-motu: notify event for parameter change in register DSP model
      ALSA: firewire-motu: fix null pointer dereference when polling hwdep character device
      ALSA: firewire-motu: refine parser for meter information in register DSP models
      ALSA: firewire-motu: export meter information to userspace as float value
      ALSA: oxfw: fix functional regression for Mackie Onyx 1640i in v5.14 or later
      ALSA: firewire-motu: remove TODO for interaction with userspace about control message

Tim Crawford (1):
      ALSA: hda/realtek: Add quirk for Clevo PC70HS

Trevor Wu (7):
      ASoC: mt8195: remove unnecessary CONFIG_PM
      ASoC: mediatek: mt6359: Fix unexpected error in bind/unbind flow
      ASoC: mediatek: mt8195: add missing of_node_put in probe
      ASoC: mediatek: mt8195: move of_node_put to remove function
      ASoC: mediatek: mt8195: update audsys clock parent name
      ASoC: mediatek: mt8195: add machine driver with mt6359, rt1011 and rt5682
      ASoC: mediatek: mt8195: add mt8195-mt6359-rt1011-rt5682 bindings document

Tzung-Bi Shih (2):
      ASoC: dt-bindings: mediatek: mt8192: re-add audio afe document
      ASoC: dt-bindings: mediatek: rename reset controller headers in DT example

Uwe Kleine-König (5):
      ASoC: tlv320aic32x4: Make aic32x4_remove() return void
      ASoc: wm8731: Drop empty spi_driver remove callback
      ASoc: wm8900: Drop empty spi_driver remove callback
      ASoC: cs35l41: Make cs35l41_remove() return void
      ASoC: tlv320aic3x: Make aic3x_remove() return void

Vijendar Mukunda (16):
      ASoc: amd: create platform device for VG machine driver
      ASoC: amd: add vangogh machine driver
      ASoC: amd: enable vangogh platform machine driver build
      ASoC: amd: add Yellow Carp ACP6x IP register header
      ASoC: amd: add Yellow Carp ACP PCI driver
      ASoC: amd: add acp6x init/de-init functions
      ASoC: amd: add platform devices for acp6x pdm driver and dmic driver
      ASoC: amd: add acp6x pdm platform driver
      ASoC: amd: add acp6x irq handler
      ASoC: amd: add acp6x pdm driver dma ops
      ASoC: amd: add acp6x pci driver pm ops
      ASoC: amd: add acp6x pdm driver pm ops
      ASoC: amd: enable Yellow carp acp6x drivers build
      ASoC: amd: create platform device for acp6x machine driver
      ASoC: amd: add YC machine driver using dmic
      ASoC: amd: enable Yellow Carp platform machine driver build

Vincent Knecht (1):
      ASoC: codecs: tfa989x: Add support for tfa9897 RCV bit

Viorel Suman (2):
      ASoC: SOF: imx8m: add SAI1 info
      ASoC: fsl_spdif: implement bypass mode from in to out

Vitaly Rodionov (1):
      ASoC: cs42l42: Minor fix all errors reported by checkpatch.pl script

William Overton (1):
      ALSA: usb-audio: Add support for the Pioneer DJM 750MK2 Mixer/Soundcard

Wolfram Sang (1):
      ASoC: codecs: max98390: simplify getting the adapter of a client

Yang Yingliang (1):
      ASoC: amd: acp: Fix return value check in acp_machine_select()

Yassine Oudjana (1):
      ASoC: wcd9335: Use correct version to initialize Class H

gearhead (1):
      ASoC: pcm5102a: increase rate from 192k to 384k

---
 .../devicetree/bindings/soc/qcom/qcom,apr.txt      |  134 -
 .../devicetree/bindings/soc/qcom/qcom,apr.yaml     |  177 +
 .../devicetree/bindings/sound/amlogic,t9015.yaml   |    6 +
 .../bindings/sound/audio-graph-card2.yaml          |   57 +
 Documentation/devicetree/bindings/sound/bt-sco.txt |   13 -
 .../devicetree/bindings/sound/cirrus,cs35l41.yaml  |  157 +
 .../devicetree/bindings/sound/cs42l42.txt          |   13 +-
 .../devicetree/bindings/sound/linux,bt-sco.yaml    |   38 +
 .../devicetree/bindings/sound/linux,spdif-dit.yaml |   32 +
 .../devicetree/bindings/sound/max9892x.txt         |    3 +
 .../devicetree/bindings/sound/maxim,max98520.yaml  |   36 +
 .../devicetree/bindings/sound/mt8192-afe-pcm.yaml  |  100 +
 .../sound/mt8195-mt6359-rt1011-rt5682.yaml         |   47 +
 .../devicetree/bindings/sound/name-prefix.txt      |   24 -
 .../devicetree/bindings/sound/name-prefix.yaml     |   21 +
 .../devicetree/bindings/sound/nau8821.txt          |   55 +
 .../bindings/sound/nvidia,tegra186-dspk.yaml       |    9 +-
 .../bindings/sound/nvidia,tegra210-adx.yaml        |   76 +
 .../bindings/sound/nvidia,tegra210-ahub.yaml       |   20 +
 .../bindings/sound/nvidia,tegra210-amx.yaml        |   76 +
 .../bindings/sound/nvidia,tegra210-dmic.yaml       |    9 +-
 .../bindings/sound/nvidia,tegra210-i2s.yaml        |    9 +-
 .../bindings/sound/nvidia,tegra210-mixer.yaml      |   74 +
 .../bindings/sound/nvidia,tegra210-mvc.yaml        |   76 +
 .../bindings/sound/nvidia,tegra210-sfc.yaml        |   73 +
 .../devicetree/bindings/sound/nxp,tfa989x.yaml     |    9 +-
 .../bindings/sound/qcom,lpass-rx-macro.yaml        |    4 +-
 .../bindings/sound/qcom,lpass-tx-macro.yaml        |    4 +-
 .../bindings/sound/qcom,lpass-va-macro.yaml        |    4 +-
 .../bindings/sound/qcom,lpass-wsa-macro.yaml       |    4 +-
 .../devicetree/bindings/sound/qcom,q6afe.txt       |  181 -
 .../devicetree/bindings/sound/qcom,q6apm-dai.yaml  |   53 +
 .../devicetree/bindings/sound/qcom,q6asm.txt       |    2 +-
 .../bindings/sound/qcom,q6dsp-lpass-clocks.yaml    |   77 +
 .../bindings/sound/qcom,q6dsp-lpass-ports.yaml     |  205 ++
 .../devicetree/bindings/sound/realtek,rt5682s.yaml |  117 +
 .../devicetree/bindings/sound/richtek,rt9120.yaml  |   59 +
 .../bindings/sound/rockchip,i2s-tdm.yaml           |  182 +
 .../devicetree/bindings/sound/rockchip,pdm.txt     |   46 -
 .../devicetree/bindings/sound/rockchip,pdm.yaml    |  120 +
 Documentation/devicetree/bindings/sound/rt5659.txt |    2 +-
 .../devicetree/bindings/sound/simple-amplifier.txt |   17 -
 .../bindings/sound/simple-audio-amplifier.yaml     |   45 +
 .../bindings/sound/simple-audio-mux.yaml           |    9 +-
 .../bindings/sound/socionext,uniphier-aio.yaml     |   22 +-
 .../bindings/sound/socionext,uniphier-evea.yaml    |    6 +-
 .../bindings/sound/spdif-transmitter.txt           |   10 -
 .../devicetree/bindings/sound/test-component.yaml  |   33 +
 .../devicetree/bindings/sound/wlf,wm8962.yaml      |  118 +
 .../devicetree/bindings/sound/wlf,wm8978.yaml      |   58 +
 Documentation/devicetree/bindings/sound/wm8962.txt |   43 -
 Documentation/sound/alsa-configuration.rst         |    9 +
 Documentation/sound/soc/codec.rst                  |    8 +-
 MAINTAINERS                                        |   18 +
 arch/sh/boards/mach-ecovec24/setup.c               |    2 +-
 arch/sh/boards/mach-se/7724/setup.c                |    2 +-
 drivers/firmware/Kconfig                           |    1 +
 drivers/firmware/Makefile                          |    1 +
 drivers/firmware/cirrus/Kconfig                    |    5 +
 drivers/firmware/cirrus/Makefile                   |    3 +
 drivers/firmware/cirrus/cs_dsp.c                   | 3109 +++++++++++++++++
 drivers/soc/qcom/Kconfig                           |    2 +-
 drivers/soc/qcom/apr.c                             |  287 +-
 include/dt-bindings/soc/qcom,gpr.h                 |   19 +
 include/dt-bindings/sound/qcom,lpass.h             |   31 +
 include/dt-bindings/sound/qcom,q6afe.h             |  203 +-
 include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h |  208 ++
 include/linux/firmware/cirrus/cs_dsp.h             |  242 ++
 .../linux/firmware/cirrus}/wmfw.h                  |    8 +-
 include/linux/soc/qcom/apr.h                       |   70 +-
 include/sound/cs35l41.h                            |   34 +
 include/sound/graph_card.h                         |   21 +
 include/sound/hdaudio_ext.h                        |    2 +
 include/sound/memalloc.h                           |   58 +-
 include/sound/rt5682s.h                            |   48 +
 include/sound/simple_card_utils.h                  |    6 +-
 include/sound/soc-acpi.h                           |    3 +
 include/sound/soc-component.h                      |   21 +-
 include/sound/soc-dpcm.h                           |    1 +
 include/sound/soc-topology.h                       |    5 +-
 include/sound/sof.h                                |    5 -
 include/sound/sof/dai-intel.h                      |    4 +
 include/sound/sof/dai.h                            |   10 +-
 include/uapi/sound/asound.h                        |    2 +-
 include/uapi/sound/firewire.h                      |  150 +
 include/uapi/sound/snd_ar_tokens.h                 |  208 ++
 include/uapi/sound/sof/tokens.h                    |    1 +
 sound/core/Makefile                                |    3 +-
 sound/core/memalloc.c                              |  207 +-
 sound/core/memalloc_local.h                        |    1 +
 sound/core/oss/mixer_oss.c                         |   44 +-
 sound/core/pcm_compat.c                            |    4 +
 sound/core/pcm_lib.c                               |    5 +
 sound/core/pcm_local.h                             |    7 +
 sound/core/pcm_memory.c                            |   13 +-
 sound/core/pcm_native.c                            |   66 +-
 sound/core/sgbuf.c                                 |  201 --
 sound/firewire/motu/Makefile                       |    3 +-
 sound/firewire/motu/amdtp-motu.c                   |   11 +-
 .../motu/motu-command-dsp-message-parser.c         |  181 +
 sound/firewire/motu/motu-hwdep.c                   |  119 +-
 sound/firewire/motu/motu-protocol-v2.c             |   14 +-
 sound/firewire/motu/motu-protocol-v3.c             |   14 +-
 .../motu/motu-register-dsp-message-parser.c        |  420 +++
 sound/firewire/motu/motu-stream.c                  |   10 +
 sound/firewire/motu/motu.c                         |   10 +
 sound/firewire/motu/motu.h                         |   23 +
 sound/firewire/oxfw/oxfw-stream.c                  |    7 +-
 sound/firewire/oxfw/oxfw.c                         |    8 +
 sound/firewire/oxfw/oxfw.h                         |    5 +
 sound/hda/ext/hdac_ext_stream.c                    |   46 +-
 sound/hda/hdac_stream.c                            |    4 +-
 sound/hda/intel-dsp-config.c                       |   22 +-
 sound/isa/Kconfig                                  |    2 +-
 sound/isa/gus/gus_dma.c                            |    2 +
 sound/pci/Kconfig                                  |    1 +
 sound/pci/hda/hda_intel.c                          |   49 +-
 sound/pci/hda/patch_realtek.c                      |   19 +
 sound/soc/amd/Kconfig                              |   40 +-
 sound/soc/amd/Makefile                             |    2 +
 sound/soc/amd/acp-da7219-max98357a.c               |    6 +-
 sound/soc/amd/acp-pcm-dma.c                        |    6 +-
 sound/soc/amd/acp-rt5645.c                         |    2 +-
 sound/soc/amd/acp.h                                |    2 +
 sound/soc/amd/acp/Kconfig                          |   61 +
 sound/soc/amd/acp/Makefile                         |   26 +
 sound/soc/amd/acp/acp-i2s.c                        |  340 ++
 sound/soc/amd/acp/acp-legacy-mach.c                |  104 +
 sound/soc/amd/acp/acp-mach-common.c                |  600 ++++
 sound/soc/amd/acp/acp-mach.h                       |   57 +
 sound/soc/amd/acp/acp-platform.c                   |  315 ++
 sound/soc/amd/acp/acp-renoir.c                     |  163 +
 sound/soc/amd/acp/acp-sof-mach.c                   |  131 +
 sound/soc/amd/acp/amd.h                            |  145 +
 sound/soc/amd/acp/chip_offset_byte.h               |   76 +
 sound/soc/amd/vangogh/Makefile                     |    2 +
 sound/soc/amd/vangogh/acp5x-i2s.c                  |    2 +-
 sound/soc/amd/vangogh/acp5x-mach.c                 |  386 +++
 sound/soc/amd/vangogh/acp5x.h                      |    2 +-
 sound/soc/amd/vangogh/pci-acp5x.c                  |    3 +
 sound/soc/amd/yc/Makefile                          |    9 +
 sound/soc/amd/yc/acp6x-mach.c                      |  194 ++
 sound/soc/amd/yc/acp6x-pdm-dma.c                   |  448 +++
 sound/soc/amd/yc/acp6x.h                           |  107 +
 sound/soc/amd/yc/acp6x_chip_offset_byte.h          |  444 +++
 sound/soc/amd/yc/pci-acp6x.c                       |  338 ++
 sound/soc/atmel/atmel-i2s.c                        |    6 +-
 sound/soc/atmel/atmel_ssc_dai.c                    |   26 +-
 sound/soc/atmel/atmel_wm8904.c                     |    2 +-
 sound/soc/atmel/mchp-i2s-mcc.c                     |   10 +-
 sound/soc/atmel/mikroe-proto.c                     |    4 +-
 sound/soc/atmel/sam9g20_wm8731.c                   |    2 +-
 sound/soc/atmel/sam9x5_wm8731.c                    |    2 +-
 sound/soc/atmel/tse850-pcm5142.c                   |    2 +-
 sound/soc/au1x/db1200.c                            |    6 +-
 sound/soc/au1x/i2sc.c                              |    6 +-
 sound/soc/au1x/psc-i2s.c                           |   10 +-
 sound/soc/bcm/bcm2835-i2s.c                        |   56 +-
 sound/soc/bcm/cygnus-ssp.c                         |    6 +-
 sound/soc/cirrus/edb93xx.c                         |    2 +-
 sound/soc/cirrus/ep93xx-i2s.c                      |   10 +-
 sound/soc/cirrus/snappercl15.c                     |    2 +-
 sound/soc/codecs/88pm860x-codec.c                  |   18 +-
 sound/soc/codecs/Kconfig                           |   45 +
 sound/soc/codecs/Makefile                          |   12 +
 sound/soc/codecs/ab8500-codec.c                    |   20 +-
 sound/soc/codecs/ad1836.c                          |    6 +-
 sound/soc/codecs/ad193x.c                          |   10 +-
 sound/soc/codecs/adau1372.c                        |   14 +-
 sound/soc/codecs/adau1373.c                        |   14 +-
 sound/soc/codecs/adau1701.c                        |    6 +-
 sound/soc/codecs/adau17x1.c                        |    6 +-
 sound/soc/codecs/adau1977.c                        |   31 +-
 sound/soc/codecs/adav80x.c                         |    6 +-
 sound/soc/codecs/ak4104.c                          |    4 +-
 sound/soc/codecs/ak4118.c                          |   20 +-
 sound/soc/codecs/ak4458.c                          |   12 +-
 sound/soc/codecs/ak4642.c                          |    8 +-
 sound/soc/codecs/ak4671.c                          |    6 +-
 sound/soc/codecs/ak5558.c                          |   10 +-
 sound/soc/codecs/alc5623.c                         |    8 +-
 sound/soc/codecs/alc5632.c                         |    8 +-
 sound/soc/codecs/cpcap.c                           |   18 +-
 sound/soc/codecs/cros_ec_codec.c                   |    4 +-
 sound/soc/codecs/cs35l41-i2c.c                     |  115 +
 sound/soc/codecs/cs35l41-spi.c                     |  140 +
 sound/soc/codecs/cs35l41-tables.c                  |  594 ++++
 sound/soc/codecs/cs35l41.c                         | 1445 ++++++++
 sound/soc/codecs/cs35l41.h                         |  775 +++++
 sound/soc/codecs/cs42l42.c                         |  465 ++-
 sound/soc/codecs/cs42l42.h                         |   64 +-
 sound/soc/codecs/cs47l15.c                         |   26 +-
 sound/soc/codecs/cs47l24.c                         |   20 +-
 sound/soc/codecs/cs47l35.c                         |   26 +-
 sound/soc/codecs/cs47l85.c                         |   34 +-
 sound/soc/codecs/cs47l90.c                         |   36 +-
 sound/soc/codecs/cs47l92.c                         |   20 +-
 sound/soc/codecs/es8316.c                          |    8 +-
 sound/soc/codecs/lpass-rx-macro.c                  |    3 +-
 sound/soc/codecs/lpass-tx-macro.c                  |   25 +-
 sound/soc/codecs/lpass-va-macro.c                  |    3 +-
 sound/soc/codecs/lpass-wsa-macro.c                 |    1 +
 sound/soc/codecs/madera.c                          |   18 +-
 sound/soc/codecs/max98390.c                        |    2 +-
 sound/soc/codecs/max98520.c                        |  769 +++++
 sound/soc/codecs/max98520.h                        |  159 +
 sound/soc/codecs/max98927.c                        |   25 +
 sound/soc/codecs/max98927.h                        |    1 +
 sound/soc/codecs/mt6359.c                          |    2 +-
 sound/soc/codecs/nau8821.c                         | 1714 ++++++++++
 sound/soc/codecs/nau8821.h                         |  533 +++
 sound/soc/codecs/nau8824.c                         |   70 +
 sound/soc/codecs/nau8824.h                         |    3 +-
 sound/soc/codecs/nau8825.c                         |   48 +-
 sound/soc/codecs/pcm5102a.c                        |    2 +-
 sound/soc/codecs/rt1011.c                          |   10 +
 sound/soc/codecs/rt1015.c                          |    2 +-
 sound/soc/codecs/rt1016.c                          |    2 +-
 sound/soc/codecs/rt1019.c                          |    2 +-
 sound/soc/codecs/rt1305.c                          |    2 +-
 sound/soc/codecs/rt1308.c                          |    2 +-
 sound/soc/codecs/rt5514.c                          |    2 +-
 sound/soc/codecs/rt5616.c                          |    2 +-
 sound/soc/codecs/rt5640.c                          |    2 +-
 sound/soc/codecs/rt5645.c                          |    2 +-
 sound/soc/codecs/rt5651.c                          |    9 +-
 sound/soc/codecs/rt5659.c                          |    2 +-
 sound/soc/codecs/rt5660.c                          |    2 +-
 sound/soc/codecs/rt5663.c                          |    2 +-
 sound/soc/codecs/rt5665.c                          |    2 +-
 sound/soc/codecs/rt5668.c                          |    2 +-
 sound/soc/codecs/rt5670.c                          |    2 +-
 sound/soc/codecs/rt5677.c                          |    2 +-
 sound/soc/codecs/rt5682-i2c.c                      |   17 +
 sound/soc/codecs/rt5682.c                          |  132 +-
 sound/soc/codecs/rt5682.h                          |   23 +
 sound/soc/codecs/rt5682s.c                         | 3197 ++++++++++++++++++
 sound/soc/codecs/rt5682s.h                         | 1474 ++++++++
 sound/soc/codecs/rt9120.c                          |  495 +++
 sound/soc/codecs/tfa989x.c                         |   21 +
 sound/soc/codecs/tlv320aic32x4-i2c.c               |    4 +-
 sound/soc/codecs/tlv320aic32x4-spi.c               |    4 +-
 sound/soc/codecs/tlv320aic32x4.c                   |    4 +-
 sound/soc/codecs/tlv320aic32x4.h                   |    2 +-
 sound/soc/codecs/tlv320aic3x-i2c.c                 |    4 +-
 sound/soc/codecs/tlv320aic3x-spi.c                 |    4 +-
 sound/soc/codecs/tlv320aic3x.c                     |    3 +-
 sound/soc/codecs/tlv320aic3x.h                     |    2 +-
 sound/soc/codecs/wcd9335.c                         |    2 +-
 sound/soc/codecs/wm2200.c                          |   30 +-
 sound/soc/codecs/wm5102.c                          |   16 +-
 sound/soc/codecs/wm5110.c                          |   24 +-
 sound/soc/codecs/wm8731.c                          |    6 -
 sound/soc/codecs/wm8900.c                          |    6 -
 sound/soc/codecs/wm8962.c                          |   13 +-
 sound/soc/codecs/wm_adsp.c                         | 3303 ++----------------
 sound/soc/codecs/wm_adsp.h                         |  105 +-
 sound/soc/codecs/zl38060.c                         |    4 +-
 sound/soc/dwc/dwc-i2s.c                            |   12 +-
 sound/soc/fsl/eukrea-tlv320.c                      |    2 +-
 sound/soc/fsl/fsl-asoc-card.c                      |   54 +-
 sound/soc/fsl/fsl_audmix.c                         |    8 +-
 sound/soc/fsl/fsl_esai.c                           |   28 +-
 sound/soc/fsl/fsl_mqs.c                            |    4 +-
 sound/soc/fsl/fsl_rpmsg.c                          |   47 +-
 sound/soc/fsl/fsl_rpmsg.h                          |   12 +
 sound/soc/fsl/fsl_sai.c                            |   34 +-
 sound/soc/fsl/fsl_sai.h                            |    2 +-
 sound/soc/fsl/fsl_spdif.c                          |   85 +
 sound/soc/fsl/fsl_ssi.c                            |   38 +-
 sound/soc/fsl/imx-audmix.c                         |   12 +-
 sound/soc/fsl/imx-card.c                           |    6 +-
 sound/soc/fsl/imx-es8328.c                         |    2 +-
 sound/soc/fsl/imx-hdmi.c                           |    6 +-
 sound/soc/fsl/imx-rpmsg.c                          |    2 +-
 sound/soc/fsl/imx-sgtl5000.c                       |    2 +-
 sound/soc/fsl/mpc8610_hpcd.c                       |   16 +-
 sound/soc/fsl/p1022_ds.c                           |   16 +-
 sound/soc/fsl/p1022_rdk.c                          |    2 +-
 sound/soc/generic/Kconfig                          |   20 +
 sound/soc/generic/Makefile                         |    6 +
 sound/soc/generic/audio-graph-card.c               |    4 +-
 .../soc/generic/audio-graph-card2-custom-sample.c  |  183 +
 .../generic/audio-graph-card2-custom-sample.dtsi   |  227 ++
 sound/soc/generic/audio-graph-card2.c              | 1281 +++++++
 sound/soc/generic/simple-card-utils.c              |   50 +-
 sound/soc/generic/test-component.c                 |  659 ++++
 sound/soc/intel/boards/Kconfig                     |   18 +-
 sound/soc/intel/boards/Makefile                    |    2 +
 sound/soc/intel/boards/bdw-rt5650.c                |    2 +-
 sound/soc/intel/boards/bdw-rt5677.c                |    2 +-
 sound/soc/intel/boards/broadwell.c                 |    2 +-
 sound/soc/intel/boards/bxt_da7219_max98357a.c      |    4 +-
 sound/soc/intel/boards/bxt_rt298.c                 |    2 +-
 sound/soc/intel/boards/bytcht_cx2072x.c            |    4 +-
 sound/soc/intel/boards/bytcht_da7213.c             |    4 +-
 sound/soc/intel/boards/bytcht_es8316.c             |    4 +-
 sound/soc/intel/boards/bytcht_nocodec.c            |    4 +-
 sound/soc/intel/boards/bytcr_rt5640.c              |  120 +-
 sound/soc/intel/boards/bytcr_rt5651.c              |  122 +-
 sound/soc/intel/boards/bytcr_wm5102.c              |    4 +-
 sound/soc/intel/boards/cht_bsw_max98090_ti.c       |    4 +-
 sound/soc/intel/boards/cht_bsw_nau8824.c           |    4 +-
 sound/soc/intel/boards/cht_bsw_rt5645.c            |    6 +-
 sound/soc/intel/boards/cht_bsw_rt5672.c            |    2 +-
 sound/soc/intel/boards/glk_rt5682_max98357a.c      |   56 +-
 sound/soc/intel/boards/haswell.c                   |    2 +-
 sound/soc/intel/boards/kbl_da7219_max98357a.c      |    4 +-
 sound/soc/intel/boards/kbl_da7219_max98927.c       |    6 +-
 sound/soc/intel/boards/kbl_rt5660.c                |    2 +-
 sound/soc/intel/boards/kbl_rt5663_max98927.c       |    6 +-
 .../soc/intel/boards/kbl_rt5663_rt5514_max98927.c  |    4 +-
 sound/soc/intel/boards/skl_nau88l25_max98357a.c    |    4 +-
 sound/soc/intel/boards/skl_nau88l25_ssm4567.c      |    4 +-
 sound/soc/intel/boards/skl_rt286.c                 |    2 +-
 sound/soc/intel/boards/sof_es8336.c                |  569 ++++
 sound/soc/intel/boards/sof_rt5682.c                |   96 +-
 sound/soc/intel/boards/sof_sdw.c                   |   10 +
 sound/soc/intel/common/soc-acpi-intel-adl-match.c  |   24 +-
 sound/soc/intel/common/soc-acpi-intel-bxt-match.c  |    8 +-
 sound/soc/intel/common/soc-acpi-intel-byt-match.c  |   68 +-
 sound/soc/intel/common/soc-acpi-intel-cht-match.c  |   69 +-
 sound/soc/intel/common/soc-acpi-intel-cml-match.c  |    8 +-
 sound/soc/intel/common/soc-acpi-intel-glk-match.c  |   17 +-
 sound/soc/intel/common/soc-acpi-intel-jsl-match.c  |   27 +-
 sound/soc/intel/common/soc-acpi-intel-kbl-match.c  |   12 +-
 sound/soc/intel/common/soc-acpi-intel-skl-match.c  |    2 +-
 sound/soc/intel/common/soc-acpi-intel-tgl-match.c  |   60 +-
 sound/soc/intel/skylake/skl-topology.c             |    6 +-
 sound/soc/mediatek/Kconfig                         |   23 +-
 sound/soc/mediatek/common/mtk-afe-fe-dai.c         |    3 +-
 sound/soc/mediatek/mt2701/mt2701-cs42448.c         |    2 +-
 sound/soc/mediatek/mt2701/mt2701-wm8960.c          |    2 +-
 .../mt8183/mt8183-mt6358-ts3a227-max98357.c        |    2 +-
 sound/soc/mediatek/mt8195/Makefile                 |    1 +
 sound/soc/mediatek/mt8195/mt8195-afe-pcm.c         |   10 +-
 sound/soc/mediatek/mt8195/mt8195-audsys-clk.c      |  152 +-
 sound/soc/mediatek/mt8195/mt8195-dai-adda.c        |    8 +-
 sound/soc/mediatek/mt8195/mt8195-dai-etdm.c        |    4 +-
 .../mediatek/mt8195/mt8195-mt6359-rt1011-rt5682.c  | 1155 +++++++
 .../mediatek/mt8195/mt8195-mt6359-rt1019-rt5682.c  |   54 +-
 sound/soc/meson/aiu-encoder-spdif.c                |    2 +-
 sound/soc/meson/axg-card.c                         |    1 +
 sound/soc/meson/axg-tdm-interface.c                |   26 +-
 sound/soc/meson/meson-card-utils.c                 |    1 +
 sound/soc/meson/meson-codec-glue.c                 |    3 -
 sound/soc/qcom/Kconfig                             |   25 +-
 sound/soc/qcom/apq8096.c                           |    2 +-
 sound/soc/qcom/common.c                            |    4 +-
 sound/soc/qcom/qdsp6/Makefile                      |   11 +-
 sound/soc/qcom/qdsp6/audioreach.c                  | 1130 +++++++
 sound/soc/qcom/qdsp6/audioreach.h                  |  726 ++++
 sound/soc/qcom/qdsp6/q6afe-clocks.c                |  187 +-
 sound/soc/qcom/qdsp6/q6afe-dai.c                   |  689 +---
 sound/soc/qcom/qdsp6/q6apm-dai.c                   |  416 +++
 sound/soc/qcom/qdsp6/q6apm-lpass-dais.c            |  260 ++
 sound/soc/qcom/qdsp6/q6apm.c                       |  822 +++++
 sound/soc/qcom/qdsp6/q6apm.h                       |  152 +
 sound/soc/qcom/qdsp6/q6dsp-lpass-clocks.c          |  186 +
 sound/soc/qcom/qdsp6/q6dsp-lpass-clocks.h          |   30 +
 sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c           |  627 ++++
 sound/soc/qcom/qdsp6/q6dsp-lpass-ports.h           |   22 +
 sound/soc/qcom/qdsp6/q6prm-clocks.c                |   85 +
 sound/soc/qcom/qdsp6/q6prm.c                       |  202 ++
 sound/soc/qcom/qdsp6/q6prm.h                       |   78 +
 sound/soc/qcom/qdsp6/topology.c                    | 1113 ++++++
 sound/soc/qcom/sm8250.c                            |   79 +
 sound/soc/rockchip/Kconfig                         |   11 +
 sound/soc/rockchip/Makefile                        |    5 +-
 sound/soc/rockchip/rockchip_i2s.c                  |    3 +-
 sound/soc/rockchip/rockchip_i2s_tdm.c              | 1762 ++++++++++
 sound/soc/rockchip/rockchip_i2s_tdm.h              |  398 +++
 sound/soc/rockchip/rockchip_pcm.c                  |   44 -
 sound/soc/rockchip/rockchip_pcm.h                  |   11 -
 sound/soc/rockchip/rockchip_pdm.c                  |  112 +-
 sound/soc/rockchip/rockchip_pdm.h                  |    6 +
 sound/soc/samsung/s3c-i2s-v2.c                     |    2 +
 sound/soc/sh/rcar/core.c                           |    1 +
 sound/soc/soc-acpi.c                               |   24 +-
 sound/soc/soc-component.c                          |   87 +-
 sound/soc/soc-compress.c                           |   43 +-
 sound/soc/soc-core.c                               |   54 +-
 sound/soc/soc-dapm.c                               |    2 +
 sound/soc/soc-generic-dmaengine-pcm.c              |    6 +-
 sound/soc/soc-pcm.c                                |   27 +-
 sound/soc/soc-topology.c                           |   52 +-
 sound/soc/soc-utils.c                              |   13 +
 sound/soc/sof/Kconfig                              |    6 +-
 sound/soc/sof/Makefile                             |    6 +-
 sound/soc/sof/compress.c                           |  158 +-
 sound/soc/sof/compress.h                           |   32 -
 sound/soc/sof/control.c                            |  192 +-
 sound/soc/sof/core.c                               |   35 +-
 sound/soc/sof/debug.c                              |   87 +-
 sound/soc/sof/imx/Kconfig                          |    2 +
 sound/soc/sof/imx/imx-ops.h                        |   10 +
 sound/soc/sof/imx/imx8.c                           |   47 +-
 sound/soc/sof/imx/imx8m.c                          |   41 +-
 sound/soc/sof/intel/Makefile                       |    5 +-
 sound/soc/sof/intel/apl.c                          |    7 +-
 sound/soc/sof/intel/atom.c                         |    5 +-
 sound/soc/sof/intel/bdw.c                          |   19 +-
 sound/soc/sof/intel/byt.c                          |   30 +-
 sound/soc/sof/intel/cnl.c                          |    7 +-
 sound/soc/sof/intel/hda-dai.c                      |  269 +-
 sound/soc/sof/intel/hda-dsp.c                      |   61 +-
 sound/soc/sof/intel/hda-ipc.c                      |   15 +-
 sound/soc/sof/intel/hda-loader.c                   |   11 +-
 .../soc/sof/intel/{hda-compress.c => hda-probes.c} |    0
 sound/soc/sof/intel/hda-stream.c                   |   92 +-
 sound/soc/sof/intel/hda.c                          |  232 +-
 sound/soc/sof/intel/hda.h                          |   52 +-
 sound/soc/sof/intel/icl.c                          |    7 +-
 sound/soc/sof/intel/pci-apl.c                      |    2 -
 sound/soc/sof/intel/pci-cnl.c                      |    3 -
 sound/soc/sof/intel/pci-icl.c                      |    2 -
 sound/soc/sof/intel/pci-tgl.c                      |    5 -
 sound/soc/sof/intel/pci-tng.c                      |   16 +-
 sound/soc/sof/intel/tgl.c                          |    7 +-
 sound/soc/sof/ipc.c                                |  217 +-
 sound/soc/sof/loader.c                             |  161 +-
 sound/soc/sof/ops.c                                |    3 +
 sound/soc/sof/ops.h                                |   77 +-
 sound/soc/sof/pcm.c                                |   71 +-
 sound/soc/sof/pm.c                                 |   12 +-
 sound/soc/sof/probe.h                              |   85 -
 sound/soc/sof/sof-audio.c                          |  715 +++-
 sound/soc/sof/sof-audio.h                          |   52 +-
 sound/soc/sof/sof-of-dev.c                         |   24 +-
 sound/soc/sof/sof-priv.h                           |  154 +-
 sound/soc/sof/{probe.c => sof-probes.c}            |  280 +-
 sound/soc/sof/sof-probes.h                         |   38 +
 sound/soc/sof/{intel/intel-ipc.c => stream-ipc.c}  |   56 +-
 sound/soc/sof/topology.c                           |  417 +--
 sound/soc/sof/trace.c                              |    5 +-
 sound/soc/sof/utils.c                              |   28 +-
 sound/soc/sof/xtensa/core.c                        |    2 +-
 sound/soc/tegra/Kconfig                            |   48 +
 sound/soc/tegra/Makefile                           |   10 +
 sound/soc/tegra/tegra210_adx.c                     |  531 +++
 sound/soc/tegra/tegra210_adx.h                     |   72 +
 sound/soc/tegra/tegra210_ahub.c                    |  511 ++-
 sound/soc/tegra/tegra210_amx.c                     |  600 ++++
 sound/soc/tegra/tegra210_amx.h                     |   93 +
 sound/soc/tegra/tegra210_mixer.c                   |  674 ++++
 sound/soc/tegra/tegra210_mixer.h                   |  100 +
 sound/soc/tegra/tegra210_mvc.c                     |  645 ++++
 sound/soc/tegra/tegra210_mvc.h                     |  117 +
 sound/soc/tegra/tegra210_sfc.c                     | 3549 ++++++++++++++++++++
 sound/soc/tegra/tegra210_sfc.h                     |   78 +
 sound/soc/tegra/tegra_asoc_machine.c               |   62 +-
 sound/soc/tegra/tegra_asoc_machine.h               |    1 +
 sound/soc/ti/Kconfig                               |    2 +-
 sound/soc/ti/davinci-evm.c                         |    2 +-
 sound/soc/ti/omap-abe-twl6040.c                    |    2 +-
 sound/soc/ux500/mop500_ab8500.c                    |    2 +-
 sound/soc/ux500/mop500_ab8500.h                    |    2 +-
 sound/usb/6fire/comm.c                             |    2 +-
 sound/usb/6fire/firmware.c                         |    6 +-
 sound/usb/card.h                                   |   11 +-
 sound/usb/clock.c                                  |    8 +-
 sound/usb/endpoint.c                               |  230 +-
 sound/usb/endpoint.h                               |   13 +-
 sound/usb/format.c                                 |    1 +
 sound/usb/implicit.c                               |    2 -
 sound/usb/line6/driver.c                           |   14 +-
 sound/usb/line6/driver.h                           |    2 +-
 sound/usb/line6/podhd.c                            |    6 +-
 sound/usb/line6/toneport.c                         |    2 +-
 sound/usb/misc/ua101.c                             |    4 +-
 sound/usb/mixer.c                                  |   42 +-
 sound/usb/mixer_quirks.c                           |   34 +
 sound/usb/pcm.c                                    |  164 +-
 sound/usb/quirks-table.h                           |   58 +
 sound/usb/quirks.c                                 |    3 +
 sound/usb/usx2y/usbusx2yaudio.c                    |   11 +-
 sound/virtio/virtio_pcm_msg.c                      |    5 +-
 477 files changed, 48310 insertions(+), 8057 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,apr.txt
 create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/audio-graph-card2.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/bt-sco.txt
 create mode 100644 Documentation/devicetree/bindings/sound/cirrus,cs35l41.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/linux,bt-sco.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/linux,spdif-dit.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/maxim,max98520.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/mt8192-afe-pcm.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/mt8195-mt6359-rt1011-rt5682.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/name-prefix.txt
 create mode 100644 Documentation/devicetree/bindings/sound/name-prefix.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nau8821.txt
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-adx.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-amx.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-mixer.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-mvc.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/nvidia,tegra210-sfc.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6apm-dai.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-clocks.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6dsp-lpass-ports.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/realtek,rt5682s.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/richtek,rt9120.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/rockchip,i2s-tdm.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/rockchip,pdm.txt
 create mode 100644 Documentation/devicetree/bindings/sound/rockchip,pdm.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/simple-amplifier.txt
 create mode 100644 Documentation/devicetree/bindings/sound/simple-audio-amplifier.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/spdif-transmitter.txt
 create mode 100644 Documentation/devicetree/bindings/sound/test-component.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8962.yaml
 create mode 100644 Documentation/devicetree/bindings/sound/wlf,wm8978.yaml
 delete mode 100644 Documentation/devicetree/bindings/sound/wm8962.txt
 create mode 100644 drivers/firmware/cirrus/Kconfig
 create mode 100644 drivers/firmware/cirrus/Makefile
 create mode 100644 drivers/firmware/cirrus/cs_dsp.c
 create mode 100644 include/dt-bindings/soc/qcom,gpr.h
 create mode 100644 include/dt-bindings/sound/qcom,q6dsp-lpass-ports.h
 create mode 100644 include/linux/firmware/cirrus/cs_dsp.h
 rename {sound/soc/codecs => include/linux/firmware/cirrus}/wmfw.h (91%)
 create mode 100644 include/sound/cs35l41.h
 create mode 100644 include/sound/rt5682s.h
 create mode 100644 include/uapi/sound/snd_ar_tokens.h
 delete mode 100644 sound/core/sgbuf.c
 create mode 100644 sound/firewire/motu/motu-command-dsp-message-parser.c
 create mode 100644 sound/firewire/motu/motu-register-dsp-message-parser.c
 create mode 100644 sound/soc/amd/acp/Kconfig
 create mode 100644 sound/soc/amd/acp/Makefile
 create mode 100644 sound/soc/amd/acp/acp-i2s.c
 create mode 100644 sound/soc/amd/acp/acp-legacy-mach.c
 create mode 100644 sound/soc/amd/acp/acp-mach-common.c
 create mode 100644 sound/soc/amd/acp/acp-mach.h
 create mode 100644 sound/soc/amd/acp/acp-platform.c
 create mode 100644 sound/soc/amd/acp/acp-renoir.c
 create mode 100644 sound/soc/amd/acp/acp-sof-mach.c
 create mode 100644 sound/soc/amd/acp/amd.h
 create mode 100644 sound/soc/amd/acp/chip_offset_byte.h
 create mode 100644 sound/soc/amd/vangogh/acp5x-mach.c
 create mode 100644 sound/soc/amd/yc/Makefile
 create mode 100644 sound/soc/amd/yc/acp6x-mach.c
 create mode 100644 sound/soc/amd/yc/acp6x-pdm-dma.c
 create mode 100644 sound/soc/amd/yc/acp6x.h
 create mode 100644 sound/soc/amd/yc/acp6x_chip_offset_byte.h
 create mode 100644 sound/soc/amd/yc/pci-acp6x.c
 create mode 100644 sound/soc/codecs/cs35l41-i2c.c
 create mode 100644 sound/soc/codecs/cs35l41-spi.c
 create mode 100644 sound/soc/codecs/cs35l41-tables.c
 create mode 100644 sound/soc/codecs/cs35l41.c
 create mode 100644 sound/soc/codecs/cs35l41.h
 create mode 100644 sound/soc/codecs/max98520.c
 create mode 100644 sound/soc/codecs/max98520.h
 create mode 100644 sound/soc/codecs/nau8821.c
 create mode 100644 sound/soc/codecs/nau8821.h
 create mode 100644 sound/soc/codecs/rt5682s.c
 create mode 100644 sound/soc/codecs/rt5682s.h
 create mode 100644 sound/soc/codecs/rt9120.c
 create mode 100644 sound/soc/generic/audio-graph-card2-custom-sample.c
 create mode 100644 sound/soc/generic/audio-graph-card2-custom-sample.dtsi
 create mode 100644 sound/soc/generic/audio-graph-card2.c
 create mode 100644 sound/soc/generic/test-component.c
 create mode 100644 sound/soc/intel/boards/sof_es8336.c
 create mode 100644 sound/soc/mediatek/mt8195/mt8195-mt6359-rt1011-rt5682.c
 create mode 100644 sound/soc/qcom/qdsp6/audioreach.c
 create mode 100644 sound/soc/qcom/qdsp6/audioreach.h
 create mode 100644 sound/soc/qcom/qdsp6/q6apm-dai.c
 create mode 100644 sound/soc/qcom/qdsp6/q6apm-lpass-dais.c
 create mode 100644 sound/soc/qcom/qdsp6/q6apm.c
 create mode 100644 sound/soc/qcom/qdsp6/q6apm.h
 create mode 100644 sound/soc/qcom/qdsp6/q6dsp-lpass-clocks.c
 create mode 100644 sound/soc/qcom/qdsp6/q6dsp-lpass-clocks.h
 create mode 100644 sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c
 create mode 100644 sound/soc/qcom/qdsp6/q6dsp-lpass-ports.h
 create mode 100644 sound/soc/qcom/qdsp6/q6prm-clocks.c
 create mode 100644 sound/soc/qcom/qdsp6/q6prm.c
 create mode 100644 sound/soc/qcom/qdsp6/q6prm.h
 create mode 100644 sound/soc/qcom/qdsp6/topology.c
 create mode 100644 sound/soc/rockchip/rockchip_i2s_tdm.c
 create mode 100644 sound/soc/rockchip/rockchip_i2s_tdm.h
 delete mode 100644 sound/soc/rockchip/rockchip_pcm.c
 delete mode 100644 sound/soc/rockchip/rockchip_pcm.h
 delete mode 100644 sound/soc/sof/compress.h
 create mode 100644 sound/soc/sof/imx/imx-ops.h
 rename sound/soc/sof/intel/{hda-compress.c => hda-probes.c} (100%)
 delete mode 100644 sound/soc/sof/probe.h
 rename sound/soc/sof/{probe.c => sof-probes.c} (52%)
 create mode 100644 sound/soc/sof/sof-probes.h
 rename sound/soc/sof/{intel/intel-ipc.c => stream-ipc.c} (56%)
 create mode 100644 sound/soc/tegra/tegra210_adx.c
 create mode 100644 sound/soc/tegra/tegra210_adx.h
 create mode 100644 sound/soc/tegra/tegra210_amx.c
 create mode 100644 sound/soc/tegra/tegra210_amx.h
 create mode 100644 sound/soc/tegra/tegra210_mixer.c
 create mode 100644 sound/soc/tegra/tegra210_mixer.h
 create mode 100644 sound/soc/tegra/tegra210_mvc.c
 create mode 100644 sound/soc/tegra/tegra210_mvc.h
 create mode 100644 sound/soc/tegra/tegra210_sfc.c
 create mode 100644 sound/soc/tegra/tegra210_sfc.h


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-03 10:24 [GIT PULL] sound updates for 5.16-rc1 Takashi Iwai
@ 2021-11-03 15:04 ` pr-tracker-bot
  2021-11-17 16:18 ` Kirill A. Shutemov
  1 sibling, 0 replies; 14+ messages in thread
From: pr-tracker-bot @ 2021-11-03 15:04 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

The pull request you sent on Wed, 03 Nov 2021 11:24:10 +0100:

> git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-5.16-rc1

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/ff0700f03609b9f0defacd4ce96d9519d721e0a2

Thank you!

-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-03 10:24 [GIT PULL] sound updates for 5.16-rc1 Takashi Iwai
  2021-11-03 15:04 ` pr-tracker-bot
@ 2021-11-17 16:18 ` Kirill A. Shutemov
  2021-11-17 16:24   ` Takashi Iwai
  1 sibling, 1 reply; 14+ messages in thread
From: Kirill A. Shutemov @ 2021-11-17 16:18 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

On Wed, Nov 03, 2021 at 11:24:10AM +0100, Takashi Iwai wrote:
> Linus,
> 
> please pull sound updates for v5.16-rc1 from:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-5.16-rc1
> 
> The topmost commit is df0380b9539b04c1ae8854a984098da06d5f1e67
> 
> ----------------------------------------------------------------
> 
> sound updates for 5.16-rc1
> 
> Lots of code development have been see in ASoC side as usual, while
> the continued development on memalloc helper and USB-audio low-
> latency support are found in the rest.  Note that a few changes in the
> unusual places like arch/sh are included, which are a part of ASoC DAI
> format cleanups.
> 
> ALSA core:
> - Continued memallloc helper updates and cleanups, now supporting
>   non-coherent and non-contiguous pages
> - Fixes for races in mixer OSS layer
> 
> ASoC:
> - A new version of the audio graph card which supports a wider range
>   of systems
> - Several conversions to YAML DT bindings
> - Continuing cleanups to the SOF and Intel code
> - Move of the Cirrus DSP framework into drivers/firmware to allow for
>   future use by non-audio DSPs
> - An overhaul of the cs42l42 driver, correcting many problems
> - DAI format terminology conversions over many drivers for cleanups
> - Support for AMD Vangogh and Yelow Cap, Cirrus CS35L41, Maxim
>   MAX98520 and MAX98360A, Mediatek MT8195, Nuvoton NAU8821, nVidia
>   Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS,
>   RT5682S, and RT9120 and Rockchip RV1126 and RK3568
> 
> USB-audio:
> - Continued improvements on low-latency playback
> - Quirks for Pioneer devices, Line6 HX-Stomp XL, Audient iD14
> 
> HD-audio:
> - Reduce excessive udelay() calls on Intel platforms; this should
>   reduce the CPU load with PulseAudio
> - Quirks for HP and Clevo laptops
> 
> FireWire:
> - Support for meter information on MOTU
> 

...

> Takashi Iwai (29):
>       ALSA: hda: Reduce udelay() at SKL+ position reporting
>       ALSA: hda: Use position buffer for SKL+ again
>       ALSA: usb-audio: Restrict rates for the shared clocks
>       ALSA: usb-audio: Fix possible race at sync of urb completions
>       ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback
>       ALSA: usb-audio: Disable low-latency playback for free-wheel mode
>       ALSA: usb-audio: Disable low-latency mode for implicit feedback sync
>       ALSA: usb-audio: Check available frames for the next packet size
>       ALSA: usb-audio: Add spinlock to stop_urbs()
>       ALSA: usb-audio: Improved lowlatency playback support

This commit breaks audio playback for me. The sample plays for fraction of
a second than stops.

I use SMSL SA300. Let me know what ifo is needed to track it down.

Also I can test potential fixups if needed.

-- 
 Kirill A. Shutemov

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-17 16:18 ` Kirill A. Shutemov
@ 2021-11-17 16:24   ` Takashi Iwai
  2021-11-17 17:48     ` Kirill A. Shutemov
  0 siblings, 1 reply; 14+ messages in thread
From: Takashi Iwai @ 2021-11-17 16:24 UTC (permalink / raw)
  To: Kirill A. Shutemov
  Cc: Takashi Iwai, Linus Torvalds, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List

On Wed, 17 Nov 2021 17:18:55 +0100,
Kirill A. Shutemov wrote:
> 
> On Wed, Nov 03, 2021 at 11:24:10AM +0100, Takashi Iwai wrote:
> > Linus,
> > 
> > please pull sound updates for v5.16-rc1 from:
> > 
> >   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-5.16-rc1
> > 
> > The topmost commit is df0380b9539b04c1ae8854a984098da06d5f1e67
> > 
> > ----------------------------------------------------------------
> > 
> > sound updates for 5.16-rc1
> > 
> > Lots of code development have been see in ASoC side as usual, while
> > the continued development on memalloc helper and USB-audio low-
> > latency support are found in the rest.  Note that a few changes in the
> > unusual places like arch/sh are included, which are a part of ASoC DAI
> > format cleanups.
> > 
> > ALSA core:
> > - Continued memallloc helper updates and cleanups, now supporting
> >   non-coherent and non-contiguous pages
> > - Fixes for races in mixer OSS layer
> > 
> > ASoC:
> > - A new version of the audio graph card which supports a wider range
> >   of systems
> > - Several conversions to YAML DT bindings
> > - Continuing cleanups to the SOF and Intel code
> > - Move of the Cirrus DSP framework into drivers/firmware to allow for
> >   future use by non-audio DSPs
> > - An overhaul of the cs42l42 driver, correcting many problems
> > - DAI format terminology conversions over many drivers for cleanups
> > - Support for AMD Vangogh and Yelow Cap, Cirrus CS35L41, Maxim
> >   MAX98520 and MAX98360A, Mediatek MT8195, Nuvoton NAU8821, nVidia
> >   Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS,
> >   RT5682S, and RT9120 and Rockchip RV1126 and RK3568
> > 
> > USB-audio:
> > - Continued improvements on low-latency playback
> > - Quirks for Pioneer devices, Line6 HX-Stomp XL, Audient iD14
> > 
> > HD-audio:
> > - Reduce excessive udelay() calls on Intel platforms; this should
> >   reduce the CPU load with PulseAudio
> > - Quirks for HP and Clevo laptops
> > 
> > FireWire:
> > - Support for meter information on MOTU
> > 
> 
> ...
> 
> > Takashi Iwai (29):
> >       ALSA: hda: Reduce udelay() at SKL+ position reporting
> >       ALSA: hda: Use position buffer for SKL+ again
> >       ALSA: usb-audio: Restrict rates for the shared clocks
> >       ALSA: usb-audio: Fix possible race at sync of urb completions
> >       ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback
> >       ALSA: usb-audio: Disable low-latency playback for free-wheel mode
> >       ALSA: usb-audio: Disable low-latency mode for implicit feedback sync
> >       ALSA: usb-audio: Check available frames for the next packet size
> >       ALSA: usb-audio: Add spinlock to stop_urbs()
> >       ALSA: usb-audio: Improved lowlatency playback support
> 
> This commit breaks audio playback for me. The sample plays for fraction of
> a second than stops.
> 
> I use SMSL SA300. Let me know what ifo is needed to track it down.
> 
> Also I can test potential fixups if needed.

Could you give alsa-info.sh output with the device?  Run the script
with --no-upload option, and attach the output.
Also /proc/asound/card*/stream* file for that usb device, too,
please.

And, which environment are you testing, more exactly?  Which platform,
and with PulseAudio, pipewire, JACK, or direct ALSA device use?

For checking the behavior, we'd need to check hw_params in
/proc/asound/card*/pcm*/sub*/* for the corresponding device during
playback/capture operations.


Takashi

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-17 16:24   ` Takashi Iwai
@ 2021-11-17 17:48     ` Kirill A. Shutemov
  2021-11-17 18:02       ` Takashi Iwai
  0 siblings, 1 reply; 14+ messages in thread
From: Kirill A. Shutemov @ 2021-11-17 17:48 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 4144 bytes --]

On Wed, Nov 17, 2021 at 05:24:28PM +0100, Takashi Iwai wrote:
> On Wed, 17 Nov 2021 17:18:55 +0100,
> Kirill A. Shutemov wrote:
> > 
> > On Wed, Nov 03, 2021 at 11:24:10AM +0100, Takashi Iwai wrote:
> > > Linus,
> > > 
> > > please pull sound updates for v5.16-rc1 from:
> > > 
> > >   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-5.16-rc1
> > > 
> > > The topmost commit is df0380b9539b04c1ae8854a984098da06d5f1e67
> > > 
> > > ----------------------------------------------------------------
> > > 
> > > sound updates for 5.16-rc1
> > > 
> > > Lots of code development have been see in ASoC side as usual, while
> > > the continued development on memalloc helper and USB-audio low-
> > > latency support are found in the rest.  Note that a few changes in the
> > > unusual places like arch/sh are included, which are a part of ASoC DAI
> > > format cleanups.
> > > 
> > > ALSA core:
> > > - Continued memallloc helper updates and cleanups, now supporting
> > >   non-coherent and non-contiguous pages
> > > - Fixes for races in mixer OSS layer
> > > 
> > > ASoC:
> > > - A new version of the audio graph card which supports a wider range
> > >   of systems
> > > - Several conversions to YAML DT bindings
> > > - Continuing cleanups to the SOF and Intel code
> > > - Move of the Cirrus DSP framework into drivers/firmware to allow for
> > >   future use by non-audio DSPs
> > > - An overhaul of the cs42l42 driver, correcting many problems
> > > - DAI format terminology conversions over many drivers for cleanups
> > > - Support for AMD Vangogh and Yelow Cap, Cirrus CS35L41, Maxim
> > >   MAX98520 and MAX98360A, Mediatek MT8195, Nuvoton NAU8821, nVidia
> > >   Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS,
> > >   RT5682S, and RT9120 and Rockchip RV1126 and RK3568
> > > 
> > > USB-audio:
> > > - Continued improvements on low-latency playback
> > > - Quirks for Pioneer devices, Line6 HX-Stomp XL, Audient iD14
> > > 
> > > HD-audio:
> > > - Reduce excessive udelay() calls on Intel platforms; this should
> > >   reduce the CPU load with PulseAudio
> > > - Quirks for HP and Clevo laptops
> > > 
> > > FireWire:
> > > - Support for meter information on MOTU
> > > 
> > 
> > ...
> > 
> > > Takashi Iwai (29):
> > >       ALSA: hda: Reduce udelay() at SKL+ position reporting
> > >       ALSA: hda: Use position buffer for SKL+ again
> > >       ALSA: usb-audio: Restrict rates for the shared clocks
> > >       ALSA: usb-audio: Fix possible race at sync of urb completions
> > >       ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback
> > >       ALSA: usb-audio: Disable low-latency playback for free-wheel mode
> > >       ALSA: usb-audio: Disable low-latency mode for implicit feedback sync
> > >       ALSA: usb-audio: Check available frames for the next packet size
> > >       ALSA: usb-audio: Add spinlock to stop_urbs()
> > >       ALSA: usb-audio: Improved lowlatency playback support
> > 
> > This commit breaks audio playback for me. The sample plays for fraction of
> > a second than stops.
> > 
> > I use SMSL SA300. Let me know what ifo is needed to track it down.
> > 
> > Also I can test potential fixups if needed.
> 
> Could you give alsa-info.sh output with the device?  Run the script
> with --no-upload option, and attach the output.

Attached. I run it on kernel without the commit. I hope it is fine.

One note: I use monolitic kernel without CONFIG_MODULES. The script
complained about missing /proc/asound/modules and other modules related
stuff.

> Also /proc/asound/card*/stream* file for that usb device, too,
> please.

Attached.

> And, which environment are you testing, more exactly?  Which platform,
> and with PulseAudio, pipewire, JACK, or direct ALSA device use?

Nothing fancy. Direct ALSA. I tested with 'speaker-test -c2 -t wav' during
bisect.

> For checking the behavior, we'd need to check hw_params in
> /proc/asound/card*/pcm*/sub*/* for the corresponding device during
> playback/capture operations.

You need this to be collected when the problem triggers, right?
I will follow up with this.

-- 
 Kirill A. Shutemov

[-- Attachment #2: alsa-info.txt --]
[-- Type: text/plain, Size: 22017 bytes --]

upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.5.0
!!################################

!!Script ran on: Wed Nov 17 17:43:16 UTC 2021


!!Linux Distribution
!!------------------

Gentoo Base System release 2.7 NAME=Gentoo ID=gentoo PRETTY_NAME="Gentoo/Linux" HOME_URL="https://www.gentoo.org/" SUPPORT_URL="https://www.gentoo.org/support/" BUG_REPORT_URL="https://bugs.gentoo.org/"


!!DMI Information
!!---------------

Manufacturer:      Gigabyte Technology Co., Ltd.
Product Name:      X299 AORUS Gaming 3 Pro
Product Version:   Default string
Firmware Version:  F5d
System SKU:        Default string
Board Vendor:      Gigabyte Technology Co., Ltd.
Board Name:        X299 AORUS Gaming 3 Pro-CF


!!ACPI Device Status Information
!!---------------

/sys/bus/acpi/devices/ACPI0004:00/status 	 15
/sys/bus/acpi/devices/INT340E:00/status 	 15
/sys/bus/acpi/devices/LNXCPU:00/status 	 15
/sys/bus/acpi/devices/LNXCPU:01/status 	 15
/sys/bus/acpi/devices/LNXCPU:02/status 	 15
/sys/bus/acpi/devices/LNXCPU:03/status 	 15
/sys/bus/acpi/devices/LNXCPU:04/status 	 15
/sys/bus/acpi/devices/LNXCPU:05/status 	 15
/sys/bus/acpi/devices/LNXCPU:06/status 	 15
/sys/bus/acpi/devices/LNXCPU:07/status 	 15
/sys/bus/acpi/devices/LNXCPU:08/status 	 15
/sys/bus/acpi/devices/LNXCPU:09/status 	 15
/sys/bus/acpi/devices/LNXCPU:0a/status 	 15
/sys/bus/acpi/devices/LNXCPU:0b/status 	 15
/sys/bus/acpi/devices/LNXCPU:0c/status 	 15
/sys/bus/acpi/devices/LNXCPU:0d/status 	 15
/sys/bus/acpi/devices/LNXCPU:0e/status 	 15
/sys/bus/acpi/devices/LNXCPU:0f/status 	 15
/sys/bus/acpi/devices/LNXCPU:10/status 	 15
/sys/bus/acpi/devices/LNXCPU:11/status 	 15
/sys/bus/acpi/devices/LNXCPU:12/status 	 15
/sys/bus/acpi/devices/LNXCPU:13/status 	 15
/sys/bus/acpi/devices/LNXCPU:14/status 	 15
/sys/bus/acpi/devices/LNXCPU:15/status 	 15
/sys/bus/acpi/devices/LNXCPU:16/status 	 15
/sys/bus/acpi/devices/LNXCPU:17/status 	 15
/sys/bus/acpi/devices/LNXCPU:18/status 	 15
/sys/bus/acpi/devices/LNXCPU:19/status 	 15
/sys/bus/acpi/devices/LNXCPU:1a/status 	 15
/sys/bus/acpi/devices/LNXCPU:1b/status 	 15
/sys/bus/acpi/devices/LNXCPU:1c/status 	 15
/sys/bus/acpi/devices/LNXCPU:1d/status 	 15
/sys/bus/acpi/devices/LNXCPU:1e/status 	 15
/sys/bus/acpi/devices/LNXCPU:1f/status 	 15
/sys/bus/acpi/devices/MSFT0101:00/status 	 15
/sys/bus/acpi/devices/PNP0103:00/status 	 15
/sys/bus/acpi/devices/PNP0A08:01/status 	 15
/sys/bus/acpi/devices/PNP0A08:02/status 	 15
/sys/bus/acpi/devices/PNP0A08:03/status 	 15
/sys/bus/acpi/devices/PNP0C02:02/status 	 3
/sys/bus/acpi/devices/PNP0C02:04/status 	 3
/sys/bus/acpi/devices/PNP0C0C:00/status 	 15
/sys/bus/acpi/devices/PNP0C0E:00/status 	 11
/sys/bus/acpi/devices/PNP0C0F:00/status 	 9
/sys/bus/acpi/devices/PNP0C0F:01/status 	 9
/sys/bus/acpi/devices/PNP0C0F:02/status 	 9
/sys/bus/acpi/devices/PNP0C0F:03/status 	 9
/sys/bus/acpi/devices/PNP0C0F:04/status 	 9
/sys/bus/acpi/devices/PNP0C0F:05/status 	 9
/sys/bus/acpi/devices/PNP0C0F:06/status 	 9
/sys/bus/acpi/devices/PNP0C0F:07/status 	 9
/sys/bus/acpi/devices/PNP0C14:00/status 	 15
/sys/bus/acpi/devices/PNP0C14:03/status 	 11


!!Kernel Information
!!------------------

Kernel release:    5.15.0-rc1-00021-g0ef74366bc15
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         Intel(R) Core(TM) i9-7960X CPU @ 2.80GHz
SMP Enabled:       Yes


!!ALSA Version
!!------------

Driver version:     k5.15.0-rc1-00021-g0ef74366bc15
Library version:    1.2.4
Utilities version:  1.2.4


!!Loaded ALSA modules
!!-------------------



!!Sound Servers on this system
!!----------------------------

No sound servers found.


!!Soundcards recognised by ALSA
!!-----------------------------

 0 [Audio          ]: USB-Audio - TX-384Khz Hifi Type-C Audio
                      Generic TX-384Khz Hifi Type-C Audio at usb-0000:00:14.0-1, high speed


!!PCI Soundcards installed in the system
!!--------------------------------------

00:1f.3 Audio device [0403]: Intel Corporation 200 Series PCH HD Audio [8086:a2f0]
	Subsystem: Gigabyte Technology Co., Ltd 200 Series PCH HD Audio [1458:a182]
65:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd GP104 High Definition Audio Controller [1458:3730]


!!Loaded sound module options
!!---------------------------


!!Sysfs card info
!!---------------

!!Card: /sys/class/sound/card0
Driver: /sys/bus/usb/drivers/snd-usb-audio
Tree:
	/sys/class/sound/card0
	|-- audio
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- power
	|   |-- subsystem -> ../../../../../../../../../class/sound
	|   `-- uevent
	|-- controlC0
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- power
	|   |-- subsystem -> ../../../../../../../../../class/sound
	|   `-- uevent
	|-- device -> ../../../1-1:1.0
	|-- dsp
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- power
	|   |-- subsystem -> ../../../../../../../../../class/sound
	|   `-- uevent
	|-- id
	|-- mixer
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- power
	|   |-- subsystem -> ../../../../../../../../../class/sound
	|   `-- uevent
	|-- number
	|-- pcmC0D0p
	|   |-- dev
	|   |-- device -> ../../card0
	|   |-- pcm_class
	|   |-- power
	|   |-- subsystem -> ../../../../../../../../../class/sound
	|   `-- uevent
	|-- power
	|   |-- autosuspend_delay_ms
	|   |-- control
	|   |-- runtime_active_time
	|   |-- runtime_status
	|   `-- runtime_suspended_time
	|-- subsystem -> ../../../../../../../../class/sound
	`-- uevent


!!USB Descriptors
!!---------------
--startcollapse--

Bus 001 Device 002: ID 0bda:4c07 Realtek Semiconductor Corp. TX-384Khz Hifi Type-C Audio
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  idVendor           0x0bda Realtek Semiconductor Corp.
  idProduct          0x4c07 
  bcdDevice            0.01
  iManufacturer           3 Generic
  iProduct                1 TX-384Khz Hifi Type-C Audio
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x011d
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          4 TX-384Khz Hifi Type-C Audio
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass          1 Audio
      bFunctionSubClass       0 
      bFunctionProtocol      32 
      iFunction               5 TX-384Khz Hifi Type-C Audio
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol     32 
      iInterface              5 TX-384Khz Hifi Type-C Audio
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               2.00
        bCategory               4
        wTotalLength       0x0050
        bmControls           0x00
      AudioControl Interface Descriptor:
        bLength                 8
        bDescriptorType        36
        bDescriptorSubtype     10 (CLOCK_SOURCE)
        bClockID                4
        bmAttributes            7 Internal programmable clock (synchronized to SOF)
        bmControls           0x07
          Clock Frequency Control (read/write)
          Clock Validity Control (read-only)
        bAssocTerminal          0
        iClockSource            0 
      AudioControl Interface Descriptor:
        bLength                17
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID            10
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bCSourceID              4
        bNrChannels             2
        bmChannelConfig    0x00000003
          Front Left (FL)
          Front Right (FR)
        iChannelNames           0 
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID            16
        wTerminalType      0x0302 Headphones
        bAssocTerminal         10
        bSourceID              22
        bCSourceID              4
        bmControls         0x0000
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                18
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                22
        bSourceID              10
        bmaControls(0)     0x00000003
          Mute Control (read/write)
        bmaControls(1)     0x0000000c
          Volume Control (read/write)
        bmaControls(2)     0x0000000c
          Volume Control (read/write)
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      9 (EXTENSION_UNIT)
        bUnitID                25
        wExtensionCode     0x0bda
        bNrInPins               1
        baSourceID(0)          22
        bNrChannels             2
        bmChannelConfig    0x00000003
          Front Left (FL)
          Front Right (FR)
        iChannelNames           0 
        bmControls           0x00
        iExtension              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x87  EP 7 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               8
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 TX-384Khz Hifi Type-C Audio
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 TX-384Khz Hifi Type-C Audio
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          10
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             2
        bmChannelConfig    0x00000003
          Front Left (FL)
          Front Right (FR)
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            2
        bBitResolution         16
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x00f8  1x 248 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 TX-384Khz Hifi Type-C Audio
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          10
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             2
        bmChannelConfig    0x00000003
          Front Left (FL)
          Front Right (FR)
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            3
        bBitResolution         24
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x0174  1x 372 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol     32 
      iInterface              5 TX-384Khz Hifi Type-C Audio
      AudioStreaming Interface Descriptor:
        bLength                16
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink          10
        bmControls           0x00
        bFormatType             1
        bmFormats          0x00000001
          PCM
        bNrChannels             2
        bmChannelConfig    0x00000003
          Front Left (FL)
          Front Right (FR)
        iChannelNames           0 
      AudioStreaming Interface Descriptor:
        bLength                 6
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bSubslotSize            4
        bBitResolution         32
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x01f0  1x 496 bytes
        bInterval               1
        AudioStreaming Endpoint Descriptor:
          bLength                 8
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x00
          bmControls           0x00
          bLockDelayUnits         0 Undefined
          wLockDelay         0x0000
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      35
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x88  EP 8 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               4
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2 
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)
--endcollapse--


!!USB Stream information
!!----------------------
--startcollapse--

Generic TX-384Khz Hifi Type-C Audio at usb-0000:00:14.0-1, high speed : USB Audio

Playback:
  Status: Stop
  Interface 1
    Altset 1
    Format: S16_LE
    Channels: 2
    Endpoint: 0x04 (4 OUT) (ADAPTIVE)
    Rates: 44100, 48000, 96000, 192000, 384000
    Data packet interval: 125 us
    Bits: 16
    Channel map: FL FR
  Interface 1
    Altset 2
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x04 (4 OUT) (ADAPTIVE)
    Rates: 44100, 48000, 96000, 192000, 384000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR
  Interface 1
    Altset 3
    Format: S32_LE
    Channels: 2
    Endpoint: 0x04 (4 OUT) (ADAPTIVE)
    Rates: 44100, 48000, 96000, 192000, 384000
    Data packet interval: 125 us
    Bits: 32
    Channel map: FL FR
--endcollapse--


!!USB Mixer information
!!---------------------
--startcollapse--

USB Mixer: usb_id=0x0bda4c07, ctrlif=0, ctlerr=0
Card: Generic TX-384Khz Hifi Type-C Audio at usb-0000:00:14.0-1, high speed
  Unit: 4
    Control: name="Clock Source 4 Validity", index=0
    Info: id=4, control=2, cmask=0x0, channels=1, type="BOOLEAN"
    Volume: min=0, max=1, dBmin=0, dBmax=0
  Unit: 22
    Control: name="PCM Playback Volume", index=0
    Info: id=22, control=2, cmask=0x3, channels=2, type="S16"
    Volume: min=-16800, max=0, dBmin=-6562, dBmax=0
  Unit: 22
    Control: name="PCM Playback Switch", index=0
    Info: id=22, control=1, cmask=0x0, channels=1, type="INV_BOOLEAN"
    Volume: min=0, max=1, dBmin=0, dBmax=0
--endcollapse--


!!ALSA Device nodes
!!-----------------

crw-rw---- 1 root audio 116,  3 Nov 17 18:59 /dev/snd/controlC0
crw-rw---- 1 root audio 116,  2 Nov 17 19:00 /dev/snd/pcmC0D0p
crw-rw---- 1 root audio 116,  1 Nov 17 18:59 /dev/snd/seq
crw-rw---- 1 root audio 116, 33 Nov 17 18:59 /dev/snd/timer

/dev/snd/by-id:
total 0
drwxr-xr-x 2 root root  60 Nov 17 18:59 .
drwxr-xr-x 4 root root 160 Nov 17 18:59 ..
lrwxrwxrwx 1 root root  12 Nov 17 18:59 usb-Generic_TX-384Khz_Hifi_Type-C_Audio-00 -> ../controlC0

/dev/snd/by-path:
total 0
drwxr-xr-x 2 root root  60 Nov 17 18:59 .
drwxr-xr-x 4 root root 160 Nov 17 18:59 ..
lrwxrwxrwx 1 root root  12 Nov 17 18:59 pci-0000:00:14.0-usb-0:1:1.0 -> ../controlC0


!!Aplay/Arecord output
!!--------------------

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: Audio [TX-384Khz Hifi Type-C Audio], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

ARECORD

**** List of CAPTURE Hardware Devices ****

!!Amixer output
!!-------------

!!-------Mixer controls for card Audio

Card hw:0 'Audio'/'Generic TX-384Khz Hifi Type-C Audio at usb-0000:00:14.0-1, high speed'
  Mixer name	: 'USB Mixer'
  Components	: 'USB0bda:4c07'
  Controls      : 4
  Simple ctrls  : 1
Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 175
  Mono:
  Front Left: Playback 121 [69%] [-20.25dB] [on]
  Front Right: Playback 121 [69%] [-20.25dB] [on]


!!Alsactl output
!!--------------

--startcollapse--
state.Audio {
	control.1 {
		iface PCM
		name 'Playback Channel Map'
		value.0 0
		value.1 0
		comment {
			access read
			type INTEGER
			count 2
			range '0 - 36'
		}
	}
	control.2 {
		iface MIXER
		name 'PCM Playback Switch'
		value true
		comment {
			access 'read write'
			type BOOLEAN
			count 1
		}
	}
	control.3 {
		iface MIXER
		name 'PCM Playback Volume'
		value.0 121
		value.1 121
		comment {
			access 'read write'
			type INTEGER
			count 2
			range '0 - 175'
			dbmin -6562
			dbmax 0
			dbvalue.0 -2025
			dbvalue.1 -2025
		}
	}
	control.4 {
		iface CARD
		name 'Clock Source 4 Validity'
		value true
		comment {
			access read
			type BOOLEAN
			count 1
		}
	}
}
--endcollapse--


!!All Loaded Modules
!!------------------



!!ALSA/HDA dmesg
!!--------------

[    0.771254] ACPI: Added _OSI(Linux-Dell-Video)
[    0.771262] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[    0.771271] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
--
[    5.299506] usbhid: USB HID core driver
[    5.300421] usbcore: registered new interface driver snd-usb-audio
[    5.301484] IPVS: Registered protocols (TCP, UDP)
--
[    5.396384] pstore: Using crash dump compression: deflate
[    5.398338] ALSA device list:
[    5.399328]   No soundcards found.
[    5.405607] Freeing unused kernel image (initmem) memory: 8868K



[-- Attachment #3: card0-stream0 --]
[-- Type: text/plain, Size: 757 bytes --]

Generic TX-384Khz Hifi Type-C Audio at usb-0000:00:14.0-1, high speed : USB Audio

Playback:
  Status: Stop
  Interface 1
    Altset 1
    Format: S16_LE
    Channels: 2
    Endpoint: 0x04 (4 OUT) (ADAPTIVE)
    Rates: 44100, 48000, 96000, 192000, 384000
    Data packet interval: 125 us
    Bits: 16
    Channel map: FL FR
  Interface 1
    Altset 2
    Format: S24_3LE
    Channels: 2
    Endpoint: 0x04 (4 OUT) (ADAPTIVE)
    Rates: 44100, 48000, 96000, 192000, 384000
    Data packet interval: 125 us
    Bits: 24
    Channel map: FL FR
  Interface 1
    Altset 3
    Format: S32_LE
    Channels: 2
    Endpoint: 0x04 (4 OUT) (ADAPTIVE)
    Rates: 44100, 48000, 96000, 192000, 384000
    Data packet interval: 125 us
    Bits: 32
    Channel map: FL FR

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-17 17:48     ` Kirill A. Shutemov
@ 2021-11-17 18:02       ` Takashi Iwai
  2021-11-17 18:20         ` Kirill A. Shutemov
  2021-11-18  8:01         ` Takashi Iwai
  0 siblings, 2 replies; 14+ messages in thread
From: Takashi Iwai @ 2021-11-17 18:02 UTC (permalink / raw)
  To: Kirill A. Shutemov
  Cc: Takashi Iwai, Linus Torvalds, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List

On Wed, 17 Nov 2021 18:48:26 +0100,
Kirill A. Shutemov wrote:
> 
> On Wed, Nov 17, 2021 at 05:24:28PM +0100, Takashi Iwai wrote:
> > On Wed, 17 Nov 2021 17:18:55 +0100,
> > Kirill A. Shutemov wrote:
> > > 
> > > On Wed, Nov 03, 2021 at 11:24:10AM +0100, Takashi Iwai wrote:
> > > > Linus,
> > > > 
> > > > please pull sound updates for v5.16-rc1 from:
> > > > 
> > > >   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-5.16-rc1
> > > > 
> > > > The topmost commit is df0380b9539b04c1ae8854a984098da06d5f1e67
> > > > 
> > > > ----------------------------------------------------------------
> > > > 
> > > > sound updates for 5.16-rc1
> > > > 
> > > > Lots of code development have been see in ASoC side as usual, while
> > > > the continued development on memalloc helper and USB-audio low-
> > > > latency support are found in the rest.  Note that a few changes in the
> > > > unusual places like arch/sh are included, which are a part of ASoC DAI
> > > > format cleanups.
> > > > 
> > > > ALSA core:
> > > > - Continued memallloc helper updates and cleanups, now supporting
> > > >   non-coherent and non-contiguous pages
> > > > - Fixes for races in mixer OSS layer
> > > > 
> > > > ASoC:
> > > > - A new version of the audio graph card which supports a wider range
> > > >   of systems
> > > > - Several conversions to YAML DT bindings
> > > > - Continuing cleanups to the SOF and Intel code
> > > > - Move of the Cirrus DSP framework into drivers/firmware to allow for
> > > >   future use by non-audio DSPs
> > > > - An overhaul of the cs42l42 driver, correcting many problems
> > > > - DAI format terminology conversions over many drivers for cleanups
> > > > - Support for AMD Vangogh and Yelow Cap, Cirrus CS35L41, Maxim
> > > >   MAX98520 and MAX98360A, Mediatek MT8195, Nuvoton NAU8821, nVidia
> > > >   Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS,
> > > >   RT5682S, and RT9120 and Rockchip RV1126 and RK3568
> > > > 
> > > > USB-audio:
> > > > - Continued improvements on low-latency playback
> > > > - Quirks for Pioneer devices, Line6 HX-Stomp XL, Audient iD14
> > > > 
> > > > HD-audio:
> > > > - Reduce excessive udelay() calls on Intel platforms; this should
> > > >   reduce the CPU load with PulseAudio
> > > > - Quirks for HP and Clevo laptops
> > > > 
> > > > FireWire:
> > > > - Support for meter information on MOTU
> > > > 
> > > 
> > > ...
> > > 
> > > > Takashi Iwai (29):
> > > >       ALSA: hda: Reduce udelay() at SKL+ position reporting
> > > >       ALSA: hda: Use position buffer for SKL+ again
> > > >       ALSA: usb-audio: Restrict rates for the shared clocks
> > > >       ALSA: usb-audio: Fix possible race at sync of urb completions
> > > >       ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback
> > > >       ALSA: usb-audio: Disable low-latency playback for free-wheel mode
> > > >       ALSA: usb-audio: Disable low-latency mode for implicit feedback sync
> > > >       ALSA: usb-audio: Check available frames for the next packet size
> > > >       ALSA: usb-audio: Add spinlock to stop_urbs()
> > > >       ALSA: usb-audio: Improved lowlatency playback support
> > > 
> > > This commit breaks audio playback for me. The sample plays for fraction of
> > > a second than stops.
> > > 
> > > I use SMSL SA300. Let me know what ifo is needed to track it down.
> > > 
> > > Also I can test potential fixups if needed.
> > 
> > Could you give alsa-info.sh output with the device?  Run the script
> > with --no-upload option, and attach the output.
> 
> Attached. I run it on kernel without the commit. I hope it is fine.
> 
> One note: I use monolitic kernel without CONFIG_MODULES. The script
> complained about missing /proc/asound/modules and other modules related
> stuff.

It's a known problem I forgot, but this doesn't matter much.

> > Also /proc/asound/card*/stream* file for that usb device, too,
> > please.
> 
> Attached.

Thanks!

> > And, which environment are you testing, more exactly?  Which platform,
> > and with PulseAudio, pipewire, JACK, or direct ALSA device use?
> 
> Nothing fancy. Direct ALSA. I tested with 'speaker-test -c2 -t wav' during
> bisect.

Did you notice the problem with other applications, too?

When you wrote "The sample plays for fraction of a second than
stops.", it means that the speaker-test program stalls?  Or it's
shorter playbacks?

Also, please test booting with snd_usb_audio.lowlatency=0 boot
option.  Does it behave like before again?

> > For checking the behavior, we'd need to check hw_params in
> > /proc/asound/card*/pcm*/sub*/* for the corresponding device during
> > playback/capture operations.
> 
> You need this to be collected when the problem triggers, right?
> I will follow up with this.

I'll need to test my device at first.  Maybe tomorrow.


thanks,

Takashi

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-17 18:02       ` Takashi Iwai
@ 2021-11-17 18:20         ` Kirill A. Shutemov
  2021-11-18  8:01         ` Takashi Iwai
  1 sibling, 0 replies; 14+ messages in thread
From: Kirill A. Shutemov @ 2021-11-17 18:20 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

On Wed, Nov 17, 2021 at 07:02:47PM +0100, Takashi Iwai wrote:
> On Wed, 17 Nov 2021 18:48:26 +0100,
> Kirill A. Shutemov wrote:
> > 
> > On Wed, Nov 17, 2021 at 05:24:28PM +0100, Takashi Iwai wrote:
> > > On Wed, 17 Nov 2021 17:18:55 +0100,
> > > Kirill A. Shutemov wrote:
> > > > 
> > > > On Wed, Nov 03, 2021 at 11:24:10AM +0100, Takashi Iwai wrote:
> > > > > Linus,
> > > > > 
> > > > > please pull sound updates for v5.16-rc1 from:
> > > > > 
> > > > >   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-5.16-rc1
> > > > > 
> > > > > The topmost commit is df0380b9539b04c1ae8854a984098da06d5f1e67
> > > > > 
> > > > > ----------------------------------------------------------------
> > > > > 
> > > > > sound updates for 5.16-rc1
> > > > > 
> > > > > Lots of code development have been see in ASoC side as usual, while
> > > > > the continued development on memalloc helper and USB-audio low-
> > > > > latency support are found in the rest.  Note that a few changes in the
> > > > > unusual places like arch/sh are included, which are a part of ASoC DAI
> > > > > format cleanups.
> > > > > 
> > > > > ALSA core:
> > > > > - Continued memallloc helper updates and cleanups, now supporting
> > > > >   non-coherent and non-contiguous pages
> > > > > - Fixes for races in mixer OSS layer
> > > > > 
> > > > > ASoC:
> > > > > - A new version of the audio graph card which supports a wider range
> > > > >   of systems
> > > > > - Several conversions to YAML DT bindings
> > > > > - Continuing cleanups to the SOF and Intel code
> > > > > - Move of the Cirrus DSP framework into drivers/firmware to allow for
> > > > >   future use by non-audio DSPs
> > > > > - An overhaul of the cs42l42 driver, correcting many problems
> > > > > - DAI format terminology conversions over many drivers for cleanups
> > > > > - Support for AMD Vangogh and Yelow Cap, Cirrus CS35L41, Maxim
> > > > >   MAX98520 and MAX98360A, Mediatek MT8195, Nuvoton NAU8821, nVidia
> > > > >   Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS,
> > > > >   RT5682S, and RT9120 and Rockchip RV1126 and RK3568
> > > > > 
> > > > > USB-audio:
> > > > > - Continued improvements on low-latency playback
> > > > > - Quirks for Pioneer devices, Line6 HX-Stomp XL, Audient iD14
> > > > > 
> > > > > HD-audio:
> > > > > - Reduce excessive udelay() calls on Intel platforms; this should
> > > > >   reduce the CPU load with PulseAudio
> > > > > - Quirks for HP and Clevo laptops
> > > > > 
> > > > > FireWire:
> > > > > - Support for meter information on MOTU
> > > > > 
> > > > 
> > > > ...
> > > > 
> > > > > Takashi Iwai (29):
> > > > >       ALSA: hda: Reduce udelay() at SKL+ position reporting
> > > > >       ALSA: hda: Use position buffer for SKL+ again
> > > > >       ALSA: usb-audio: Restrict rates for the shared clocks
> > > > >       ALSA: usb-audio: Fix possible race at sync of urb completions
> > > > >       ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback
> > > > >       ALSA: usb-audio: Disable low-latency playback for free-wheel mode
> > > > >       ALSA: usb-audio: Disable low-latency mode for implicit feedback sync
> > > > >       ALSA: usb-audio: Check available frames for the next packet size
> > > > >       ALSA: usb-audio: Add spinlock to stop_urbs()
> > > > >       ALSA: usb-audio: Improved lowlatency playback support
> > > > 
> > > > This commit breaks audio playback for me. The sample plays for fraction of
> > > > a second than stops.
> > > > 
> > > > I use SMSL SA300. Let me know what ifo is needed to track it down.
> > > > 
> > > > Also I can test potential fixups if needed.
> > > 
> > > Could you give alsa-info.sh output with the device?  Run the script
> > > with --no-upload option, and attach the output.
> > 
> > Attached. I run it on kernel without the commit. I hope it is fine.
> > 
> > One note: I use monolitic kernel without CONFIG_MODULES. The script
> > complained about missing /proc/asound/modules and other modules related
> > stuff.
> 
> It's a known problem I forgot, but this doesn't matter much.
> 
> > > Also /proc/asound/card*/stream* file for that usb device, too,
> > > please.
> > 
> > Attached.
> 
> Thanks!
> 
> > > And, which environment are you testing, more exactly?  Which platform,
> > > and with PulseAudio, pipewire, JACK, or direct ALSA device use?
> > 
> > Nothing fancy. Direct ALSA. I tested with 'speaker-test -c2 -t wav' during
> > bisect.
> 
> Did you notice the problem with other applications, too?

Youtube in Firefox hangs trying to play a video. (Browser is still
functional otherwise)

> When you wrote "The sample plays for fraction of a second than
> stops.", it means that the speaker-test program stalls?  Or it's
> shorter playbacks?

On "Front left" check, it stalls after "Fro" or so :P

The speaker-test can be terminated normally with ctrl-c and the symptoms
are the same if you try again.

> Also, please test booting with snd_usb_audio.lowlatency=0 boot
> option.  Does it behave like before again?
> 
> > > For checking the behavior, we'd need to check hw_params in
> > > /proc/asound/card*/pcm*/sub*/* for the corresponding device during
> > > playback/capture operations.
> > 
> > You need this to be collected when the problem triggers, right?
> > I will follow up with this.
> 
> I'll need to test my device at first.  Maybe tomorrow.

Okay.

-- 
 Kirill A. Shutemov

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-17 18:02       ` Takashi Iwai
  2021-11-17 18:20         ` Kirill A. Shutemov
@ 2021-11-18  8:01         ` Takashi Iwai
  2021-11-18 16:57           ` Takashi Iwai
  2021-11-18 23:17           ` Kirill A. Shutemov
  1 sibling, 2 replies; 14+ messages in thread
From: Takashi Iwai @ 2021-11-18  8:01 UTC (permalink / raw)
  To: Kirill A. Shutemov
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

On Wed, 17 Nov 2021 19:02:47 +0100,
Takashi Iwai wrote:
> 
> On Wed, 17 Nov 2021 18:48:26 +0100,
> Kirill A. Shutemov wrote:
> > 
> > On Wed, Nov 17, 2021 at 05:24:28PM +0100, Takashi Iwai wrote:
> > > On Wed, 17 Nov 2021 17:18:55 +0100,
> > > Kirill A. Shutemov wrote:
> > > > 
> > > > On Wed, Nov 03, 2021 at 11:24:10AM +0100, Takashi Iwai wrote:
> > > > > Linus,
> > > > > 
> > > > > please pull sound updates for v5.16-rc1 from:
> > > > > 
> > > > >   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-5.16-rc1
> > > > > 
> > > > > The topmost commit is df0380b9539b04c1ae8854a984098da06d5f1e67
> > > > > 
> > > > > ----------------------------------------------------------------
> > > > > 
> > > > > sound updates for 5.16-rc1
> > > > > 
> > > > > Lots of code development have been see in ASoC side as usual, while
> > > > > the continued development on memalloc helper and USB-audio low-
> > > > > latency support are found in the rest.  Note that a few changes in the
> > > > > unusual places like arch/sh are included, which are a part of ASoC DAI
> > > > > format cleanups.
> > > > > 
> > > > > ALSA core:
> > > > > - Continued memallloc helper updates and cleanups, now supporting
> > > > >   non-coherent and non-contiguous pages
> > > > > - Fixes for races in mixer OSS layer
> > > > > 
> > > > > ASoC:
> > > > > - A new version of the audio graph card which supports a wider range
> > > > >   of systems
> > > > > - Several conversions to YAML DT bindings
> > > > > - Continuing cleanups to the SOF and Intel code
> > > > > - Move of the Cirrus DSP framework into drivers/firmware to allow for
> > > > >   future use by non-audio DSPs
> > > > > - An overhaul of the cs42l42 driver, correcting many problems
> > > > > - DAI format terminology conversions over many drivers for cleanups
> > > > > - Support for AMD Vangogh and Yelow Cap, Cirrus CS35L41, Maxim
> > > > >   MAX98520 and MAX98360A, Mediatek MT8195, Nuvoton NAU8821, nVidia
> > > > >   Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS,
> > > > >   RT5682S, and RT9120 and Rockchip RV1126 and RK3568
> > > > > 
> > > > > USB-audio:
> > > > > - Continued improvements on low-latency playback
> > > > > - Quirks for Pioneer devices, Line6 HX-Stomp XL, Audient iD14
> > > > > 
> > > > > HD-audio:
> > > > > - Reduce excessive udelay() calls on Intel platforms; this should
> > > > >   reduce the CPU load with PulseAudio
> > > > > - Quirks for HP and Clevo laptops
> > > > > 
> > > > > FireWire:
> > > > > - Support for meter information on MOTU
> > > > > 
> > > > 
> > > > ...
> > > > 
> > > > > Takashi Iwai (29):
> > > > >       ALSA: hda: Reduce udelay() at SKL+ position reporting
> > > > >       ALSA: hda: Use position buffer for SKL+ again
> > > > >       ALSA: usb-audio: Restrict rates for the shared clocks
> > > > >       ALSA: usb-audio: Fix possible race at sync of urb completions
> > > > >       ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback
> > > > >       ALSA: usb-audio: Disable low-latency playback for free-wheel mode
> > > > >       ALSA: usb-audio: Disable low-latency mode for implicit feedback sync
> > > > >       ALSA: usb-audio: Check available frames for the next packet size
> > > > >       ALSA: usb-audio: Add spinlock to stop_urbs()
> > > > >       ALSA: usb-audio: Improved lowlatency playback support
> > > > 
> > > > This commit breaks audio playback for me. The sample plays for fraction of
> > > > a second than stops.
> > > > 
> > > > I use SMSL SA300. Let me know what ifo is needed to track it down.
> > > > 
> > > > Also I can test potential fixups if needed.
> > > 
> > > Could you give alsa-info.sh output with the device?  Run the script
> > > with --no-upload option, and attach the output.
> > 
> > Attached. I run it on kernel without the commit. I hope it is fine.
> > 
> > One note: I use monolitic kernel without CONFIG_MODULES. The script
> > complained about missing /proc/asound/modules and other modules related
> > stuff.
> 
> It's a known problem I forgot, but this doesn't matter much.
> 
> > > Also /proc/asound/card*/stream* file for that usb device, too,
> > > please.
> > 
> > Attached.
> 
> Thanks!
> 
> > > And, which environment are you testing, more exactly?  Which platform,
> > > and with PulseAudio, pipewire, JACK, or direct ALSA device use?
> > 
> > Nothing fancy. Direct ALSA. I tested with 'speaker-test -c2 -t wav' during
> > bisect.
> 
> Did you notice the problem with other applications, too?
> 
> When you wrote "The sample plays for fraction of a second than
> stops.", it means that the speaker-test program stalls?  Or it's
> shorter playbacks?
> 
> Also, please test booting with snd_usb_audio.lowlatency=0 boot
> option.  Does it behave like before again?
> 
> > > For checking the behavior, we'd need to check hw_params in
> > > /proc/asound/card*/pcm*/sub*/* for the corresponding device during
> > > playback/capture operations.
> > 
> > You need this to be collected when the problem triggers, right?
> > I will follow up with this.
> 
> I'll need to test my device at first.  Maybe tomorrow.

I checked mine, and all worked fine.  So this doesn't look like a
generic breakage but somehow specific to certain devices or system.

Could you verify the lowlatency flag off?

Also, the simple aplay invocation (e.g. with a 2-channel 16bit sample)
also goes to the same problem, I suppose?


Takashi

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-18  8:01         ` Takashi Iwai
@ 2021-11-18 16:57           ` Takashi Iwai
  2021-11-18 23:26             ` Kirill A. Shutemov
  2021-11-18 23:17           ` Kirill A. Shutemov
  1 sibling, 1 reply; 14+ messages in thread
From: Takashi Iwai @ 2021-11-18 16:57 UTC (permalink / raw)
  To: Kirill A. Shutemov
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

On Thu, 18 Nov 2021 09:01:38 +0100,
Takashi Iwai wrote:
> 
> On Wed, 17 Nov 2021 19:02:47 +0100,
> Takashi Iwai wrote:
> > 
> > On Wed, 17 Nov 2021 18:48:26 +0100,
> > Kirill A. Shutemov wrote:
> > > 
> > > On Wed, Nov 17, 2021 at 05:24:28PM +0100, Takashi Iwai wrote:
> > > > On Wed, 17 Nov 2021 17:18:55 +0100,
> > > > Kirill A. Shutemov wrote:
> > > > > 
> > > > > On Wed, Nov 03, 2021 at 11:24:10AM +0100, Takashi Iwai wrote:
> > > > > > Linus,
> > > > > > 
> > > > > > please pull sound updates for v5.16-rc1 from:
> > > > > > 
> > > > > >   git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git tags/sound-5.16-rc1
> > > > > > 
> > > > > > The topmost commit is df0380b9539b04c1ae8854a984098da06d5f1e67
> > > > > > 
> > > > > > ----------------------------------------------------------------
> > > > > > 
> > > > > > sound updates for 5.16-rc1
> > > > > > 
> > > > > > Lots of code development have been see in ASoC side as usual, while
> > > > > > the continued development on memalloc helper and USB-audio low-
> > > > > > latency support are found in the rest.  Note that a few changes in the
> > > > > > unusual places like arch/sh are included, which are a part of ASoC DAI
> > > > > > format cleanups.
> > > > > > 
> > > > > > ALSA core:
> > > > > > - Continued memallloc helper updates and cleanups, now supporting
> > > > > >   non-coherent and non-contiguous pages
> > > > > > - Fixes for races in mixer OSS layer
> > > > > > 
> > > > > > ASoC:
> > > > > > - A new version of the audio graph card which supports a wider range
> > > > > >   of systems
> > > > > > - Several conversions to YAML DT bindings
> > > > > > - Continuing cleanups to the SOF and Intel code
> > > > > > - Move of the Cirrus DSP framework into drivers/firmware to allow for
> > > > > >   future use by non-audio DSPs
> > > > > > - An overhaul of the cs42l42 driver, correcting many problems
> > > > > > - DAI format terminology conversions over many drivers for cleanups
> > > > > > - Support for AMD Vangogh and Yelow Cap, Cirrus CS35L41, Maxim
> > > > > >   MAX98520 and MAX98360A, Mediatek MT8195, Nuvoton NAU8821, nVidia
> > > > > >   Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS,
> > > > > >   RT5682S, and RT9120 and Rockchip RV1126 and RK3568
> > > > > > 
> > > > > > USB-audio:
> > > > > > - Continued improvements on low-latency playback
> > > > > > - Quirks for Pioneer devices, Line6 HX-Stomp XL, Audient iD14
> > > > > > 
> > > > > > HD-audio:
> > > > > > - Reduce excessive udelay() calls on Intel platforms; this should
> > > > > >   reduce the CPU load with PulseAudio
> > > > > > - Quirks for HP and Clevo laptops
> > > > > > 
> > > > > > FireWire:
> > > > > > - Support for meter information on MOTU
> > > > > > 
> > > > > 
> > > > > ...
> > > > > 
> > > > > > Takashi Iwai (29):
> > > > > >       ALSA: hda: Reduce udelay() at SKL+ position reporting
> > > > > >       ALSA: hda: Use position buffer for SKL+ again
> > > > > >       ALSA: usb-audio: Restrict rates for the shared clocks
> > > > > >       ALSA: usb-audio: Fix possible race at sync of urb completions
> > > > > >       ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback
> > > > > >       ALSA: usb-audio: Disable low-latency playback for free-wheel mode
> > > > > >       ALSA: usb-audio: Disable low-latency mode for implicit feedback sync
> > > > > >       ALSA: usb-audio: Check available frames for the next packet size
> > > > > >       ALSA: usb-audio: Add spinlock to stop_urbs()
> > > > > >       ALSA: usb-audio: Improved lowlatency playback support
> > > > > 
> > > > > This commit breaks audio playback for me. The sample plays for fraction of
> > > > > a second than stops.
> > > > > 
> > > > > I use SMSL SA300. Let me know what ifo is needed to track it down.
> > > > > 
> > > > > Also I can test potential fixups if needed.
> > > > 
> > > > Could you give alsa-info.sh output with the device?  Run the script
> > > > with --no-upload option, and attach the output.
> > > 
> > > Attached. I run it on kernel without the commit. I hope it is fine.
> > > 
> > > One note: I use monolitic kernel without CONFIG_MODULES. The script
> > > complained about missing /proc/asound/modules and other modules related
> > > stuff.
> > 
> > It's a known problem I forgot, but this doesn't matter much.
> > 
> > > > Also /proc/asound/card*/stream* file for that usb device, too,
> > > > please.
> > > 
> > > Attached.
> > 
> > Thanks!
> > 
> > > > And, which environment are you testing, more exactly?  Which platform,
> > > > and with PulseAudio, pipewire, JACK, or direct ALSA device use?
> > > 
> > > Nothing fancy. Direct ALSA. I tested with 'speaker-test -c2 -t wav' during
> > > bisect.
> > 
> > Did you notice the problem with other applications, too?
> > 
> > When you wrote "The sample plays for fraction of a second than
> > stops.", it means that the speaker-test program stalls?  Or it's
> > shorter playbacks?
> > 
> > Also, please test booting with snd_usb_audio.lowlatency=0 boot
> > option.  Does it behave like before again?
> > 
> > > > For checking the behavior, we'd need to check hw_params in
> > > > /proc/asound/card*/pcm*/sub*/* for the corresponding device during
> > > > playback/capture operations.
> > > 
> > > You need this to be collected when the problem triggers, right?
> > > I will follow up with this.
> > 
> > I'll need to test my device at first.  Maybe tomorrow.
> 
> I checked mine, and all worked fine.  So this doesn't look like a
> generic breakage but somehow specific to certain devices or system.
> 
> Could you verify the lowlatency flag off?
> 
> Also, the simple aplay invocation (e.g. with a 2-channel 16bit sample)
> also goes to the same problem, I suppose?

And it'd be helpful if you can gather the log (from tracing) with the
patch below (from the start of speaker-test until the stall).


Takashi

diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
index 743b8287cfcd..b48e53b490b8 100644
--- a/sound/usb/endpoint.c
+++ b/sound/usb/endpoint.c
@@ -392,6 +392,7 @@ static void notify_xrun(struct snd_usb_endpoint *ep)
 {
 	struct snd_usb_substream *data_subs;
 
+	DBG("XXX XRUN!\n");
 	data_subs = READ_ONCE(ep->data_subs);
 	if (data_subs && data_subs->pcm_substream)
 		snd_pcm_stop_xrun(data_subs->pcm_substream);
@@ -425,6 +426,7 @@ static void push_back_to_ready_list(struct snd_usb_endpoint *ep,
 {
 	unsigned long flags;
 
+	DBG("pkt %d push back\n", ctx->index);
 	spin_lock_irqsave(&ep->lock, flags);
 	list_add_tail(&ctx->ready_list, &ep->ready_playback_urbs);
 	spin_unlock_irqrestore(&ep->lock, flags);
@@ -470,6 +472,8 @@ void snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep,
 		if (ctx == NULL)
 			return;
 
+		DBG("checking queue pkt %d (active_mask=%lx)\n", ctx->index,
+		    ep->active_mask);
 		/* copy over the length information */
 		if (implicit_fb) {
 			for (i = 0; i < packet->packets; i++)
@@ -490,6 +494,7 @@ void snd_usb_queue_pending_output_urbs(struct snd_usb_endpoint *ep,
 			return;
 		}
 
+		DBG("pkt %d submitted\n", ctx->index);
 		err = usb_submit_urb(ctx->urb, GFP_ATOMIC);
 		if (err < 0) {
 			usb_audio_err(ep->chip,
@@ -513,6 +518,7 @@ static void snd_complete_urb(struct urb *urb)
 	struct snd_usb_endpoint *ep = ctx->ep;
 	int err;
 
+	DBG("pkt complete %d\n", ctx->index);
 	if (unlikely(urb->status == -ENOENT ||		/* unlinked */
 		     urb->status == -ENODEV ||		/* device removed */
 		     urb->status == -ECONNRESET ||	/* unlinked */
@@ -1442,6 +1448,7 @@ int snd_usb_endpoint_start(struct snd_usb_endpoint *ep)
 	int err;
 	unsigned int i;
 
+	DBG("endpoint start\n");
 	if (atomic_read(&ep->chip->shutdown))
 		return -EBADFD;
 
@@ -1500,6 +1507,7 @@ int snd_usb_endpoint_start(struct snd_usb_endpoint *ep)
 			goto __error;
 		}
 
+		DBG("start: pkt %d submitted\n", i);
 		err = usb_submit_urb(urb, GFP_ATOMIC);
 		if (err < 0) {
 			usb_audio_err(ep->chip,
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index 95ec8eec1bb0..b1651db2e1e8 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -1232,6 +1232,8 @@ static void urb_ctx_queue_advance(struct snd_usb_substream *subs,
 	subs->hwptr_done += bytes;
 	if (subs->hwptr_done >= subs->buffer_bytes)
 		subs->hwptr_done -= subs->buffer_bytes;
+	DBG("PCM bytes=%d, queued=%d, inflight=%d, hwptr=%d\n",
+	    bytes, ctx->queued, subs->inflight_bytes, subs->hwptr_done);
 }
 
 static inline void fill_playback_urb_dsd_dop(struct snd_usb_substream *subs,
@@ -1389,10 +1391,17 @@ static int prepare_playback_urb(struct snd_usb_substream *subs,
 		if (avail <= hwptr)
 			avail += runtime->buffer_size;
 		avail -= hwptr;
+		DBG("prepare: applptr=%ld, hwptr_base=%ld, buffer=%ld, hwptr=%d, avail=%d\n",
+		    (long)runtime->control->appl_ptr,
+		    (long)runtime->hw_ptr_base,
+		    (long)runtime->buffer_size,
+		    hwptr, avail);
 	}
 
 	for (i = 0; i < ctx->packets; i++) {
 		counts = snd_usb_endpoint_next_packet_size(ep, ctx, i, avail);
+		DBG("prepare: pkt %d [%d]: avail=%d, counts=%d\n",
+		    ctx->index, i, avail, counts);
 		if (counts < 0)
 			break;
 		/* set up descriptor */
@@ -1530,6 +1539,7 @@ static int snd_usb_pcm_playback_ack(struct snd_pcm_substream *substream)
 	/* When no more in-flight URBs available, try to process the pending
 	 * outputs here
 	 */
+	DBG("PCM ack: active_mask=%lx\n", ep->active_mask);
 	if (!ep->active_mask)
 		snd_usb_queue_pending_output_urbs(ep, true);
 	return 0;
diff --git a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
index 167834133b9b..84fcd6956f76 100644
--- a/sound/usb/usbaudio.h
+++ b/sound/usb/usbaudio.h
@@ -184,4 +184,5 @@ extern bool snd_usb_skip_validation;
 #define QUIRK_FLAG_DSD_RAW		(1U << 15)
 #define QUIRK_FLAG_SET_IFACE_FIRST	(1U << 16)
 
+#define DBG(fmt, ...)	trace_printk(fmt, ##__VA_ARGS__)
 #endif /* __USBAUDIO_H */

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-18  8:01         ` Takashi Iwai
  2021-11-18 16:57           ` Takashi Iwai
@ 2021-11-18 23:17           ` Kirill A. Shutemov
  1 sibling, 0 replies; 14+ messages in thread
From: Kirill A. Shutemov @ 2021-11-18 23:17 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 524 bytes --]

On Thu, Nov 18, 2021 at 09:01:38AM +0100, Takashi Iwai wrote:
> I checked mine, and all worked fine.  So this doesn't look like a
> generic breakage but somehow specific to certain devices or system.
> 
> Could you verify the lowlatency flag off?

With lowlatency off it works fine.

I attached dump form /proc/asound/card*/pcm*/sub*/* for both cases while
plaing the sample

> Also, the simple aplay invocation (e.g. with a 2-channel 16bit sample)
> also goes to the same problem, I suppose?

Yes.

-- 
 Kirill A. Shutemov

[-- Attachment #2: state --]
[-- Type: text/plain, Size: 938 bytes --]

hw_params:access: MMAP_INTERLEAVED
hw_params:format: S16_LE
hw_params:subformat: STD
hw_params:channels: 2
hw_params:rate: 44100 (44100/1)
hw_params:period_size: 1024
hw_params:buffer_size: 4096
info:card: 0
info:device: 0
info:subdevice: 0
info:stream: PLAYBACK
info:id: USB Audio
info:name: USB Audio
info:subname: subdevice #0
info:class: 0
info:subclass: 0
info:subdevices_count: 1
info:subdevices_avail: 0
status:state: RUNNING
status:owner_pid   : 4268
status:trigger_time: 335.048357663
status:tstamp      : 362.520920879
status:delay       : -4095
status:avail       : 8191
status:avail_max   : 0
status:-----
status:hw_ptr      : 4095
status:appl_ptr    : 0
sw_params:tstamp_mode: ENABLE
sw_params:period_step: 1
sw_params:avail_min: 1024
sw_params:start_threshold: 1
sw_params:stop_threshold: 4611686018427387904
sw_params:silence_threshold: 0
sw_params:silence_size: 4611686018427387904
sw_params:boundary: 4611686018427387904

[-- Attachment #3: state.no-lowlatency --]
[-- Type: text/plain, Size: 949 bytes --]

hw_params:access: MMAP_INTERLEAVED
hw_params:format: S16_LE
hw_params:subformat: STD
hw_params:channels: 2
hw_params:rate: 44100 (44100/1)
hw_params:period_size: 1024
hw_params:buffer_size: 4096
info:card: 0
info:device: 0
info:subdevice: 0
info:stream: PLAYBACK
info:id: USB Audio
info:name: USB Audio
info:subname: subdevice #0
info:class: 0
info:subclass: 0
info:subdevices_count: 1
info:subdevices_avail: 0
status:state: RUNNING
status:owner_pid   : 4351
status:trigger_time: 107.480212212
status:tstamp      : 111.934757272
status:delay       : -196216
status:avail       : 200704
status:avail_max   : 200704
status:-----
status:hw_ptr      : 196608
status:appl_ptr    : 0
sw_params:tstamp_mode: ENABLE
sw_params:period_step: 1
sw_params:avail_min: 1024
sw_params:start_threshold: 1
sw_params:stop_threshold: 4611686018427387904
sw_params:silence_threshold: 0
sw_params:silence_size: 4611686018427387904
sw_params:boundary: 4611686018427387904

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-18 16:57           ` Takashi Iwai
@ 2021-11-18 23:26             ` Kirill A. Shutemov
  2021-11-19  9:13               ` Takashi Iwai
  0 siblings, 1 reply; 14+ messages in thread
From: Kirill A. Shutemov @ 2021-11-18 23:26 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 247 bytes --]

On Thu, Nov 18, 2021 at 05:57:35PM +0100, Takashi Iwai wrote:
> And it'd be helpful if you can gather the log (from tracing) with the
> patch below (from the start of speaker-test until the stall).

The trace is attached.

-- 
 Kirill A. Shutemov

[-- Attachment #2: trace --]
[-- Type: text/plain, Size: 100198 bytes --]

# tracer: nop
#
# entries-in-buffer/entries-written: 1748/1748   #P:32
#
#                                _-----=> irqs-off
#                               / _----=> need-resched
#                              | / _---=> hardirq/softirq
#                              || / _--=> preempt-depth
#                              ||| / _-=> migrate-disable
#                              |||| /     delay
#           TASK-PID     CPU#  |||||  TIMESTAMP  FUNCTION
#              | |         |   |||||     |         |
    speaker-test-4543    [002] d..1.   154.331485: snd_usb_endpoint_start: endpoint start
    speaker-test-4543    [002] d..2.   154.331490: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=0, avail=4096
    speaker-test-4543    [002] d..2.   154.331491: prepare_playback_urb: prepare: pkt 0 [0]: avail=4096, counts=5
    speaker-test-4543    [002] d..2.   154.331492: prepare_playback_urb: prepare: pkt 0 [1]: avail=4091, counts=6
    speaker-test-4543    [002] d..2.   154.331493: prepare_playback_urb: prepare: pkt 0 [2]: avail=4085, counts=5
    speaker-test-4543    [002] d..2.   154.331494: prepare_playback_urb: prepare: pkt 0 [3]: avail=4080, counts=6
    speaker-test-4543    [002] d..2.   154.331494: prepare_playback_urb: prepare: pkt 0 [4]: avail=4074, counts=5
    speaker-test-4543    [002] d..2.   154.331495: prepare_playback_urb: prepare: pkt 0 [5]: avail=4069, counts=6
    speaker-test-4543    [002] d..2.   154.331495: prepare_playback_urb: prepare: pkt 0 [6]: avail=4063, counts=5
    speaker-test-4543    [002] d..2.   154.331496: prepare_playback_urb: prepare: pkt 0 [7]: avail=4058, counts=6
    speaker-test-4543    [002] d..2.   154.331496: prepare_playback_urb: prepare: pkt 0 [8]: avail=4052, counts=5
    speaker-test-4543    [002] d..2.   154.331497: prepare_playback_urb: prepare: pkt 0 [9]: avail=4047, counts=6
    speaker-test-4543    [002] d..2.   154.331498: prepare_playback_urb: prepare: pkt 0 [10]: avail=4041, counts=5
    speaker-test-4543    [002] d..2.   154.331498: prepare_playback_urb: prepare: pkt 0 [11]: avail=4036, counts=6
    speaker-test-4543    [002] d..2.   154.331499: prepare_playback_urb: prepare: pkt 0 [12]: avail=4030, counts=5
    speaker-test-4543    [002] d..2.   154.331499: prepare_playback_urb: prepare: pkt 0 [13]: avail=4025, counts=6
    speaker-test-4543    [002] d..2.   154.331500: prepare_playback_urb: prepare: pkt 0 [14]: avail=4019, counts=5
    speaker-test-4543    [002] d..2.   154.331500: prepare_playback_urb: prepare: pkt 0 [15]: avail=4014, counts=6
    speaker-test-4543    [002] d..2.   154.331501: prepare_playback_urb: prepare: pkt 0 [16]: avail=4008, counts=5
    speaker-test-4543    [002] d..2.   154.331501: prepare_playback_urb: prepare: pkt 0 [17]: avail=4003, counts=6
    speaker-test-4543    [002] d..2.   154.331502: prepare_playback_urb: prepare: pkt 0 [18]: avail=3997, counts=5
    speaker-test-4543    [002] d..2.   154.331503: prepare_playback_urb: prepare: pkt 0 [19]: avail=3992, counts=6
    speaker-test-4543    [002] d..2.   154.331503: prepare_playback_urb: prepare: pkt 0 [20]: avail=3986, counts=5
    speaker-test-4543    [002] d..2.   154.331504: prepare_playback_urb: prepare: pkt 0 [21]: avail=3981, counts=6
    speaker-test-4543    [002] d..2.   154.331504: prepare_playback_urb: prepare: pkt 0 [22]: avail=3975, counts=5
    speaker-test-4543    [002] d..2.   154.331505: prepare_playback_urb: prepare: pkt 0 [23]: avail=3970, counts=6
    speaker-test-4543    [002] d..2.   154.331505: prepare_playback_urb: prepare: pkt 0 [24]: avail=3964, counts=5
    speaker-test-4543    [002] d..2.   154.331506: prepare_playback_urb: prepare: pkt 0 [25]: avail=3959, counts=6
    speaker-test-4543    [002] d..2.   154.331506: prepare_playback_urb: prepare: pkt 0 [26]: avail=3953, counts=5
    speaker-test-4543    [002] d..2.   154.331507: prepare_playback_urb: prepare: pkt 0 [27]: avail=3948, counts=6
    speaker-test-4543    [002] d..2.   154.331507: prepare_playback_urb: prepare: pkt 0 [28]: avail=3942, counts=5
    speaker-test-4543    [002] d..2.   154.331508: prepare_playback_urb: prepare: pkt 0 [29]: avail=3937, counts=6
    speaker-test-4543    [002] d..2.   154.331509: prepare_playback_urb: prepare: pkt 0 [30]: avail=3931, counts=5
    speaker-test-4543    [002] d..2.   154.331509: prepare_playback_urb: prepare: pkt 0 [31]: avail=3926, counts=6
    speaker-test-4543    [002] d..2.   154.331510: prepare_playback_urb: prepare: pkt 0 [32]: avail=3920, counts=5
    speaker-test-4543    [002] d..2.   154.331510: prepare_playback_urb: prepare: pkt 0 [33]: avail=3915, counts=6
    speaker-test-4543    [002] d..2.   154.331511: prepare_playback_urb: prepare: pkt 0 [34]: avail=3909, counts=5
    speaker-test-4543    [002] d..2.   154.331511: prepare_playback_urb: prepare: pkt 0 [35]: avail=3904, counts=6
    speaker-test-4543    [002] d..2.   154.331512: prepare_playback_urb: prepare: pkt 0 [36]: avail=3898, counts=5
    speaker-test-4543    [002] d..2.   154.331512: prepare_playback_urb: prepare: pkt 0 [37]: avail=3893, counts=6
    speaker-test-4543    [002] d..2.   154.331513: prepare_playback_urb: prepare: pkt 0 [38]: avail=3887, counts=5
    speaker-test-4543    [002] d..2.   154.331513: prepare_playback_urb: prepare: pkt 0 [39]: avail=3882, counts=6
    speaker-test-4543    [002] d..2.   154.331514: prepare_playback_urb: prepare: pkt 0 [40]: avail=3876, counts=6
    speaker-test-4543    [002] d..2.   154.331515: urb_ctx_queue_advance: PCM bytes=904, queued=904, inflight=904, hwptr=904
    speaker-test-4543    [002] d..1.   154.331518: snd_usb_endpoint_start: start: pkt 0 submitted
    speaker-test-4543    [002] d..2.   154.331532: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=226, avail=3870
    speaker-test-4543    [002] d..2.   154.331533: prepare_playback_urb: prepare: pkt 1 [0]: avail=3870, counts=5
    speaker-test-4543    [002] d..2.   154.331533: prepare_playback_urb: prepare: pkt 1 [1]: avail=3865, counts=6
    speaker-test-4543    [002] d..2.   154.331534: prepare_playback_urb: prepare: pkt 1 [2]: avail=3859, counts=5
    speaker-test-4543    [002] d..2.   154.331534: prepare_playback_urb: prepare: pkt 1 [3]: avail=3854, counts=6
    speaker-test-4543    [002] d..2.   154.331535: prepare_playback_urb: prepare: pkt 1 [4]: avail=3848, counts=5
    speaker-test-4543    [002] d..2.   154.331535: prepare_playback_urb: prepare: pkt 1 [5]: avail=3843, counts=6
    speaker-test-4543    [002] d..2.   154.331536: prepare_playback_urb: prepare: pkt 1 [6]: avail=3837, counts=5
    speaker-test-4543    [002] d..2.   154.331536: prepare_playback_urb: prepare: pkt 1 [7]: avail=3832, counts=6
    speaker-test-4543    [002] d..2.   154.331537: prepare_playback_urb: prepare: pkt 1 [8]: avail=3826, counts=5
    speaker-test-4543    [002] d..2.   154.331537: prepare_playback_urb: prepare: pkt 1 [9]: avail=3821, counts=6
    speaker-test-4543    [002] d..2.   154.331538: prepare_playback_urb: prepare: pkt 1 [10]: avail=3815, counts=5
    speaker-test-4543    [002] d..2.   154.331538: prepare_playback_urb: prepare: pkt 1 [11]: avail=3810, counts=6
    speaker-test-4543    [002] d..2.   154.331539: prepare_playback_urb: prepare: pkt 1 [12]: avail=3804, counts=5
    speaker-test-4543    [002] d..2.   154.331540: prepare_playback_urb: prepare: pkt 1 [13]: avail=3799, counts=6
    speaker-test-4543    [002] d..2.   154.331540: prepare_playback_urb: prepare: pkt 1 [14]: avail=3793, counts=5
    speaker-test-4543    [002] d..2.   154.331541: prepare_playback_urb: prepare: pkt 1 [15]: avail=3788, counts=6
    speaker-test-4543    [002] d..2.   154.331541: prepare_playback_urb: prepare: pkt 1 [16]: avail=3782, counts=5
    speaker-test-4543    [002] d..2.   154.331542: prepare_playback_urb: prepare: pkt 1 [17]: avail=3777, counts=6
    speaker-test-4543    [002] d..2.   154.331542: prepare_playback_urb: prepare: pkt 1 [18]: avail=3771, counts=5
    speaker-test-4543    [002] d..2.   154.331543: prepare_playback_urb: prepare: pkt 1 [19]: avail=3766, counts=6
    speaker-test-4543    [002] d..2.   154.331543: prepare_playback_urb: prepare: pkt 1 [20]: avail=3760, counts=5
    speaker-test-4543    [002] d..2.   154.331544: prepare_playback_urb: prepare: pkt 1 [21]: avail=3755, counts=6
    speaker-test-4543    [002] d..2.   154.331544: prepare_playback_urb: prepare: pkt 1 [22]: avail=3749, counts=5
    speaker-test-4543    [002] d..2.   154.331545: prepare_playback_urb: prepare: pkt 1 [23]: avail=3744, counts=6
    speaker-test-4543    [002] d..2.   154.331545: prepare_playback_urb: prepare: pkt 1 [24]: avail=3738, counts=5
    speaker-test-4543    [002] d..2.   154.331546: prepare_playback_urb: prepare: pkt 1 [25]: avail=3733, counts=6
    speaker-test-4543    [002] d..2.   154.331546: prepare_playback_urb: prepare: pkt 1 [26]: avail=3727, counts=5
    speaker-test-4543    [002] d..2.   154.331547: prepare_playback_urb: prepare: pkt 1 [27]: avail=3722, counts=6
    speaker-test-4543    [002] d..2.   154.331547: prepare_playback_urb: prepare: pkt 1 [28]: avail=3716, counts=5
    speaker-test-4543    [002] d..2.   154.331548: prepare_playback_urb: prepare: pkt 1 [29]: avail=3711, counts=6
    speaker-test-4543    [002] d..2.   154.331548: prepare_playback_urb: prepare: pkt 1 [30]: avail=3705, counts=5
    speaker-test-4543    [002] d..2.   154.331549: prepare_playback_urb: prepare: pkt 1 [31]: avail=3700, counts=6
    speaker-test-4543    [002] d..2.   154.331549: prepare_playback_urb: prepare: pkt 1 [32]: avail=3694, counts=5
    speaker-test-4543    [002] d..2.   154.331550: prepare_playback_urb: prepare: pkt 1 [33]: avail=3689, counts=6
    speaker-test-4543    [002] d..2.   154.331551: prepare_playback_urb: prepare: pkt 1 [34]: avail=3683, counts=5
    speaker-test-4543    [002] d..2.   154.331551: prepare_playback_urb: prepare: pkt 1 [35]: avail=3678, counts=6
    speaker-test-4543    [002] d..2.   154.331552: prepare_playback_urb: prepare: pkt 1 [36]: avail=3672, counts=5
    speaker-test-4543    [002] d..2.   154.331552: prepare_playback_urb: prepare: pkt 1 [37]: avail=3667, counts=6
    speaker-test-4543    [002] d..2.   154.331553: prepare_playback_urb: prepare: pkt 1 [38]: avail=3661, counts=6
    speaker-test-4543    [002] d..2.   154.331553: prepare_playback_urb: prepare: pkt 1 [39]: avail=3655, counts=5
    speaker-test-4543    [002] d..2.   154.331554: prepare_playback_urb: prepare: pkt 1 [40]: avail=3650, counts=6
    speaker-test-4543    [002] d..2.   154.331555: urb_ctx_queue_advance: PCM bytes=904, queued=904, inflight=1808, hwptr=1808
    speaker-test-4543    [002] d..1.   154.331556: snd_usb_endpoint_start: start: pkt 1 submitted
    speaker-test-4543    [002] d..2.   154.331567: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=452, avail=3644
    speaker-test-4543    [002] d..2.   154.331567: prepare_playback_urb: prepare: pkt 2 [0]: avail=3644, counts=5
    speaker-test-4543    [002] d..2.   154.331568: prepare_playback_urb: prepare: pkt 2 [1]: avail=3639, counts=6
    speaker-test-4543    [002] d..2.   154.331569: prepare_playback_urb: prepare: pkt 2 [2]: avail=3633, counts=5
    speaker-test-4543    [002] d..2.   154.331570: prepare_playback_urb: prepare: pkt 2 [3]: avail=3628, counts=6
    speaker-test-4543    [002] d..2.   154.331570: prepare_playback_urb: prepare: pkt 2 [4]: avail=3622, counts=5
    speaker-test-4543    [002] d..2.   154.331571: prepare_playback_urb: prepare: pkt 2 [5]: avail=3617, counts=6
    speaker-test-4543    [002] d..2.   154.331571: prepare_playback_urb: prepare: pkt 2 [6]: avail=3611, counts=5
    speaker-test-4543    [002] d..2.   154.331572: prepare_playback_urb: prepare: pkt 2 [7]: avail=3606, counts=6
    speaker-test-4543    [002] d..2.   154.331572: prepare_playback_urb: prepare: pkt 2 [8]: avail=3600, counts=5
    speaker-test-4543    [002] d..2.   154.331573: prepare_playback_urb: prepare: pkt 2 [9]: avail=3595, counts=6
    speaker-test-4543    [002] d..2.   154.331574: prepare_playback_urb: prepare: pkt 2 [10]: avail=3589, counts=5
    speaker-test-4543    [002] d..2.   154.331574: prepare_playback_urb: prepare: pkt 2 [11]: avail=3584, counts=6
    speaker-test-4543    [002] d..2.   154.331575: prepare_playback_urb: prepare: pkt 2 [12]: avail=3578, counts=5
    speaker-test-4543    [002] d..2.   154.331575: prepare_playback_urb: prepare: pkt 2 [13]: avail=3573, counts=6
    speaker-test-4543    [002] d..2.   154.331576: prepare_playback_urb: prepare: pkt 2 [14]: avail=3567, counts=5
    speaker-test-4543    [002] d..2.   154.331576: prepare_playback_urb: prepare: pkt 2 [15]: avail=3562, counts=6
    speaker-test-4543    [002] d..2.   154.331577: prepare_playback_urb: prepare: pkt 2 [16]: avail=3556, counts=5
    speaker-test-4543    [002] d..2.   154.331577: prepare_playback_urb: prepare: pkt 2 [17]: avail=3551, counts=6
    speaker-test-4543    [002] d..2.   154.331578: prepare_playback_urb: prepare: pkt 2 [18]: avail=3545, counts=5
    speaker-test-4543    [002] d..2.   154.331578: prepare_playback_urb: prepare: pkt 2 [19]: avail=3540, counts=6
    speaker-test-4543    [002] d..2.   154.331579: prepare_playback_urb: prepare: pkt 2 [20]: avail=3534, counts=5
    speaker-test-4543    [002] d..2.   154.331579: prepare_playback_urb: prepare: pkt 2 [21]: avail=3529, counts=6
    speaker-test-4543    [002] d..2.   154.331580: prepare_playback_urb: prepare: pkt 2 [22]: avail=3523, counts=5
    speaker-test-4543    [002] d..2.   154.331581: prepare_playback_urb: prepare: pkt 2 [23]: avail=3518, counts=6
    speaker-test-4543    [002] d..2.   154.331581: prepare_playback_urb: prepare: pkt 2 [24]: avail=3512, counts=5
    speaker-test-4543    [002] d..2.   154.331582: prepare_playback_urb: prepare: pkt 2 [25]: avail=3507, counts=6
    speaker-test-4543    [002] d..2.   154.331582: prepare_playback_urb: prepare: pkt 2 [26]: avail=3501, counts=5
    speaker-test-4543    [002] d..2.   154.331583: prepare_playback_urb: prepare: pkt 2 [27]: avail=3496, counts=6
    speaker-test-4543    [002] d..2.   154.331583: prepare_playback_urb: prepare: pkt 2 [28]: avail=3490, counts=5
    speaker-test-4543    [002] d..2.   154.331584: prepare_playback_urb: prepare: pkt 2 [29]: avail=3485, counts=6
    speaker-test-4543    [002] d..2.   154.331584: prepare_playback_urb: prepare: pkt 2 [30]: avail=3479, counts=5
    speaker-test-4543    [002] d..2.   154.331585: prepare_playback_urb: prepare: pkt 2 [31]: avail=3474, counts=6
    speaker-test-4543    [002] d..2.   154.331585: prepare_playback_urb: prepare: pkt 2 [32]: avail=3468, counts=5
    speaker-test-4543    [002] d..2.   154.331586: prepare_playback_urb: prepare: pkt 2 [33]: avail=3463, counts=6
    speaker-test-4543    [002] d..2.   154.331586: prepare_playback_urb: prepare: pkt 2 [34]: avail=3457, counts=5
    speaker-test-4543    [002] d..2.   154.331587: prepare_playback_urb: prepare: pkt 2 [35]: avail=3452, counts=6
    speaker-test-4543    [002] d..2.   154.331587: prepare_playback_urb: prepare: pkt 2 [36]: avail=3446, counts=5
    speaker-test-4543    [002] d..2.   154.331588: prepare_playback_urb: prepare: pkt 2 [37]: avail=3441, counts=6
    speaker-test-4543    [002] d..2.   154.331588: prepare_playback_urb: prepare: pkt 2 [38]: avail=3435, counts=6
    speaker-test-4543    [002] d..2.   154.331589: prepare_playback_urb: prepare: pkt 2 [39]: avail=3429, counts=5
    speaker-test-4543    [002] d..2.   154.331589: prepare_playback_urb: prepare: pkt 2 [40]: avail=3424, counts=6
    speaker-test-4543    [002] d..2.   154.331590: urb_ctx_queue_advance: PCM bytes=904, queued=904, inflight=2712, hwptr=2712
    speaker-test-4543    [002] d..1.   154.331592: snd_usb_endpoint_start: start: pkt 2 submitted
          <idle>-0       [010] ..s1.   154.336838: snd_complete_urb: pkt complete 0
          <idle>-0       [010] ..s1.   154.336841: push_back_to_ready_list: pkt 0 push back
          <idle>-0       [010] ..s1.   154.336843: snd_usb_queue_pending_output_urbs: checking queue pkt 0 (active_mask=6)
          <idle>-0       [010] d.s2.   154.336845: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=678, avail=3418
          <idle>-0       [010] d.s2.   154.336846: prepare_playback_urb: prepare: pkt 0 [0]: avail=3418, counts=5
          <idle>-0       [010] d.s2.   154.336846: prepare_playback_urb: prepare: pkt 0 [1]: avail=3413, counts=6
          <idle>-0       [010] d.s2.   154.336847: prepare_playback_urb: prepare: pkt 0 [2]: avail=3407, counts=5
          <idle>-0       [010] d.s2.   154.336848: prepare_playback_urb: prepare: pkt 0 [3]: avail=3402, counts=6
          <idle>-0       [010] d.s2.   154.336848: prepare_playback_urb: prepare: pkt 0 [4]: avail=3396, counts=5
          <idle>-0       [010] d.s2.   154.336849: prepare_playback_urb: prepare: pkt 0 [5]: avail=3391, counts=6
          <idle>-0       [010] d.s2.   154.336849: prepare_playback_urb: prepare: pkt 0 [6]: avail=3385, counts=5
          <idle>-0       [010] d.s2.   154.336850: prepare_playback_urb: prepare: pkt 0 [7]: avail=3380, counts=6
          <idle>-0       [010] d.s2.   154.336850: prepare_playback_urb: prepare: pkt 0 [8]: avail=3374, counts=5
          <idle>-0       [010] d.s2.   154.336851: prepare_playback_urb: prepare: pkt 0 [9]: avail=3369, counts=6
          <idle>-0       [010] d.s2.   154.336851: prepare_playback_urb: prepare: pkt 0 [10]: avail=3363, counts=5
          <idle>-0       [010] d.s2.   154.336852: prepare_playback_urb: prepare: pkt 0 [11]: avail=3358, counts=6
          <idle>-0       [010] d.s2.   154.336853: prepare_playback_urb: prepare: pkt 0 [12]: avail=3352, counts=5
          <idle>-0       [010] d.s2.   154.336853: prepare_playback_urb: prepare: pkt 0 [13]: avail=3347, counts=6
          <idle>-0       [010] d.s2.   154.336854: prepare_playback_urb: prepare: pkt 0 [14]: avail=3341, counts=5
          <idle>-0       [010] d.s2.   154.336854: prepare_playback_urb: prepare: pkt 0 [15]: avail=3336, counts=6
          <idle>-0       [010] d.s2.   154.336855: prepare_playback_urb: prepare: pkt 0 [16]: avail=3330, counts=5
          <idle>-0       [010] d.s2.   154.336855: prepare_playback_urb: prepare: pkt 0 [17]: avail=3325, counts=6
          <idle>-0       [010] d.s2.   154.336856: prepare_playback_urb: prepare: pkt 0 [18]: avail=3319, counts=5
          <idle>-0       [010] d.s2.   154.336856: prepare_playback_urb: prepare: pkt 0 [19]: avail=3314, counts=6
          <idle>-0       [010] d.s2.   154.336857: prepare_playback_urb: prepare: pkt 0 [20]: avail=3308, counts=5
          <idle>-0       [010] d.s2.   154.336857: prepare_playback_urb: prepare: pkt 0 [21]: avail=3303, counts=6
          <idle>-0       [010] d.s2.   154.336858: prepare_playback_urb: prepare: pkt 0 [22]: avail=3297, counts=5
          <idle>-0       [010] d.s2.   154.336858: prepare_playback_urb: prepare: pkt 0 [23]: avail=3292, counts=6
          <idle>-0       [010] d.s2.   154.336859: prepare_playback_urb: prepare: pkt 0 [24]: avail=3286, counts=5
          <idle>-0       [010] d.s2.   154.336859: prepare_playback_urb: prepare: pkt 0 [25]: avail=3281, counts=6
          <idle>-0       [010] d.s2.   154.336860: prepare_playback_urb: prepare: pkt 0 [26]: avail=3275, counts=5
          <idle>-0       [010] d.s2.   154.336860: prepare_playback_urb: prepare: pkt 0 [27]: avail=3270, counts=6
          <idle>-0       [010] d.s2.   154.336861: prepare_playback_urb: prepare: pkt 0 [28]: avail=3264, counts=5
          <idle>-0       [010] d.s2.   154.336862: prepare_playback_urb: prepare: pkt 0 [29]: avail=3259, counts=6
          <idle>-0       [010] d.s2.   154.336862: prepare_playback_urb: prepare: pkt 0 [30]: avail=3253, counts=5
          <idle>-0       [010] d.s2.   154.336863: prepare_playback_urb: prepare: pkt 0 [31]: avail=3248, counts=6
          <idle>-0       [010] d.s2.   154.336863: prepare_playback_urb: prepare: pkt 0 [32]: avail=3242, counts=5
          <idle>-0       [010] d.s2.   154.336864: prepare_playback_urb: prepare: pkt 0 [33]: avail=3237, counts=6
          <idle>-0       [010] d.s2.   154.336864: prepare_playback_urb: prepare: pkt 0 [34]: avail=3231, counts=5
          <idle>-0       [010] d.s2.   154.336865: prepare_playback_urb: prepare: pkt 0 [35]: avail=3226, counts=6
          <idle>-0       [010] d.s2.   154.336865: prepare_playback_urb: prepare: pkt 0 [36]: avail=3220, counts=6
          <idle>-0       [010] d.s2.   154.336866: prepare_playback_urb: prepare: pkt 0 [37]: avail=3214, counts=5
          <idle>-0       [010] d.s2.   154.336866: prepare_playback_urb: prepare: pkt 0 [38]: avail=3209, counts=6
          <idle>-0       [010] d.s2.   154.336867: prepare_playback_urb: prepare: pkt 0 [39]: avail=3203, counts=5
          <idle>-0       [010] d.s2.   154.336867: prepare_playback_urb: prepare: pkt 0 [40]: avail=3198, counts=6
          <idle>-0       [010] d.s2.   154.336869: urb_ctx_queue_advance: PCM bytes=904, queued=904, inflight=2712, hwptr=3616
          <idle>-0       [010] ..s1.   154.336870: snd_usb_queue_pending_output_urbs: pkt 0 submitted
          <idle>-0       [010] ..s1.   154.341966: snd_complete_urb: pkt complete 1
          <idle>-0       [010] ..s1.   154.341969: push_back_to_ready_list: pkt 1 push back
          <idle>-0       [010] ..s1.   154.341970: snd_usb_queue_pending_output_urbs: checking queue pkt 1 (active_mask=5)
          <idle>-0       [010] d.s2.   154.341972: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=904, avail=3192
          <idle>-0       [010] d.s2.   154.341973: prepare_playback_urb: prepare: pkt 1 [0]: avail=3192, counts=5
          <idle>-0       [010] d.s2.   154.341974: prepare_playback_urb: prepare: pkt 1 [1]: avail=3187, counts=6
          <idle>-0       [010] d.s2.   154.341974: prepare_playback_urb: prepare: pkt 1 [2]: avail=3181, counts=5
          <idle>-0       [010] d.s2.   154.341975: prepare_playback_urb: prepare: pkt 1 [3]: avail=3176, counts=6
          <idle>-0       [010] d.s2.   154.341976: prepare_playback_urb: prepare: pkt 1 [4]: avail=3170, counts=5
          <idle>-0       [010] d.s2.   154.341976: prepare_playback_urb: prepare: pkt 1 [5]: avail=3165, counts=6
          <idle>-0       [010] d.s2.   154.341977: prepare_playback_urb: prepare: pkt 1 [6]: avail=3159, counts=5
          <idle>-0       [010] d.s2.   154.341978: prepare_playback_urb: prepare: pkt 1 [7]: avail=3154, counts=6
          <idle>-0       [010] d.s2.   154.341978: prepare_playback_urb: prepare: pkt 1 [8]: avail=3148, counts=5
          <idle>-0       [010] d.s2.   154.341979: prepare_playback_urb: prepare: pkt 1 [9]: avail=3143, counts=6
          <idle>-0       [010] d.s2.   154.341979: prepare_playback_urb: prepare: pkt 1 [10]: avail=3137, counts=5
          <idle>-0       [010] d.s2.   154.341980: prepare_playback_urb: prepare: pkt 1 [11]: avail=3132, counts=6
          <idle>-0       [010] d.s2.   154.341981: prepare_playback_urb: prepare: pkt 1 [12]: avail=3126, counts=5
          <idle>-0       [010] d.s2.   154.341981: prepare_playback_urb: prepare: pkt 1 [13]: avail=3121, counts=6
          <idle>-0       [010] d.s2.   154.341982: prepare_playback_urb: prepare: pkt 1 [14]: avail=3115, counts=5
          <idle>-0       [010] d.s2.   154.341982: prepare_playback_urb: prepare: pkt 1 [15]: avail=3110, counts=6
          <idle>-0       [010] d.s2.   154.341983: prepare_playback_urb: prepare: pkt 1 [16]: avail=3104, counts=5
          <idle>-0       [010] d.s2.   154.341983: prepare_playback_urb: prepare: pkt 1 [17]: avail=3099, counts=6
          <idle>-0       [010] d.s2.   154.341984: prepare_playback_urb: prepare: pkt 1 [18]: avail=3093, counts=5
          <idle>-0       [010] d.s2.   154.341984: prepare_playback_urb: prepare: pkt 1 [19]: avail=3088, counts=6
          <idle>-0       [010] d.s2.   154.341985: prepare_playback_urb: prepare: pkt 1 [20]: avail=3082, counts=5
          <idle>-0       [010] d.s2.   154.341985: prepare_playback_urb: prepare: pkt 1 [21]: avail=3077, counts=6
          <idle>-0       [010] d.s2.   154.341987: urb_ctx_queue_advance: PCM bytes=484, queued=484, inflight=2292, hwptr=4100
          <idle>-0       [010] ..s1.   154.342008: snd_usb_queue_pending_output_urbs: pkt 1 submitted
          <idle>-0       [010] ..s1.   154.347087: snd_complete_urb: pkt complete 2
          <idle>-0       [010] ..s1.   154.347089: push_back_to_ready_list: pkt 2 push back
          <idle>-0       [010] ..s1.   154.347091: snd_usb_queue_pending_output_urbs: checking queue pkt 2 (active_mask=3)
          <idle>-0       [010] d.s2.   154.347093: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=1025, avail=3071
          <idle>-0       [010] d.s2.   154.347094: prepare_playback_urb: prepare: pkt 2 [0]: avail=3071, counts=5
          <idle>-0       [010] d.s2.   154.347095: prepare_playback_urb: prepare: pkt 2 [1]: avail=3066, counts=6
          <idle>-0       [010] d.s2.   154.347095: prepare_playback_urb: prepare: pkt 2 [2]: avail=3060, counts=5
          <idle>-0       [010] d.s2.   154.347096: prepare_playback_urb: prepare: pkt 2 [3]: avail=3055, counts=6
          <idle>-0       [010] d.s2.   154.347096: prepare_playback_urb: prepare: pkt 2 [4]: avail=3049, counts=5
          <idle>-0       [010] d.s2.   154.347097: prepare_playback_urb: prepare: pkt 2 [5]: avail=3044, counts=6
          <idle>-0       [010] d.s2.   154.347098: prepare_playback_urb: prepare: pkt 2 [6]: avail=3038, counts=5
          <idle>-0       [010] d.s2.   154.347098: prepare_playback_urb: prepare: pkt 2 [7]: avail=3033, counts=6
          <idle>-0       [010] d.s2.   154.347099: prepare_playback_urb: prepare: pkt 2 [8]: avail=3027, counts=5
          <idle>-0       [010] d.s2.   154.347099: prepare_playback_urb: prepare: pkt 2 [9]: avail=3022, counts=6
          <idle>-0       [010] d.s2.   154.347100: prepare_playback_urb: prepare: pkt 2 [10]: avail=3016, counts=5
          <idle>-0       [010] d.s2.   154.347100: prepare_playback_urb: prepare: pkt 2 [11]: avail=3011, counts=6
          <idle>-0       [010] d.s2.   154.347101: prepare_playback_urb: prepare: pkt 2 [12]: avail=3005, counts=5
          <idle>-0       [010] d.s2.   154.347101: prepare_playback_urb: prepare: pkt 2 [13]: avail=3000, counts=6
          <idle>-0       [010] d.s2.   154.347102: prepare_playback_urb: prepare: pkt 2 [14]: avail=2994, counts=6
          <idle>-0       [010] d.s2.   154.347102: prepare_playback_urb: prepare: pkt 2 [15]: avail=2988, counts=5
          <idle>-0       [010] d.s2.   154.347103: prepare_playback_urb: prepare: pkt 2 [16]: avail=2983, counts=6
          <idle>-0       [010] d.s2.   154.347104: prepare_playback_urb: prepare: pkt 2 [17]: avail=2977, counts=5
          <idle>-0       [010] d.s2.   154.347104: prepare_playback_urb: prepare: pkt 2 [18]: avail=2972, counts=6
          <idle>-0       [010] d.s2.   154.347105: prepare_playback_urb: prepare: pkt 2 [19]: avail=2966, counts=5
          <idle>-0       [010] d.s2.   154.347105: prepare_playback_urb: prepare: pkt 2 [20]: avail=2961, counts=6
          <idle>-0       [010] d.s2.   154.347106: prepare_playback_urb: prepare: pkt 2 [21]: avail=2955, counts=5
          <idle>-0       [010] d.s2.   154.347106: prepare_playback_urb: prepare: pkt 2 [22]: avail=2950, counts=6
          <idle>-0       [010] d.s2.   154.347107: prepare_playback_urb: prepare: pkt 2 [23]: avail=2944, counts=5
          <idle>-0       [010] d.s2.   154.347107: prepare_playback_urb: prepare: pkt 2 [24]: avail=2939, counts=6
          <idle>-0       [010] d.s2.   154.347108: prepare_playback_urb: prepare: pkt 2 [25]: avail=2933, counts=5
          <idle>-0       [010] d.s2.   154.347108: prepare_playback_urb: prepare: pkt 2 [26]: avail=2928, counts=6
          <idle>-0       [010] d.s2.   154.347109: prepare_playback_urb: prepare: pkt 2 [27]: avail=2922, counts=5
          <idle>-0       [010] d.s2.   154.347109: prepare_playback_urb: prepare: pkt 2 [28]: avail=2917, counts=6
          <idle>-0       [010] d.s2.   154.347110: prepare_playback_urb: prepare: pkt 2 [29]: avail=2911, counts=5
          <idle>-0       [010] d.s2.   154.347111: prepare_playback_urb: prepare: pkt 2 [30]: avail=2906, counts=6
          <idle>-0       [010] d.s2.   154.347111: prepare_playback_urb: prepare: pkt 2 [31]: avail=2900, counts=5
          <idle>-0       [010] d.s2.   154.347112: prepare_playback_urb: prepare: pkt 2 [32]: avail=2895, counts=6
          <idle>-0       [010] d.s2.   154.347112: prepare_playback_urb: prepare: pkt 2 [33]: avail=2889, counts=5
          <idle>-0       [010] d.s2.   154.347113: prepare_playback_urb: prepare: pkt 2 [34]: avail=2884, counts=6
          <idle>-0       [010] d.s2.   154.347113: prepare_playback_urb: prepare: pkt 2 [35]: avail=2878, counts=5
          <idle>-0       [010] d.s2.   154.347114: prepare_playback_urb: prepare: pkt 2 [36]: avail=2873, counts=6
          <idle>-0       [010] d.s2.   154.347115: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2204, hwptr=4916
          <idle>-0       [010] ..s1.   154.347116: snd_usb_queue_pending_output_urbs: pkt 2 submitted
          <idle>-0       [010] ..s1.   154.352212: snd_complete_urb: pkt complete 0
          <idle>-0       [010] ..s1.   154.352215: push_back_to_ready_list: pkt 0 push back
          <idle>-0       [010] ..s1.   154.352217: snd_usb_queue_pending_output_urbs: checking queue pkt 0 (active_mask=6)
          <idle>-0       [010] d.s2.   154.352219: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=1229, avail=2867
          <idle>-0       [010] d.s2.   154.352219: prepare_playback_urb: prepare: pkt 0 [0]: avail=2867, counts=5
          <idle>-0       [010] d.s2.   154.352220: prepare_playback_urb: prepare: pkt 0 [1]: avail=2862, counts=6
          <idle>-0       [010] d.s2.   154.352221: prepare_playback_urb: prepare: pkt 0 [2]: avail=2856, counts=5
          <idle>-0       [010] d.s2.   154.352221: prepare_playback_urb: prepare: pkt 0 [3]: avail=2851, counts=6
          <idle>-0       [010] d.s2.   154.352222: prepare_playback_urb: prepare: pkt 0 [4]: avail=2845, counts=5
          <idle>-0       [010] d.s2.   154.352223: prepare_playback_urb: prepare: pkt 0 [5]: avail=2840, counts=6
          <idle>-0       [010] d.s2.   154.352223: prepare_playback_urb: prepare: pkt 0 [6]: avail=2834, counts=5
          <idle>-0       [010] d.s2.   154.352224: prepare_playback_urb: prepare: pkt 0 [7]: avail=2829, counts=6
          <idle>-0       [010] d.s2.   154.352224: prepare_playback_urb: prepare: pkt 0 [8]: avail=2823, counts=5
          <idle>-0       [010] d.s2.   154.352225: prepare_playback_urb: prepare: pkt 0 [9]: avail=2818, counts=6
          <idle>-0       [010] d.s2.   154.352225: prepare_playback_urb: prepare: pkt 0 [10]: avail=2812, counts=5
          <idle>-0       [010] d.s2.   154.352226: prepare_playback_urb: prepare: pkt 0 [11]: avail=2807, counts=6
          <idle>-0       [010] d.s2.   154.352226: prepare_playback_urb: prepare: pkt 0 [12]: avail=2801, counts=5
          <idle>-0       [010] d.s2.   154.352227: prepare_playback_urb: prepare: pkt 0 [13]: avail=2796, counts=6
          <idle>-0       [010] d.s2.   154.352227: prepare_playback_urb: prepare: pkt 0 [14]: avail=2790, counts=5
          <idle>-0       [010] d.s2.   154.352228: prepare_playback_urb: prepare: pkt 0 [15]: avail=2785, counts=6
          <idle>-0       [010] d.s2.   154.352229: prepare_playback_urb: prepare: pkt 0 [16]: avail=2779, counts=6
          <idle>-0       [010] d.s2.   154.352229: prepare_playback_urb: prepare: pkt 0 [17]: avail=2773, counts=5
          <idle>-0       [010] d.s2.   154.352230: prepare_playback_urb: prepare: pkt 0 [18]: avail=2768, counts=6
          <idle>-0       [010] d.s2.   154.352230: prepare_playback_urb: prepare: pkt 0 [19]: avail=2762, counts=5
          <idle>-0       [010] d.s2.   154.352231: prepare_playback_urb: prepare: pkt 0 [20]: avail=2757, counts=6
          <idle>-0       [010] d.s2.   154.352231: prepare_playback_urb: prepare: pkt 0 [21]: avail=2751, counts=5
          <idle>-0       [010] d.s2.   154.352232: prepare_playback_urb: prepare: pkt 0 [22]: avail=2746, counts=6
          <idle>-0       [010] d.s2.   154.352232: prepare_playback_urb: prepare: pkt 0 [23]: avail=2740, counts=5
          <idle>-0       [010] d.s2.   154.352233: prepare_playback_urb: prepare: pkt 0 [24]: avail=2735, counts=6
          <idle>-0       [010] d.s2.   154.352233: prepare_playback_urb: prepare: pkt 0 [25]: avail=2729, counts=5
          <idle>-0       [010] d.s2.   154.352234: prepare_playback_urb: prepare: pkt 0 [26]: avail=2724, counts=6
          <idle>-0       [010] d.s2.   154.352234: prepare_playback_urb: prepare: pkt 0 [27]: avail=2718, counts=5
          <idle>-0       [010] d.s2.   154.352235: prepare_playback_urb: prepare: pkt 0 [28]: avail=2713, counts=6
          <idle>-0       [010] d.s2.   154.352236: prepare_playback_urb: prepare: pkt 0 [29]: avail=2707, counts=5
          <idle>-0       [010] d.s2.   154.352236: prepare_playback_urb: prepare: pkt 0 [30]: avail=2702, counts=6
          <idle>-0       [010] d.s2.   154.352237: prepare_playback_urb: prepare: pkt 0 [31]: avail=2696, counts=5
          <idle>-0       [010] d.s2.   154.352238: prepare_playback_urb: prepare: pkt 0 [32]: avail=2691, counts=6
          <idle>-0       [010] d.s2.   154.352238: prepare_playback_urb: prepare: pkt 0 [33]: avail=2685, counts=5
          <idle>-0       [010] d.s2.   154.352239: prepare_playback_urb: prepare: pkt 0 [34]: avail=2680, counts=6
          <idle>-0       [010] d.s2.   154.352239: prepare_playback_urb: prepare: pkt 0 [35]: avail=2674, counts=5
          <idle>-0       [010] d.s2.   154.352240: prepare_playback_urb: prepare: pkt 0 [36]: avail=2669, counts=6
          <idle>-0       [010] d.s2.   154.352240: prepare_playback_urb: prepare: pkt 0 [37]: avail=2663, counts=5
          <idle>-0       [010] d.s2.   154.352242: urb_ctx_queue_advance: PCM bytes=836, queued=836, inflight=2136, hwptr=5752
          <idle>-0       [010] ..s1.   154.352243: snd_usb_queue_pending_output_urbs: pkt 0 submitted
          <idle>-0       [010] ..s1.   154.354970: snd_complete_urb: pkt complete 1
          <idle>-0       [010] ..s1.   154.354972: push_back_to_ready_list: pkt 1 push back
          <idle>-0       [010] ..s1.   154.354974: snd_usb_queue_pending_output_urbs: checking queue pkt 1 (active_mask=5)
          <idle>-0       [010] d.s2.   154.354976: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=1438, avail=2658
          <idle>-0       [010] d.s2.   154.354977: prepare_playback_urb: prepare: pkt 1 [0]: avail=2658, counts=6
          <idle>-0       [010] d.s2.   154.354978: prepare_playback_urb: prepare: pkt 1 [1]: avail=2652, counts=5
          <idle>-0       [010] d.s2.   154.354978: prepare_playback_urb: prepare: pkt 1 [2]: avail=2647, counts=6
          <idle>-0       [010] d.s2.   154.354979: prepare_playback_urb: prepare: pkt 1 [3]: avail=2641, counts=5
          <idle>-0       [010] d.s2.   154.354979: prepare_playback_urb: prepare: pkt 1 [4]: avail=2636, counts=6
          <idle>-0       [010] d.s2.   154.354980: prepare_playback_urb: prepare: pkt 1 [5]: avail=2630, counts=5
          <idle>-0       [010] d.s2.   154.354980: prepare_playback_urb: prepare: pkt 1 [6]: avail=2625, counts=6
          <idle>-0       [010] d.s2.   154.354981: prepare_playback_urb: prepare: pkt 1 [7]: avail=2619, counts=5
          <idle>-0       [010] d.s2.   154.354981: prepare_playback_urb: prepare: pkt 1 [8]: avail=2614, counts=6
          <idle>-0       [010] d.s2.   154.354982: prepare_playback_urb: prepare: pkt 1 [9]: avail=2608, counts=5
          <idle>-0       [010] d.s2.   154.354983: prepare_playback_urb: prepare: pkt 1 [10]: avail=2603, counts=6
          <idle>-0       [010] d.s2.   154.354983: prepare_playback_urb: prepare: pkt 1 [11]: avail=2597, counts=5
          <idle>-0       [010] d.s2.   154.354984: prepare_playback_urb: prepare: pkt 1 [12]: avail=2592, counts=6
          <idle>-0       [010] d.s2.   154.354984: prepare_playback_urb: prepare: pkt 1 [13]: avail=2586, counts=5
          <idle>-0       [010] d.s2.   154.354985: prepare_playback_urb: prepare: pkt 1 [14]: avail=2581, counts=6
          <idle>-0       [010] d.s2.   154.354985: prepare_playback_urb: prepare: pkt 1 [15]: avail=2575, counts=5
          <idle>-0       [010] d.s2.   154.354986: prepare_playback_urb: prepare: pkt 1 [16]: avail=2570, counts=6
          <idle>-0       [010] d.s2.   154.354986: prepare_playback_urb: prepare: pkt 1 [17]: avail=2564, counts=5
          <idle>-0       [010] d.s2.   154.354987: prepare_playback_urb: prepare: pkt 1 [18]: avail=2559, counts=6
          <idle>-0       [010] d.s2.   154.354987: prepare_playback_urb: prepare: pkt 1 [19]: avail=2553, counts=6
          <idle>-0       [010] d.s2.   154.354988: prepare_playback_urb: prepare: pkt 1 [20]: avail=2547, counts=5
          <idle>-0       [010] d.s2.   154.354988: prepare_playback_urb: prepare: pkt 1 [21]: avail=2542, counts=6
          <idle>-0       [010] d.s2.   154.354989: prepare_playback_urb: prepare: pkt 1 [22]: avail=2536, counts=5
          <idle>-0       [010] d.s2.   154.354989: prepare_playback_urb: prepare: pkt 1 [23]: avail=2531, counts=6
          <idle>-0       [010] d.s2.   154.354990: prepare_playback_urb: prepare: pkt 1 [24]: avail=2525, counts=5
          <idle>-0       [010] d.s2.   154.354990: prepare_playback_urb: prepare: pkt 1 [25]: avail=2520, counts=6
          <idle>-0       [010] d.s2.   154.354991: prepare_playback_urb: prepare: pkt 1 [26]: avail=2514, counts=5
          <idle>-0       [010] d.s2.   154.354991: prepare_playback_urb: prepare: pkt 1 [27]: avail=2509, counts=6
          <idle>-0       [010] d.s2.   154.354992: prepare_playback_urb: prepare: pkt 1 [28]: avail=2503, counts=5
          <idle>-0       [010] d.s2.   154.354992: prepare_playback_urb: prepare: pkt 1 [29]: avail=2498, counts=6
          <idle>-0       [010] d.s2.   154.354993: prepare_playback_urb: prepare: pkt 1 [30]: avail=2492, counts=5
          <idle>-0       [010] d.s2.   154.354993: prepare_playback_urb: prepare: pkt 1 [31]: avail=2487, counts=6
          <idle>-0       [010] d.s2.   154.354994: prepare_playback_urb: prepare: pkt 1 [32]: avail=2481, counts=5
          <idle>-0       [010] d.s2.   154.354994: prepare_playback_urb: prepare: pkt 1 [33]: avail=2476, counts=6
          <idle>-0       [010] d.s2.   154.354995: prepare_playback_urb: prepare: pkt 1 [34]: avail=2470, counts=5
          <idle>-0       [010] d.s2.   154.354995: prepare_playback_urb: prepare: pkt 1 [35]: avail=2465, counts=6
          <idle>-0       [010] d.s2.   154.354996: prepare_playback_urb: prepare: pkt 1 [36]: avail=2459, counts=5
          <idle>-0       [010] d.s2.   154.354997: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2468, hwptr=6568
          <idle>-0       [010] ..s1.   154.354999: snd_usb_queue_pending_output_urbs: pkt 1 submitted
          <idle>-0       [010] ..s1.   154.359528: snd_complete_urb: pkt complete 2
          <idle>-0       [010] ..s1.   154.359530: push_back_to_ready_list: pkt 2 push back
          <idle>-0       [010] ..s1.   154.359532: snd_usb_queue_pending_output_urbs: checking queue pkt 2 (active_mask=3)
          <idle>-0       [010] d.s2.   154.359534: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=1642, avail=2454
          <idle>-0       [010] d.s2.   154.359535: prepare_playback_urb: prepare: pkt 2 [0]: avail=2454, counts=6
          <idle>-0       [010] d.s2.   154.359535: prepare_playback_urb: prepare: pkt 2 [1]: avail=2448, counts=5
          <idle>-0       [010] d.s2.   154.359536: prepare_playback_urb: prepare: pkt 2 [2]: avail=2443, counts=6
          <idle>-0       [010] d.s2.   154.359537: prepare_playback_urb: prepare: pkt 2 [3]: avail=2437, counts=5
          <idle>-0       [010] d.s2.   154.359537: prepare_playback_urb: prepare: pkt 2 [4]: avail=2432, counts=6
          <idle>-0       [010] d.s2.   154.359538: prepare_playback_urb: prepare: pkt 2 [5]: avail=2426, counts=5
          <idle>-0       [010] d.s2.   154.359538: prepare_playback_urb: prepare: pkt 2 [6]: avail=2421, counts=6
          <idle>-0       [010] d.s2.   154.359539: prepare_playback_urb: prepare: pkt 2 [7]: avail=2415, counts=5
          <idle>-0       [010] d.s2.   154.359539: prepare_playback_urb: prepare: pkt 2 [8]: avail=2410, counts=6
          <idle>-0       [010] d.s2.   154.359540: prepare_playback_urb: prepare: pkt 2 [9]: avail=2404, counts=5
          <idle>-0       [010] d.s2.   154.359540: prepare_playback_urb: prepare: pkt 2 [10]: avail=2399, counts=6
          <idle>-0       [010] d.s2.   154.359541: prepare_playback_urb: prepare: pkt 2 [11]: avail=2393, counts=5
          <idle>-0       [010] d.s2.   154.359541: prepare_playback_urb: prepare: pkt 2 [12]: avail=2388, counts=6
          <idle>-0       [010] d.s2.   154.359542: prepare_playback_urb: prepare: pkt 2 [13]: avail=2382, counts=5
          <idle>-0       [010] d.s2.   154.359542: prepare_playback_urb: prepare: pkt 2 [14]: avail=2377, counts=6
          <idle>-0       [010] d.s2.   154.359543: prepare_playback_urb: prepare: pkt 2 [15]: avail=2371, counts=5
          <idle>-0       [010] d.s2.   154.359544: prepare_playback_urb: prepare: pkt 2 [16]: avail=2366, counts=6
          <idle>-0       [010] d.s2.   154.359544: prepare_playback_urb: prepare: pkt 2 [17]: avail=2360, counts=5
          <idle>-0       [010] d.s2.   154.359545: prepare_playback_urb: prepare: pkt 2 [18]: avail=2355, counts=6
          <idle>-0       [010] d.s2.   154.359545: prepare_playback_urb: prepare: pkt 2 [19]: avail=2349, counts=5
          <idle>-0       [010] d.s2.   154.359546: prepare_playback_urb: prepare: pkt 2 [20]: avail=2344, counts=6
          <idle>-0       [010] d.s2.   154.359546: prepare_playback_urb: prepare: pkt 2 [21]: avail=2338, counts=6
          <idle>-0       [010] d.s2.   154.359547: prepare_playback_urb: prepare: pkt 2 [22]: avail=2332, counts=5
          <idle>-0       [010] d.s2.   154.359547: prepare_playback_urb: prepare: pkt 2 [23]: avail=2327, counts=6
          <idle>-0       [010] d.s2.   154.359548: prepare_playback_urb: prepare: pkt 2 [24]: avail=2321, counts=5
          <idle>-0       [010] d.s2.   154.359548: prepare_playback_urb: prepare: pkt 2 [25]: avail=2316, counts=6
          <idle>-0       [010] d.s2.   154.359549: prepare_playback_urb: prepare: pkt 2 [26]: avail=2310, counts=5
          <idle>-0       [010] d.s2.   154.359549: prepare_playback_urb: prepare: pkt 2 [27]: avail=2305, counts=6
          <idle>-0       [010] d.s2.   154.359550: prepare_playback_urb: prepare: pkt 2 [28]: avail=2299, counts=5
          <idle>-0       [010] d.s2.   154.359550: prepare_playback_urb: prepare: pkt 2 [29]: avail=2294, counts=6
          <idle>-0       [010] d.s2.   154.359551: prepare_playback_urb: prepare: pkt 2 [30]: avail=2288, counts=5
          <idle>-0       [010] d.s2.   154.359551: prepare_playback_urb: prepare: pkt 2 [31]: avail=2283, counts=6
          <idle>-0       [010] d.s2.   154.359552: prepare_playback_urb: prepare: pkt 2 [32]: avail=2277, counts=5
          <idle>-0       [010] d.s2.   154.359552: prepare_playback_urb: prepare: pkt 2 [33]: avail=2272, counts=6
          <idle>-0       [010] d.s2.   154.359553: prepare_playback_urb: prepare: pkt 2 [34]: avail=2266, counts=5
          <idle>-0       [010] d.s2.   154.359554: prepare_playback_urb: prepare: pkt 2 [35]: avail=2261, counts=6
          <idle>-0       [010] d.s2.   154.359554: prepare_playback_urb: prepare: pkt 2 [36]: avail=2255, counts=5
          <idle>-0       [010] d.s2.   154.359556: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2468, hwptr=7384
          <idle>-0       [010] ..s1.   154.359557: snd_usb_queue_pending_output_urbs: pkt 2 submitted
          <idle>-0       [010] ..s1.   154.364337: snd_complete_urb: pkt complete 0
          <idle>-0       [010] ..s1.   154.364340: push_back_to_ready_list: pkt 0 push back
          <idle>-0       [010] ..s1.   154.364342: snd_usb_queue_pending_output_urbs: checking queue pkt 0 (active_mask=6)
          <idle>-0       [010] d.s2.   154.364344: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=1846, avail=2250
          <idle>-0       [010] d.s2.   154.364344: prepare_playback_urb: prepare: pkt 0 [0]: avail=2250, counts=6
          <idle>-0       [010] d.s2.   154.364345: prepare_playback_urb: prepare: pkt 0 [1]: avail=2244, counts=5
          <idle>-0       [010] d.s2.   154.364346: prepare_playback_urb: prepare: pkt 0 [2]: avail=2239, counts=6
          <idle>-0       [010] d.s2.   154.364346: prepare_playback_urb: prepare: pkt 0 [3]: avail=2233, counts=5
          <idle>-0       [010] d.s2.   154.364347: prepare_playback_urb: prepare: pkt 0 [4]: avail=2228, counts=6
          <idle>-0       [010] d.s2.   154.364348: prepare_playback_urb: prepare: pkt 0 [5]: avail=2222, counts=5
          <idle>-0       [010] d.s2.   154.364348: prepare_playback_urb: prepare: pkt 0 [6]: avail=2217, counts=6
          <idle>-0       [010] d.s2.   154.364349: prepare_playback_urb: prepare: pkt 0 [7]: avail=2211, counts=5
          <idle>-0       [010] d.s2.   154.364349: prepare_playback_urb: prepare: pkt 0 [8]: avail=2206, counts=6
          <idle>-0       [010] d.s2.   154.364350: prepare_playback_urb: prepare: pkt 0 [9]: avail=2200, counts=5
          <idle>-0       [010] d.s2.   154.364350: prepare_playback_urb: prepare: pkt 0 [10]: avail=2195, counts=6
          <idle>-0       [010] d.s2.   154.364351: prepare_playback_urb: prepare: pkt 0 [11]: avail=2189, counts=5
          <idle>-0       [010] d.s2.   154.364351: prepare_playback_urb: prepare: pkt 0 [12]: avail=2184, counts=6
          <idle>-0       [010] d.s2.   154.364352: prepare_playback_urb: prepare: pkt 0 [13]: avail=2178, counts=5
          <idle>-0       [010] d.s2.   154.364353: prepare_playback_urb: prepare: pkt 0 [14]: avail=2173, counts=6
          <idle>-0       [010] d.s2.   154.364353: prepare_playback_urb: prepare: pkt 0 [15]: avail=2167, counts=5
          <idle>-0       [010] d.s2.   154.364354: prepare_playback_urb: prepare: pkt 0 [16]: avail=2162, counts=6
          <idle>-0       [010] d.s2.   154.364354: prepare_playback_urb: prepare: pkt 0 [17]: avail=2156, counts=5
          <idle>-0       [010] d.s2.   154.364355: prepare_playback_urb: prepare: pkt 0 [18]: avail=2151, counts=6
          <idle>-0       [010] d.s2.   154.364355: prepare_playback_urb: prepare: pkt 0 [19]: avail=2145, counts=5
          <idle>-0       [010] d.s2.   154.364356: prepare_playback_urb: prepare: pkt 0 [20]: avail=2140, counts=6
          <idle>-0       [010] d.s2.   154.364356: prepare_playback_urb: prepare: pkt 0 [21]: avail=2134, counts=5
          <idle>-0       [010] d.s2.   154.364357: prepare_playback_urb: prepare: pkt 0 [22]: avail=2129, counts=6
          <idle>-0       [010] d.s2.   154.364357: prepare_playback_urb: prepare: pkt 0 [23]: avail=2123, counts=5
          <idle>-0       [010] d.s2.   154.364358: prepare_playback_urb: prepare: pkt 0 [24]: avail=2118, counts=6
          <idle>-0       [010] d.s2.   154.364358: prepare_playback_urb: prepare: pkt 0 [25]: avail=2112, counts=6
          <idle>-0       [010] d.s2.   154.364359: prepare_playback_urb: prepare: pkt 0 [26]: avail=2106, counts=5
          <idle>-0       [010] d.s2.   154.364359: prepare_playback_urb: prepare: pkt 0 [27]: avail=2101, counts=6
          <idle>-0       [010] d.s2.   154.364360: prepare_playback_urb: prepare: pkt 0 [28]: avail=2095, counts=5
          <idle>-0       [010] d.s2.   154.364360: prepare_playback_urb: prepare: pkt 0 [29]: avail=2090, counts=6
          <idle>-0       [010] d.s2.   154.364361: prepare_playback_urb: prepare: pkt 0 [30]: avail=2084, counts=5
          <idle>-0       [010] d.s2.   154.364362: prepare_playback_urb: prepare: pkt 0 [31]: avail=2079, counts=6
          <idle>-0       [010] d.s2.   154.364362: prepare_playback_urb: prepare: pkt 0 [32]: avail=2073, counts=5
          <idle>-0       [010] d.s2.   154.364363: prepare_playback_urb: prepare: pkt 0 [33]: avail=2068, counts=6
          <idle>-0       [010] d.s2.   154.364363: prepare_playback_urb: prepare: pkt 0 [34]: avail=2062, counts=5
          <idle>-0       [010] d.s2.   154.364364: prepare_playback_urb: prepare: pkt 0 [35]: avail=2057, counts=6
          <idle>-0       [010] d.s2.   154.364364: prepare_playback_urb: prepare: pkt 0 [36]: avail=2051, counts=5
          <idle>-0       [010] d.s2.   154.364365: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2448, hwptr=8200
          <idle>-0       [010] ..s1.   154.364387: snd_usb_queue_pending_output_urbs: pkt 0 submitted
          <idle>-0       [010] ..s1.   154.368907: snd_complete_urb: pkt complete 1
          <idle>-0       [010] ..s1.   154.368910: push_back_to_ready_list: pkt 1 push back
          <idle>-0       [010] ..s1.   154.368912: snd_usb_queue_pending_output_urbs: checking queue pkt 1 (active_mask=5)
          <idle>-0       [010] d.s2.   154.368914: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=2050, avail=2046
          <idle>-0       [010] d.s2.   154.368915: prepare_playback_urb: prepare: pkt 1 [0]: avail=2046, counts=6
          <idle>-0       [010] d.s2.   154.368915: prepare_playback_urb: prepare: pkt 1 [1]: avail=2040, counts=5
          <idle>-0       [010] d.s2.   154.368916: prepare_playback_urb: prepare: pkt 1 [2]: avail=2035, counts=6
          <idle>-0       [010] d.s2.   154.368917: prepare_playback_urb: prepare: pkt 1 [3]: avail=2029, counts=5
          <idle>-0       [010] d.s2.   154.368917: prepare_playback_urb: prepare: pkt 1 [4]: avail=2024, counts=6
          <idle>-0       [010] d.s2.   154.368918: prepare_playback_urb: prepare: pkt 1 [5]: avail=2018, counts=5
          <idle>-0       [010] d.s2.   154.368918: prepare_playback_urb: prepare: pkt 1 [6]: avail=2013, counts=6
          <idle>-0       [010] d.s2.   154.368919: prepare_playback_urb: prepare: pkt 1 [7]: avail=2007, counts=5
          <idle>-0       [010] d.s2.   154.368919: prepare_playback_urb: prepare: pkt 1 [8]: avail=2002, counts=6
          <idle>-0       [010] d.s2.   154.368920: prepare_playback_urb: prepare: pkt 1 [9]: avail=1996, counts=5
          <idle>-0       [010] d.s2.   154.368920: prepare_playback_urb: prepare: pkt 1 [10]: avail=1991, counts=6
          <idle>-0       [010] d.s2.   154.368921: prepare_playback_urb: prepare: pkt 1 [11]: avail=1985, counts=5
          <idle>-0       [010] d.s2.   154.368922: prepare_playback_urb: prepare: pkt 1 [12]: avail=1980, counts=6
          <idle>-0       [010] d.s2.   154.368922: prepare_playback_urb: prepare: pkt 1 [13]: avail=1974, counts=5
          <idle>-0       [010] d.s2.   154.368923: prepare_playback_urb: prepare: pkt 1 [14]: avail=1969, counts=6
          <idle>-0       [010] d.s2.   154.368923: prepare_playback_urb: prepare: pkt 1 [15]: avail=1963, counts=5
          <idle>-0       [010] d.s2.   154.368924: prepare_playback_urb: prepare: pkt 1 [16]: avail=1958, counts=6
          <idle>-0       [010] d.s2.   154.368924: prepare_playback_urb: prepare: pkt 1 [17]: avail=1952, counts=5
          <idle>-0       [010] d.s2.   154.368925: prepare_playback_urb: prepare: pkt 1 [18]: avail=1947, counts=6
          <idle>-0       [010] d.s2.   154.368925: prepare_playback_urb: prepare: pkt 1 [19]: avail=1941, counts=5
          <idle>-0       [010] d.s2.   154.368926: prepare_playback_urb: prepare: pkt 1 [20]: avail=1936, counts=6
          <idle>-0       [010] d.s2.   154.368926: prepare_playback_urb: prepare: pkt 1 [21]: avail=1930, counts=5
          <idle>-0       [010] d.s2.   154.368927: prepare_playback_urb: prepare: pkt 1 [22]: avail=1925, counts=6
          <idle>-0       [010] d.s2.   154.368927: prepare_playback_urb: prepare: pkt 1 [23]: avail=1919, counts=5
          <idle>-0       [010] d.s2.   154.368928: prepare_playback_urb: prepare: pkt 1 [24]: avail=1914, counts=6
          <idle>-0       [010] d.s2.   154.368928: prepare_playback_urb: prepare: pkt 1 [25]: avail=1908, counts=5
          <idle>-0       [010] d.s2.   154.368929: prepare_playback_urb: prepare: pkt 1 [26]: avail=1903, counts=6
          <idle>-0       [010] d.s2.   154.368929: prepare_playback_urb: prepare: pkt 1 [27]: avail=1897, counts=6
          <idle>-0       [010] d.s2.   154.368930: prepare_playback_urb: prepare: pkt 1 [28]: avail=1891, counts=5
          <idle>-0       [010] d.s2.   154.368930: prepare_playback_urb: prepare: pkt 1 [29]: avail=1886, counts=6
          <idle>-0       [010] d.s2.   154.368931: prepare_playback_urb: prepare: pkt 1 [30]: avail=1880, counts=5
          <idle>-0       [010] d.s2.   154.368931: prepare_playback_urb: prepare: pkt 1 [31]: avail=1875, counts=6
          <idle>-0       [010] d.s2.   154.368932: prepare_playback_urb: prepare: pkt 1 [32]: avail=1869, counts=5
          <idle>-0       [010] d.s2.   154.368932: prepare_playback_urb: prepare: pkt 1 [33]: avail=1864, counts=6
          <idle>-0       [010] d.s2.   154.368933: prepare_playback_urb: prepare: pkt 1 [34]: avail=1858, counts=5
          <idle>-0       [010] d.s2.   154.368933: prepare_playback_urb: prepare: pkt 1 [35]: avail=1853, counts=6
          <idle>-0       [010] d.s2.   154.368934: prepare_playback_urb: prepare: pkt 1 [36]: avail=1847, counts=5
          <idle>-0       [010] d.s2.   154.368935: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2448, hwptr=9016
          <idle>-0       [010] ..s1.   154.368936: snd_usb_queue_pending_output_urbs: pkt 1 submitted
          <idle>-0       [010] ..s1.   154.373527: snd_complete_urb: pkt complete 2
          <idle>-0       [010] ..s1.   154.373530: push_back_to_ready_list: pkt 2 push back
          <idle>-0       [010] ..s1.   154.373532: snd_usb_queue_pending_output_urbs: checking queue pkt 2 (active_mask=3)
          <idle>-0       [010] d.s2.   154.373534: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=2254, avail=1842
          <idle>-0       [010] d.s2.   154.373535: prepare_playback_urb: prepare: pkt 2 [0]: avail=1842, counts=6
          <idle>-0       [010] d.s2.   154.373536: prepare_playback_urb: prepare: pkt 2 [1]: avail=1836, counts=5
          <idle>-0       [010] d.s2.   154.373536: prepare_playback_urb: prepare: pkt 2 [2]: avail=1831, counts=6
          <idle>-0       [010] d.s2.   154.373537: prepare_playback_urb: prepare: pkt 2 [3]: avail=1825, counts=5
          <idle>-0       [010] d.s2.   154.373538: prepare_playback_urb: prepare: pkt 2 [4]: avail=1820, counts=6
          <idle>-0       [010] d.s2.   154.373538: prepare_playback_urb: prepare: pkt 2 [5]: avail=1814, counts=5
          <idle>-0       [010] d.s2.   154.373539: prepare_playback_urb: prepare: pkt 2 [6]: avail=1809, counts=6
          <idle>-0       [010] d.s2.   154.373539: prepare_playback_urb: prepare: pkt 2 [7]: avail=1803, counts=5
          <idle>-0       [010] d.s2.   154.373540: prepare_playback_urb: prepare: pkt 2 [8]: avail=1798, counts=6
          <idle>-0       [010] d.s2.   154.373540: prepare_playback_urb: prepare: pkt 2 [9]: avail=1792, counts=5
          <idle>-0       [010] d.s2.   154.373541: prepare_playback_urb: prepare: pkt 2 [10]: avail=1787, counts=6
          <idle>-0       [010] d.s2.   154.373541: prepare_playback_urb: prepare: pkt 2 [11]: avail=1781, counts=5
          <idle>-0       [010] d.s2.   154.373542: prepare_playback_urb: prepare: pkt 2 [12]: avail=1776, counts=6
          <idle>-0       [010] d.s2.   154.373543: prepare_playback_urb: prepare: pkt 2 [13]: avail=1770, counts=5
          <idle>-0       [010] d.s2.   154.373543: prepare_playback_urb: prepare: pkt 2 [14]: avail=1765, counts=6
          <idle>-0       [010] d.s2.   154.373544: prepare_playback_urb: prepare: pkt 2 [15]: avail=1759, counts=5
          <idle>-0       [010] d.s2.   154.373544: prepare_playback_urb: prepare: pkt 2 [16]: avail=1754, counts=6
          <idle>-0       [010] d.s2.   154.373545: prepare_playback_urb: prepare: pkt 2 [17]: avail=1748, counts=5
          <idle>-0       [010] d.s2.   154.373545: prepare_playback_urb: prepare: pkt 2 [18]: avail=1743, counts=6
          <idle>-0       [010] d.s2.   154.373546: prepare_playback_urb: prepare: pkt 2 [19]: avail=1737, counts=5
          <idle>-0       [010] d.s2.   154.373546: prepare_playback_urb: prepare: pkt 2 [20]: avail=1732, counts=6
          <idle>-0       [010] d.s2.   154.373547: prepare_playback_urb: prepare: pkt 2 [21]: avail=1726, counts=5
          <idle>-0       [010] d.s2.   154.373547: prepare_playback_urb: prepare: pkt 2 [22]: avail=1721, counts=6
          <idle>-0       [010] d.s2.   154.373548: prepare_playback_urb: prepare: pkt 2 [23]: avail=1715, counts=5
          <idle>-0       [010] d.s2.   154.373548: prepare_playback_urb: prepare: pkt 2 [24]: avail=1710, counts=6
          <idle>-0       [010] d.s2.   154.373549: prepare_playback_urb: prepare: pkt 2 [25]: avail=1704, counts=5
          <idle>-0       [010] d.s2.   154.373549: prepare_playback_urb: prepare: pkt 2 [26]: avail=1699, counts=6
          <idle>-0       [010] d.s2.   154.373550: prepare_playback_urb: prepare: pkt 2 [27]: avail=1693, counts=5
          <idle>-0       [010] d.s2.   154.373550: prepare_playback_urb: prepare: pkt 2 [28]: avail=1688, counts=6
          <idle>-0       [010] d.s2.   154.373551: prepare_playback_urb: prepare: pkt 2 [29]: avail=1682, counts=5
          <idle>-0       [010] d.s2.   154.373551: prepare_playback_urb: prepare: pkt 2 [30]: avail=1677, counts=6
          <idle>-0       [010] d.s2.   154.373552: prepare_playback_urb: prepare: pkt 2 [31]: avail=1671, counts=6
          <idle>-0       [010] d.s2.   154.373552: prepare_playback_urb: prepare: pkt 2 [32]: avail=1665, counts=5
          <idle>-0       [010] d.s2.   154.373553: prepare_playback_urb: prepare: pkt 2 [33]: avail=1660, counts=6
          <idle>-0       [010] d.s2.   154.373553: prepare_playback_urb: prepare: pkt 2 [34]: avail=1654, counts=5
          <idle>-0       [010] d.s2.   154.373554: prepare_playback_urb: prepare: pkt 2 [35]: avail=1649, counts=6
          <idle>-0       [010] d.s2.   154.373554: prepare_playback_urb: prepare: pkt 2 [36]: avail=1643, counts=5
          <idle>-0       [010] d.s2.   154.373556: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2448, hwptr=9832
          <idle>-0       [010] ..s1.   154.373557: snd_usb_queue_pending_output_urbs: pkt 2 submitted
          <idle>-0       [010] ..s1.   154.378153: snd_complete_urb: pkt complete 0
          <idle>-0       [010] ..s1.   154.378156: push_back_to_ready_list: pkt 0 push back
          <idle>-0       [010] ..s1.   154.378158: snd_usb_queue_pending_output_urbs: checking queue pkt 0 (active_mask=6)
          <idle>-0       [010] d.s2.   154.378159: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=2458, avail=1638
          <idle>-0       [010] d.s2.   154.378160: prepare_playback_urb: prepare: pkt 0 [0]: avail=1638, counts=6
          <idle>-0       [010] d.s2.   154.378161: prepare_playback_urb: prepare: pkt 0 [1]: avail=1632, counts=5
          <idle>-0       [010] d.s2.   154.378162: prepare_playback_urb: prepare: pkt 0 [2]: avail=1627, counts=6
          <idle>-0       [010] d.s2.   154.378162: prepare_playback_urb: prepare: pkt 0 [3]: avail=1621, counts=5
          <idle>-0       [010] d.s2.   154.378163: prepare_playback_urb: prepare: pkt 0 [4]: avail=1616, counts=6
          <idle>-0       [010] d.s2.   154.378163: prepare_playback_urb: prepare: pkt 0 [5]: avail=1610, counts=5
          <idle>-0       [010] d.s2.   154.378164: prepare_playback_urb: prepare: pkt 0 [6]: avail=1605, counts=6
          <idle>-0       [010] d.s2.   154.378164: prepare_playback_urb: prepare: pkt 0 [7]: avail=1599, counts=5
          <idle>-0       [010] d.s2.   154.378165: prepare_playback_urb: prepare: pkt 0 [8]: avail=1594, counts=6
          <idle>-0       [010] d.s2.   154.378165: prepare_playback_urb: prepare: pkt 0 [9]: avail=1588, counts=5
          <idle>-0       [010] d.s2.   154.378166: prepare_playback_urb: prepare: pkt 0 [10]: avail=1583, counts=6
          <idle>-0       [010] d.s2.   154.378167: prepare_playback_urb: prepare: pkt 0 [11]: avail=1577, counts=5
          <idle>-0       [010] d.s2.   154.378167: prepare_playback_urb: prepare: pkt 0 [12]: avail=1572, counts=6
          <idle>-0       [010] d.s2.   154.378168: prepare_playback_urb: prepare: pkt 0 [13]: avail=1566, counts=5
          <idle>-0       [010] d.s2.   154.378168: prepare_playback_urb: prepare: pkt 0 [14]: avail=1561, counts=6
          <idle>-0       [010] d.s2.   154.378169: prepare_playback_urb: prepare: pkt 0 [15]: avail=1555, counts=5
          <idle>-0       [010] d.s2.   154.378169: prepare_playback_urb: prepare: pkt 0 [16]: avail=1550, counts=6
          <idle>-0       [010] d.s2.   154.378170: prepare_playback_urb: prepare: pkt 0 [17]: avail=1544, counts=5
          <idle>-0       [010] d.s2.   154.378170: prepare_playback_urb: prepare: pkt 0 [18]: avail=1539, counts=6
          <idle>-0       [010] d.s2.   154.378171: prepare_playback_urb: prepare: pkt 0 [19]: avail=1533, counts=5
          <idle>-0       [010] d.s2.   154.378171: prepare_playback_urb: prepare: pkt 0 [20]: avail=1528, counts=6
          <idle>-0       [010] d.s2.   154.378172: prepare_playback_urb: prepare: pkt 0 [21]: avail=1522, counts=5
          <idle>-0       [010] d.s2.   154.378172: prepare_playback_urb: prepare: pkt 0 [22]: avail=1517, counts=6
          <idle>-0       [010] d.s2.   154.378173: prepare_playback_urb: prepare: pkt 0 [23]: avail=1511, counts=5
          <idle>-0       [010] d.s2.   154.378173: prepare_playback_urb: prepare: pkt 0 [24]: avail=1506, counts=6
          <idle>-0       [010] d.s2.   154.378174: prepare_playback_urb: prepare: pkt 0 [25]: avail=1500, counts=5
          <idle>-0       [010] d.s2.   154.378174: prepare_playback_urb: prepare: pkt 0 [26]: avail=1495, counts=6
          <idle>-0       [010] d.s2.   154.378175: prepare_playback_urb: prepare: pkt 0 [27]: avail=1489, counts=5
          <idle>-0       [010] d.s2.   154.378175: prepare_playback_urb: prepare: pkt 0 [28]: avail=1484, counts=6
          <idle>-0       [010] d.s2.   154.378176: prepare_playback_urb: prepare: pkt 0 [29]: avail=1478, counts=5
          <idle>-0       [010] d.s2.   154.378176: prepare_playback_urb: prepare: pkt 0 [30]: avail=1473, counts=6
          <idle>-0       [010] d.s2.   154.378177: prepare_playback_urb: prepare: pkt 0 [31]: avail=1467, counts=5
          <idle>-0       [010] d.s2.   154.378177: prepare_playback_urb: prepare: pkt 0 [32]: avail=1462, counts=6
          <idle>-0       [010] d.s2.   154.378178: prepare_playback_urb: prepare: pkt 0 [33]: avail=1456, counts=6
          <idle>-0       [010] d.s2.   154.378178: prepare_playback_urb: prepare: pkt 0 [34]: avail=1450, counts=5
          <idle>-0       [010] d.s2.   154.378179: prepare_playback_urb: prepare: pkt 0 [35]: avail=1445, counts=6
          <idle>-0       [010] d.s2.   154.378179: prepare_playback_urb: prepare: pkt 0 [36]: avail=1439, counts=5
          <idle>-0       [010] d.s2.   154.378180: prepare_playback_urb: prepare: pkt 0 [37]: avail=1434, counts=6
          <idle>-0       [010] d.s2.   154.378181: urb_ctx_queue_advance: PCM bytes=840, queued=840, inflight=2472, hwptr=10672
          <idle>-0       [010] ..s1.   154.378183: snd_usb_queue_pending_output_urbs: pkt 0 submitted
          <idle>-0       [010] ..s1.   154.382852: snd_complete_urb: pkt complete 1
          <idle>-0       [010] ..s1.   154.382854: push_back_to_ready_list: pkt 1 push back
          <idle>-0       [010] ..s1.   154.382856: snd_usb_queue_pending_output_urbs: checking queue pkt 1 (active_mask=5)
          <idle>-0       [010] d.s2.   154.382858: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=2668, avail=1428
          <idle>-0       [010] d.s2.   154.382859: prepare_playback_urb: prepare: pkt 1 [0]: avail=1428, counts=5
          <idle>-0       [010] d.s2.   154.382860: prepare_playback_urb: prepare: pkt 1 [1]: avail=1423, counts=6
          <idle>-0       [010] d.s2.   154.382860: prepare_playback_urb: prepare: pkt 1 [2]: avail=1417, counts=5
          <idle>-0       [010] d.s2.   154.382861: prepare_playback_urb: prepare: pkt 1 [3]: avail=1412, counts=6
          <idle>-0       [010] d.s2.   154.382861: prepare_playback_urb: prepare: pkt 1 [4]: avail=1406, counts=5
          <idle>-0       [010] d.s2.   154.382862: prepare_playback_urb: prepare: pkt 1 [5]: avail=1401, counts=6
          <idle>-0       [010] d.s2.   154.382863: prepare_playback_urb: prepare: pkt 1 [6]: avail=1395, counts=5
          <idle>-0       [010] d.s2.   154.382864: prepare_playback_urb: prepare: pkt 1 [7]: avail=1390, counts=6
          <idle>-0       [010] d.s2.   154.382864: prepare_playback_urb: prepare: pkt 1 [8]: avail=1384, counts=5
          <idle>-0       [010] d.s2.   154.382865: prepare_playback_urb: prepare: pkt 1 [9]: avail=1379, counts=6
          <idle>-0       [010] d.s2.   154.382865: prepare_playback_urb: prepare: pkt 1 [10]: avail=1373, counts=5
          <idle>-0       [010] d.s2.   154.382866: prepare_playback_urb: prepare: pkt 1 [11]: avail=1368, counts=6
          <idle>-0       [010] d.s2.   154.382866: prepare_playback_urb: prepare: pkt 1 [12]: avail=1362, counts=5
          <idle>-0       [010] d.s2.   154.382867: prepare_playback_urb: prepare: pkt 1 [13]: avail=1357, counts=6
          <idle>-0       [010] d.s2.   154.382867: prepare_playback_urb: prepare: pkt 1 [14]: avail=1351, counts=5
          <idle>-0       [010] d.s2.   154.382868: prepare_playback_urb: prepare: pkt 1 [15]: avail=1346, counts=6
          <idle>-0       [010] d.s2.   154.382868: prepare_playback_urb: prepare: pkt 1 [16]: avail=1340, counts=5
          <idle>-0       [010] d.s2.   154.382869: prepare_playback_urb: prepare: pkt 1 [17]: avail=1335, counts=6
          <idle>-0       [010] d.s2.   154.382870: prepare_playback_urb: prepare: pkt 1 [18]: avail=1329, counts=5
          <idle>-0       [010] d.s2.   154.382870: prepare_playback_urb: prepare: pkt 1 [19]: avail=1324, counts=6
          <idle>-0       [010] d.s2.   154.382871: prepare_playback_urb: prepare: pkt 1 [20]: avail=1318, counts=5
          <idle>-0       [010] d.s2.   154.382871: prepare_playback_urb: prepare: pkt 1 [21]: avail=1313, counts=6
          <idle>-0       [010] d.s2.   154.382872: prepare_playback_urb: prepare: pkt 1 [22]: avail=1307, counts=5
          <idle>-0       [010] d.s2.   154.382872: prepare_playback_urb: prepare: pkt 1 [23]: avail=1302, counts=6
          <idle>-0       [010] d.s2.   154.382873: prepare_playback_urb: prepare: pkt 1 [24]: avail=1296, counts=5
          <idle>-0       [010] d.s2.   154.382873: prepare_playback_urb: prepare: pkt 1 [25]: avail=1291, counts=6
          <idle>-0       [010] d.s2.   154.382874: prepare_playback_urb: prepare: pkt 1 [26]: avail=1285, counts=5
          <idle>-0       [010] d.s2.   154.382874: prepare_playback_urb: prepare: pkt 1 [27]: avail=1280, counts=6
          <idle>-0       [010] d.s2.   154.382875: prepare_playback_urb: prepare: pkt 1 [28]: avail=1274, counts=5
          <idle>-0       [010] d.s2.   154.382875: prepare_playback_urb: prepare: pkt 1 [29]: avail=1269, counts=6
          <idle>-0       [010] d.s2.   154.382876: prepare_playback_urb: prepare: pkt 1 [30]: avail=1263, counts=5
          <idle>-0       [010] d.s2.   154.382876: prepare_playback_urb: prepare: pkt 1 [31]: avail=1258, counts=6
          <idle>-0       [010] d.s2.   154.382877: prepare_playback_urb: prepare: pkt 1 [32]: avail=1252, counts=5
          <idle>-0       [010] d.s2.   154.382877: prepare_playback_urb: prepare: pkt 1 [33]: avail=1247, counts=6
          <idle>-0       [010] d.s2.   154.382878: prepare_playback_urb: prepare: pkt 1 [34]: avail=1241, counts=5
          <idle>-0       [010] d.s2.   154.382878: prepare_playback_urb: prepare: pkt 1 [35]: avail=1236, counts=6
          <idle>-0       [010] d.s2.   154.382879: prepare_playback_urb: prepare: pkt 1 [36]: avail=1230, counts=6
          <idle>-0       [010] d.s2.   154.382880: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2472, hwptr=11488
          <idle>-0       [010] ..s1.   154.382882: snd_usb_queue_pending_output_urbs: pkt 1 submitted
          <idle>-0       [010] ..s1.   154.387473: snd_complete_urb: pkt complete 2
          <idle>-0       [010] ..s1.   154.387476: push_back_to_ready_list: pkt 2 push back
          <idle>-0       [010] ..s1.   154.387477: snd_usb_queue_pending_output_urbs: checking queue pkt 2 (active_mask=3)
          <idle>-0       [010] d.s2.   154.387479: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=2872, avail=1224
          <idle>-0       [010] d.s2.   154.387480: prepare_playback_urb: prepare: pkt 2 [0]: avail=1224, counts=5
          <idle>-0       [010] d.s2.   154.387481: prepare_playback_urb: prepare: pkt 2 [1]: avail=1219, counts=6
          <idle>-0       [010] d.s2.   154.387481: prepare_playback_urb: prepare: pkt 2 [2]: avail=1213, counts=5
          <idle>-0       [010] d.s2.   154.387482: prepare_playback_urb: prepare: pkt 2 [3]: avail=1208, counts=6
          <idle>-0       [010] d.s2.   154.387482: prepare_playback_urb: prepare: pkt 2 [4]: avail=1202, counts=5
          <idle>-0       [010] d.s2.   154.387483: prepare_playback_urb: prepare: pkt 2 [5]: avail=1197, counts=6
          <idle>-0       [010] d.s2.   154.387483: prepare_playback_urb: prepare: pkt 2 [6]: avail=1191, counts=5
          <idle>-0       [010] d.s2.   154.387484: prepare_playback_urb: prepare: pkt 2 [7]: avail=1186, counts=6
          <idle>-0       [010] d.s2.   154.387485: prepare_playback_urb: prepare: pkt 2 [8]: avail=1180, counts=5
          <idle>-0       [010] d.s2.   154.387485: prepare_playback_urb: prepare: pkt 2 [9]: avail=1175, counts=6
          <idle>-0       [010] d.s2.   154.387486: prepare_playback_urb: prepare: pkt 2 [10]: avail=1169, counts=5
          <idle>-0       [010] d.s2.   154.387486: prepare_playback_urb: prepare: pkt 2 [11]: avail=1164, counts=6
          <idle>-0       [010] d.s2.   154.387487: prepare_playback_urb: prepare: pkt 2 [12]: avail=1158, counts=5
          <idle>-0       [010] d.s2.   154.387487: prepare_playback_urb: prepare: pkt 2 [13]: avail=1153, counts=6
          <idle>-0       [010] d.s2.   154.387488: prepare_playback_urb: prepare: pkt 2 [14]: avail=1147, counts=5
          <idle>-0       [010] d.s2.   154.387488: prepare_playback_urb: prepare: pkt 2 [15]: avail=1142, counts=6
          <idle>-0       [010] d.s2.   154.387489: prepare_playback_urb: prepare: pkt 2 [16]: avail=1136, counts=5
          <idle>-0       [010] d.s2.   154.387489: prepare_playback_urb: prepare: pkt 2 [17]: avail=1131, counts=6
          <idle>-0       [010] d.s2.   154.387490: prepare_playback_urb: prepare: pkt 2 [18]: avail=1125, counts=5
          <idle>-0       [010] d.s2.   154.387490: prepare_playback_urb: prepare: pkt 2 [19]: avail=1120, counts=6
          <idle>-0       [010] d.s2.   154.387491: prepare_playback_urb: prepare: pkt 2 [20]: avail=1114, counts=5
          <idle>-0       [010] d.s2.   154.387492: prepare_playback_urb: prepare: pkt 2 [21]: avail=1109, counts=6
          <idle>-0       [010] d.s2.   154.387492: prepare_playback_urb: prepare: pkt 2 [22]: avail=1103, counts=5
          <idle>-0       [010] d.s2.   154.387493: prepare_playback_urb: prepare: pkt 2 [23]: avail=1098, counts=6
          <idle>-0       [010] d.s2.   154.387493: prepare_playback_urb: prepare: pkt 2 [24]: avail=1092, counts=5
          <idle>-0       [010] d.s2.   154.387494: prepare_playback_urb: prepare: pkt 2 [25]: avail=1087, counts=6
          <idle>-0       [010] d.s2.   154.387494: prepare_playback_urb: prepare: pkt 2 [26]: avail=1081, counts=5
          <idle>-0       [010] d.s2.   154.387495: prepare_playback_urb: prepare: pkt 2 [27]: avail=1076, counts=6
          <idle>-0       [010] d.s2.   154.387495: prepare_playback_urb: prepare: pkt 2 [28]: avail=1070, counts=5
          <idle>-0       [010] d.s2.   154.387496: prepare_playback_urb: prepare: pkt 2 [29]: avail=1065, counts=6
          <idle>-0       [010] d.s2.   154.387496: prepare_playback_urb: prepare: pkt 2 [30]: avail=1059, counts=5
          <idle>-0       [010] d.s2.   154.387497: prepare_playback_urb: prepare: pkt 2 [31]: avail=1054, counts=6
          <idle>-0       [010] d.s2.   154.387497: prepare_playback_urb: prepare: pkt 2 [32]: avail=1048, counts=5
          <idle>-0       [010] d.s2.   154.387498: prepare_playback_urb: prepare: pkt 2 [33]: avail=1043, counts=6
          <idle>-0       [010] d.s2.   154.387498: prepare_playback_urb: prepare: pkt 2 [34]: avail=1037, counts=5
          <idle>-0       [010] d.s2.   154.387499: prepare_playback_urb: prepare: pkt 2 [35]: avail=1032, counts=6
          <idle>-0       [010] d.s2.   154.387499: prepare_playback_urb: prepare: pkt 2 [36]: avail=1026, counts=5
          <idle>-0       [010] d.s2.   154.387501: urb_ctx_queue_advance: PCM bytes=812, queued=812, inflight=2468, hwptr=12300
          <idle>-0       [010] ..s1.   154.387522: snd_usb_queue_pending_output_urbs: pkt 2 submitted
          <idle>-0       [010] ..s1.   154.392234: snd_complete_urb: pkt complete 0
          <idle>-0       [010] ..s1.   154.392237: push_back_to_ready_list: pkt 0 push back
          <idle>-0       [010] ..s1.   154.392239: snd_usb_queue_pending_output_urbs: checking queue pkt 0 (active_mask=6)
          <idle>-0       [010] d.s2.   154.392240: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=3075, avail=1021
          <idle>-0       [010] d.s2.   154.392241: prepare_playback_urb: prepare: pkt 0 [0]: avail=1021, counts=6
          <idle>-0       [010] d.s2.   154.392242: prepare_playback_urb: prepare: pkt 0 [1]: avail=1015, counts=6
          <idle>-0       [010] d.s2.   154.392243: prepare_playback_urb: prepare: pkt 0 [2]: avail=1009, counts=5
          <idle>-0       [010] d.s2.   154.392243: prepare_playback_urb: prepare: pkt 0 [3]: avail=1004, counts=6
          <idle>-0       [010] d.s2.   154.392244: prepare_playback_urb: prepare: pkt 0 [4]: avail=998, counts=5
          <idle>-0       [010] d.s2.   154.392244: prepare_playback_urb: prepare: pkt 0 [5]: avail=993, counts=6
          <idle>-0       [010] d.s2.   154.392245: prepare_playback_urb: prepare: pkt 0 [6]: avail=987, counts=5
          <idle>-0       [010] d.s2.   154.392245: prepare_playback_urb: prepare: pkt 0 [7]: avail=982, counts=6
          <idle>-0       [010] d.s2.   154.392246: prepare_playback_urb: prepare: pkt 0 [8]: avail=976, counts=5
          <idle>-0       [010] d.s2.   154.392247: prepare_playback_urb: prepare: pkt 0 [9]: avail=971, counts=6
          <idle>-0       [010] d.s2.   154.392247: prepare_playback_urb: prepare: pkt 0 [10]: avail=965, counts=5
          <idle>-0       [010] d.s2.   154.392248: prepare_playback_urb: prepare: pkt 0 [11]: avail=960, counts=6
          <idle>-0       [010] d.s2.   154.392248: prepare_playback_urb: prepare: pkt 0 [12]: avail=954, counts=5
          <idle>-0       [010] d.s2.   154.392249: prepare_playback_urb: prepare: pkt 0 [13]: avail=949, counts=6
          <idle>-0       [010] d.s2.   154.392250: prepare_playback_urb: prepare: pkt 0 [14]: avail=943, counts=5
          <idle>-0       [010] d.s2.   154.392250: prepare_playback_urb: prepare: pkt 0 [15]: avail=938, counts=6
          <idle>-0       [010] d.s2.   154.392251: prepare_playback_urb: prepare: pkt 0 [16]: avail=932, counts=5
          <idle>-0       [010] d.s2.   154.392252: prepare_playback_urb: prepare: pkt 0 [17]: avail=927, counts=6
          <idle>-0       [010] d.s2.   154.392252: prepare_playback_urb: prepare: pkt 0 [18]: avail=921, counts=5
          <idle>-0       [010] d.s2.   154.392253: prepare_playback_urb: prepare: pkt 0 [19]: avail=916, counts=6
          <idle>-0       [010] d.s2.   154.392253: prepare_playback_urb: prepare: pkt 0 [20]: avail=910, counts=5
          <idle>-0       [010] d.s2.   154.392254: prepare_playback_urb: prepare: pkt 0 [21]: avail=905, counts=6
          <idle>-0       [010] d.s2.   154.392254: prepare_playback_urb: prepare: pkt 0 [22]: avail=899, counts=5
          <idle>-0       [010] d.s2.   154.392255: prepare_playback_urb: prepare: pkt 0 [23]: avail=894, counts=6
          <idle>-0       [010] d.s2.   154.392255: prepare_playback_urb: prepare: pkt 0 [24]: avail=888, counts=5
          <idle>-0       [010] d.s2.   154.392256: prepare_playback_urb: prepare: pkt 0 [25]: avail=883, counts=6
          <idle>-0       [010] d.s2.   154.392257: prepare_playback_urb: prepare: pkt 0 [26]: avail=877, counts=5
          <idle>-0       [010] d.s2.   154.392257: prepare_playback_urb: prepare: pkt 0 [27]: avail=872, counts=6
          <idle>-0       [010] d.s2.   154.392258: prepare_playback_urb: prepare: pkt 0 [28]: avail=866, counts=5
          <idle>-0       [010] d.s2.   154.392258: prepare_playback_urb: prepare: pkt 0 [29]: avail=861, counts=6
          <idle>-0       [010] d.s2.   154.392259: prepare_playback_urb: prepare: pkt 0 [30]: avail=855, counts=5
          <idle>-0       [010] d.s2.   154.392259: prepare_playback_urb: prepare: pkt 0 [31]: avail=850, counts=6
          <idle>-0       [010] d.s2.   154.392260: prepare_playback_urb: prepare: pkt 0 [32]: avail=844, counts=5
          <idle>-0       [010] d.s2.   154.392260: prepare_playback_urb: prepare: pkt 0 [33]: avail=839, counts=6
          <idle>-0       [010] d.s2.   154.392261: prepare_playback_urb: prepare: pkt 0 [34]: avail=833, counts=5
          <idle>-0       [010] d.s2.   154.392261: prepare_playback_urb: prepare: pkt 0 [35]: avail=828, counts=6
          <idle>-0       [010] d.s2.   154.392262: prepare_playback_urb: prepare: pkt 0 [36]: avail=822, counts=5
          <idle>-0       [010] d.s2.   154.392263: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2444, hwptr=13116
          <idle>-0       [010] ..s1.   154.392264: snd_usb_queue_pending_output_urbs: pkt 0 submitted
          <idle>-0       [010] ..s1.   154.396852: snd_complete_urb: pkt complete 1
          <idle>-0       [010] ..s1.   154.396854: push_back_to_ready_list: pkt 1 push back
          <idle>-0       [010] ..s1.   154.396856: snd_usb_queue_pending_output_urbs: checking queue pkt 1 (active_mask=5)
          <idle>-0       [010] d.s2.   154.396858: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=3279, avail=817
          <idle>-0       [010] d.s2.   154.396859: prepare_playback_urb: prepare: pkt 1 [0]: avail=817, counts=6
          <idle>-0       [010] d.s2.   154.396860: prepare_playback_urb: prepare: pkt 1 [1]: avail=811, counts=5
          <idle>-0       [010] d.s2.   154.396860: prepare_playback_urb: prepare: pkt 1 [2]: avail=806, counts=6
          <idle>-0       [010] d.s2.   154.396861: prepare_playback_urb: prepare: pkt 1 [3]: avail=800, counts=5
          <idle>-0       [010] d.s2.   154.396861: prepare_playback_urb: prepare: pkt 1 [4]: avail=795, counts=6
          <idle>-0       [010] d.s2.   154.396862: prepare_playback_urb: prepare: pkt 1 [5]: avail=789, counts=6
          <idle>-0       [010] d.s2.   154.396862: prepare_playback_urb: prepare: pkt 1 [6]: avail=783, counts=5
          <idle>-0       [010] d.s2.   154.396863: prepare_playback_urb: prepare: pkt 1 [7]: avail=778, counts=6
          <idle>-0       [010] d.s2.   154.396863: prepare_playback_urb: prepare: pkt 1 [8]: avail=772, counts=5
          <idle>-0       [010] d.s2.   154.396864: prepare_playback_urb: prepare: pkt 1 [9]: avail=767, counts=6
          <idle>-0       [010] d.s2.   154.396865: prepare_playback_urb: prepare: pkt 1 [10]: avail=761, counts=5
          <idle>-0       [010] d.s2.   154.396865: prepare_playback_urb: prepare: pkt 1 [11]: avail=756, counts=6
          <idle>-0       [010] d.s2.   154.396866: prepare_playback_urb: prepare: pkt 1 [12]: avail=750, counts=5
          <idle>-0       [010] d.s2.   154.396866: prepare_playback_urb: prepare: pkt 1 [13]: avail=745, counts=6
          <idle>-0       [010] d.s2.   154.396867: prepare_playback_urb: prepare: pkt 1 [14]: avail=739, counts=5
          <idle>-0       [010] d.s2.   154.396867: prepare_playback_urb: prepare: pkt 1 [15]: avail=734, counts=6
          <idle>-0       [010] d.s2.   154.396868: prepare_playback_urb: prepare: pkt 1 [16]: avail=728, counts=5
          <idle>-0       [010] d.s2.   154.396868: prepare_playback_urb: prepare: pkt 1 [17]: avail=723, counts=6
          <idle>-0       [010] d.s2.   154.396869: prepare_playback_urb: prepare: pkt 1 [18]: avail=717, counts=5
          <idle>-0       [010] d.s2.   154.396869: prepare_playback_urb: prepare: pkt 1 [19]: avail=712, counts=6
          <idle>-0       [010] d.s2.   154.396870: prepare_playback_urb: prepare: pkt 1 [20]: avail=706, counts=5
          <idle>-0       [010] d.s2.   154.396870: prepare_playback_urb: prepare: pkt 1 [21]: avail=701, counts=6
          <idle>-0       [010] d.s2.   154.396871: prepare_playback_urb: prepare: pkt 1 [22]: avail=695, counts=5
          <idle>-0       [010] d.s2.   154.396872: prepare_playback_urb: prepare: pkt 1 [23]: avail=690, counts=6
          <idle>-0       [010] d.s2.   154.396872: prepare_playback_urb: prepare: pkt 1 [24]: avail=684, counts=5
          <idle>-0       [010] d.s2.   154.396873: prepare_playback_urb: prepare: pkt 1 [25]: avail=679, counts=6
          <idle>-0       [010] d.s2.   154.396873: prepare_playback_urb: prepare: pkt 1 [26]: avail=673, counts=5
          <idle>-0       [010] d.s2.   154.396874: prepare_playback_urb: prepare: pkt 1 [27]: avail=668, counts=6
          <idle>-0       [010] d.s2.   154.396874: prepare_playback_urb: prepare: pkt 1 [28]: avail=662, counts=5
          <idle>-0       [010] d.s2.   154.396875: prepare_playback_urb: prepare: pkt 1 [29]: avail=657, counts=6
          <idle>-0       [010] d.s2.   154.396875: prepare_playback_urb: prepare: pkt 1 [30]: avail=651, counts=5
          <idle>-0       [010] d.s2.   154.396876: prepare_playback_urb: prepare: pkt 1 [31]: avail=646, counts=6
          <idle>-0       [010] d.s2.   154.396876: prepare_playback_urb: prepare: pkt 1 [32]: avail=640, counts=5
          <idle>-0       [010] d.s2.   154.396877: prepare_playback_urb: prepare: pkt 1 [33]: avail=635, counts=6
          <idle>-0       [010] d.s2.   154.396877: prepare_playback_urb: prepare: pkt 1 [34]: avail=629, counts=5
          <idle>-0       [010] d.s2.   154.396878: prepare_playback_urb: prepare: pkt 1 [35]: avail=624, counts=6
          <idle>-0       [010] d.s2.   154.396878: prepare_playback_urb: prepare: pkt 1 [36]: avail=618, counts=5
          <idle>-0       [010] d.s2.   154.396880: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2444, hwptr=13932
          <idle>-0       [010] ..s1.   154.396881: snd_usb_queue_pending_output_urbs: pkt 1 submitted
          <idle>-0       [010] ..s1.   154.401469: snd_complete_urb: pkt complete 2
          <idle>-0       [010] ..s1.   154.401472: push_back_to_ready_list: pkt 2 push back
          <idle>-0       [010] ..s1.   154.401474: snd_usb_queue_pending_output_urbs: checking queue pkt 2 (active_mask=3)
          <idle>-0       [010] d.s2.   154.401475: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=3483, avail=613
          <idle>-0       [010] d.s2.   154.401476: prepare_playback_urb: prepare: pkt 2 [0]: avail=613, counts=6
          <idle>-0       [010] d.s2.   154.401477: prepare_playback_urb: prepare: pkt 2 [1]: avail=607, counts=5
          <idle>-0       [010] d.s2.   154.401477: prepare_playback_urb: prepare: pkt 2 [2]: avail=602, counts=6
          <idle>-0       [010] d.s2.   154.401478: prepare_playback_urb: prepare: pkt 2 [3]: avail=596, counts=5
          <idle>-0       [010] d.s2.   154.401479: prepare_playback_urb: prepare: pkt 2 [4]: avail=591, counts=6
          <idle>-0       [010] d.s2.   154.401479: prepare_playback_urb: prepare: pkt 2 [5]: avail=585, counts=5
          <idle>-0       [010] d.s2.   154.401480: prepare_playback_urb: prepare: pkt 2 [6]: avail=580, counts=6
          <idle>-0       [010] d.s2.   154.401480: prepare_playback_urb: prepare: pkt 2 [7]: avail=574, counts=6
          <idle>-0       [010] d.s2.   154.401481: prepare_playback_urb: prepare: pkt 2 [8]: avail=568, counts=5
          <idle>-0       [010] d.s2.   154.401481: prepare_playback_urb: prepare: pkt 2 [9]: avail=563, counts=6
          <idle>-0       [010] d.s2.   154.401482: prepare_playback_urb: prepare: pkt 2 [10]: avail=557, counts=5
          <idle>-0       [010] d.s2.   154.401482: prepare_playback_urb: prepare: pkt 2 [11]: avail=552, counts=6
          <idle>-0       [010] d.s2.   154.401483: prepare_playback_urb: prepare: pkt 2 [12]: avail=546, counts=5
          <idle>-0       [010] d.s2.   154.401483: prepare_playback_urb: prepare: pkt 2 [13]: avail=541, counts=6
          <idle>-0       [010] d.s2.   154.401484: prepare_playback_urb: prepare: pkt 2 [14]: avail=535, counts=5
          <idle>-0       [010] d.s2.   154.401484: prepare_playback_urb: prepare: pkt 2 [15]: avail=530, counts=6
          <idle>-0       [010] d.s2.   154.401485: prepare_playback_urb: prepare: pkt 2 [16]: avail=524, counts=5
          <idle>-0       [010] d.s2.   154.401486: prepare_playback_urb: prepare: pkt 2 [17]: avail=519, counts=6
          <idle>-0       [010] d.s2.   154.401486: prepare_playback_urb: prepare: pkt 2 [18]: avail=513, counts=5
          <idle>-0       [010] d.s2.   154.401487: prepare_playback_urb: prepare: pkt 2 [19]: avail=508, counts=6
          <idle>-0       [010] d.s2.   154.401488: prepare_playback_urb: prepare: pkt 2 [20]: avail=502, counts=5
          <idle>-0       [010] d.s2.   154.401488: prepare_playback_urb: prepare: pkt 2 [21]: avail=497, counts=6
          <idle>-0       [010] d.s2.   154.401489: prepare_playback_urb: prepare: pkt 2 [22]: avail=491, counts=5
          <idle>-0       [010] d.s2.   154.401489: prepare_playback_urb: prepare: pkt 2 [23]: avail=486, counts=6
          <idle>-0       [010] d.s2.   154.401490: prepare_playback_urb: prepare: pkt 2 [24]: avail=480, counts=5
          <idle>-0       [010] d.s2.   154.401490: prepare_playback_urb: prepare: pkt 2 [25]: avail=475, counts=6
          <idle>-0       [010] d.s2.   154.401491: prepare_playback_urb: prepare: pkt 2 [26]: avail=469, counts=5
          <idle>-0       [010] d.s2.   154.401492: prepare_playback_urb: prepare: pkt 2 [27]: avail=464, counts=6
          <idle>-0       [010] d.s2.   154.401492: prepare_playback_urb: prepare: pkt 2 [28]: avail=458, counts=5
          <idle>-0       [010] d.s2.   154.401493: prepare_playback_urb: prepare: pkt 2 [29]: avail=453, counts=6
          <idle>-0       [010] d.s2.   154.401493: prepare_playback_urb: prepare: pkt 2 [30]: avail=447, counts=5
          <idle>-0       [010] d.s2.   154.401494: prepare_playback_urb: prepare: pkt 2 [31]: avail=442, counts=6
          <idle>-0       [010] d.s2.   154.401494: prepare_playback_urb: prepare: pkt 2 [32]: avail=436, counts=5
          <idle>-0       [010] d.s2.   154.401495: prepare_playback_urb: prepare: pkt 2 [33]: avail=431, counts=6
          <idle>-0       [010] d.s2.   154.401495: prepare_playback_urb: prepare: pkt 2 [34]: avail=425, counts=5
          <idle>-0       [010] d.s2.   154.401496: prepare_playback_urb: prepare: pkt 2 [35]: avail=420, counts=6
          <idle>-0       [010] d.s2.   154.401496: prepare_playback_urb: prepare: pkt 2 [36]: avail=414, counts=5
          <idle>-0       [010] d.s2.   154.401498: urb_ctx_queue_advance: PCM bytes=816, queued=816, inflight=2448, hwptr=14748
          <idle>-0       [010] ..s1.   154.401499: snd_usb_queue_pending_output_urbs: pkt 2 submitted
          <idle>-0       [010] ..s1.   154.406098: snd_complete_urb: pkt complete 0
          <idle>-0       [010] ..s1.   154.406100: push_back_to_ready_list: pkt 0 push back
          <idle>-0       [010] ..s1.   154.406102: snd_usb_queue_pending_output_urbs: checking queue pkt 0 (active_mask=6)
          <idle>-0       [010] d.s2.   154.406104: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=3687, avail=409
          <idle>-0       [010] d.s2.   154.406105: prepare_playback_urb: prepare: pkt 0 [0]: avail=409, counts=6
          <idle>-0       [010] d.s2.   154.406106: prepare_playback_urb: prepare: pkt 0 [1]: avail=403, counts=5
          <idle>-0       [010] d.s2.   154.406106: prepare_playback_urb: prepare: pkt 0 [2]: avail=398, counts=6
          <idle>-0       [010] d.s2.   154.406107: prepare_playback_urb: prepare: pkt 0 [3]: avail=392, counts=5
          <idle>-0       [010] d.s2.   154.406107: prepare_playback_urb: prepare: pkt 0 [4]: avail=387, counts=6
          <idle>-0       [010] d.s2.   154.406108: prepare_playback_urb: prepare: pkt 0 [5]: avail=381, counts=5
          <idle>-0       [010] d.s2.   154.406109: prepare_playback_urb: prepare: pkt 0 [6]: avail=376, counts=6
          <idle>-0       [010] d.s2.   154.406109: prepare_playback_urb: prepare: pkt 0 [7]: avail=370, counts=5
          <idle>-0       [010] d.s2.   154.406110: prepare_playback_urb: prepare: pkt 0 [8]: avail=365, counts=6
          <idle>-0       [010] d.s2.   154.406110: prepare_playback_urb: prepare: pkt 0 [9]: avail=359, counts=5
          <idle>-0       [010] d.s2.   154.406111: prepare_playback_urb: prepare: pkt 0 [10]: avail=354, counts=6
          <idle>-0       [010] d.s2.   154.406111: prepare_playback_urb: prepare: pkt 0 [11]: avail=348, counts=6
          <idle>-0       [010] d.s2.   154.406112: prepare_playback_urb: prepare: pkt 0 [12]: avail=342, counts=5
          <idle>-0       [010] d.s2.   154.406112: prepare_playback_urb: prepare: pkt 0 [13]: avail=337, counts=6
          <idle>-0       [010] d.s2.   154.406113: prepare_playback_urb: prepare: pkt 0 [14]: avail=331, counts=5
          <idle>-0       [010] d.s2.   154.406113: prepare_playback_urb: prepare: pkt 0 [15]: avail=326, counts=6
          <idle>-0       [010] d.s2.   154.406114: prepare_playback_urb: prepare: pkt 0 [16]: avail=320, counts=5
          <idle>-0       [010] d.s2.   154.406114: prepare_playback_urb: prepare: pkt 0 [17]: avail=315, counts=6
          <idle>-0       [010] d.s2.   154.406115: prepare_playback_urb: prepare: pkt 0 [18]: avail=309, counts=5
          <idle>-0       [010] d.s2.   154.406115: prepare_playback_urb: prepare: pkt 0 [19]: avail=304, counts=6
          <idle>-0       [010] d.s2.   154.406116: prepare_playback_urb: prepare: pkt 0 [20]: avail=298, counts=5
          <idle>-0       [010] d.s2.   154.406116: prepare_playback_urb: prepare: pkt 0 [21]: avail=293, counts=6
          <idle>-0       [010] d.s2.   154.406117: prepare_playback_urb: prepare: pkt 0 [22]: avail=287, counts=5
          <idle>-0       [010] d.s2.   154.406117: prepare_playback_urb: prepare: pkt 0 [23]: avail=282, counts=6
          <idle>-0       [010] d.s2.   154.406118: prepare_playback_urb: prepare: pkt 0 [24]: avail=276, counts=5
          <idle>-0       [010] d.s2.   154.406118: prepare_playback_urb: prepare: pkt 0 [25]: avail=271, counts=6
          <idle>-0       [010] d.s2.   154.406119: prepare_playback_urb: prepare: pkt 0 [26]: avail=265, counts=5
          <idle>-0       [010] d.s2.   154.406120: prepare_playback_urb: prepare: pkt 0 [27]: avail=260, counts=6
          <idle>-0       [010] d.s2.   154.406120: prepare_playback_urb: prepare: pkt 0 [28]: avail=254, counts=5
          <idle>-0       [010] d.s2.   154.406121: prepare_playback_urb: prepare: pkt 0 [29]: avail=249, counts=6
          <idle>-0       [010] d.s2.   154.406121: prepare_playback_urb: prepare: pkt 0 [30]: avail=243, counts=5
          <idle>-0       [010] d.s2.   154.406122: prepare_playback_urb: prepare: pkt 0 [31]: avail=238, counts=6
          <idle>-0       [010] d.s2.   154.406122: prepare_playback_urb: prepare: pkt 0 [32]: avail=232, counts=5
          <idle>-0       [010] d.s2.   154.406123: prepare_playback_urb: prepare: pkt 0 [33]: avail=227, counts=6
          <idle>-0       [010] d.s2.   154.406123: prepare_playback_urb: prepare: pkt 0 [34]: avail=221, counts=5
          <idle>-0       [010] d.s2.   154.406124: prepare_playback_urb: prepare: pkt 0 [35]: avail=216, counts=6
          <idle>-0       [010] d.s2.   154.406124: prepare_playback_urb: prepare: pkt 0 [36]: avail=210, counts=5
          <idle>-0       [010] d.s2.   154.406125: prepare_playback_urb: prepare: pkt 0 [37]: avail=205, counts=6
          <idle>-0       [010] d.s2.   154.406126: urb_ctx_queue_advance: PCM bytes=840, queued=840, inflight=2472, hwptr=15588
          <idle>-0       [010] ..s1.   154.406127: snd_usb_queue_pending_output_urbs: pkt 0 submitted
          <idle>-0       [010] ..s1.   154.410652: snd_complete_urb: pkt complete 1
          <idle>-0       [010] ..s1.   154.410655: push_back_to_ready_list: pkt 1 push back
          <idle>-0       [010] ..s1.   154.410657: snd_usb_queue_pending_output_urbs: checking queue pkt 1 (active_mask=5)
          <idle>-0       [010] d.s2.   154.410658: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=3897, avail=199
          <idle>-0       [010] d.s2.   154.410659: prepare_playback_urb: prepare: pkt 1 [0]: avail=199, counts=5
          <idle>-0       [010] d.s2.   154.410660: prepare_playback_urb: prepare: pkt 1 [1]: avail=194, counts=6
          <idle>-0       [010] d.s2.   154.410661: prepare_playback_urb: prepare: pkt 1 [2]: avail=188, counts=5
          <idle>-0       [010] d.s2.   154.410661: prepare_playback_urb: prepare: pkt 1 [3]: avail=183, counts=6
          <idle>-0       [010] d.s2.   154.410662: prepare_playback_urb: prepare: pkt 1 [4]: avail=177, counts=5
          <idle>-0       [010] d.s2.   154.410662: prepare_playback_urb: prepare: pkt 1 [5]: avail=172, counts=6
          <idle>-0       [010] d.s2.   154.410663: prepare_playback_urb: prepare: pkt 1 [6]: avail=166, counts=5
          <idle>-0       [010] d.s2.   154.410663: prepare_playback_urb: prepare: pkt 1 [7]: avail=161, counts=6
          <idle>-0       [010] d.s2.   154.410664: prepare_playback_urb: prepare: pkt 1 [8]: avail=155, counts=5
          <idle>-0       [010] d.s2.   154.410664: prepare_playback_urb: prepare: pkt 1 [9]: avail=150, counts=6
          <idle>-0       [010] d.s2.   154.410665: prepare_playback_urb: prepare: pkt 1 [10]: avail=144, counts=5
          <idle>-0       [010] d.s2.   154.410666: prepare_playback_urb: prepare: pkt 1 [11]: avail=139, counts=6
          <idle>-0       [010] d.s2.   154.410666: prepare_playback_urb: prepare: pkt 1 [12]: avail=133, counts=6
          <idle>-0       [010] d.s2.   154.410667: prepare_playback_urb: prepare: pkt 1 [13]: avail=127, counts=5
          <idle>-0       [010] d.s2.   154.410667: prepare_playback_urb: prepare: pkt 1 [14]: avail=122, counts=6
          <idle>-0       [010] d.s2.   154.410668: prepare_playback_urb: prepare: pkt 1 [15]: avail=116, counts=5
          <idle>-0       [010] d.s2.   154.410668: prepare_playback_urb: prepare: pkt 1 [16]: avail=111, counts=6
          <idle>-0       [010] d.s2.   154.410669: prepare_playback_urb: prepare: pkt 1 [17]: avail=105, counts=5
          <idle>-0       [010] d.s2.   154.410669: prepare_playback_urb: prepare: pkt 1 [18]: avail=100, counts=6
          <idle>-0       [010] d.s2.   154.410670: prepare_playback_urb: prepare: pkt 1 [19]: avail=94, counts=5
          <idle>-0       [010] d.s2.   154.410670: prepare_playback_urb: prepare: pkt 1 [20]: avail=89, counts=6
          <idle>-0       [010] d.s2.   154.410671: prepare_playback_urb: prepare: pkt 1 [21]: avail=83, counts=5
          <idle>-0       [010] d.s2.   154.410671: prepare_playback_urb: prepare: pkt 1 [22]: avail=78, counts=6
          <idle>-0       [010] d.s2.   154.410672: prepare_playback_urb: prepare: pkt 1 [23]: avail=72, counts=5
          <idle>-0       [010] d.s2.   154.410672: prepare_playback_urb: prepare: pkt 1 [24]: avail=67, counts=6
          <idle>-0       [010] d.s2.   154.410673: prepare_playback_urb: prepare: pkt 1 [25]: avail=61, counts=5
          <idle>-0       [010] d.s2.   154.410674: prepare_playback_urb: prepare: pkt 1 [26]: avail=56, counts=6
          <idle>-0       [010] d.s2.   154.410674: prepare_playback_urb: prepare: pkt 1 [27]: avail=50, counts=5
          <idle>-0       [010] d.s2.   154.410675: prepare_playback_urb: prepare: pkt 1 [28]: avail=45, counts=6
          <idle>-0       [010] d.s2.   154.410675: prepare_playback_urb: prepare: pkt 1 [29]: avail=39, counts=5
          <idle>-0       [010] d.s2.   154.410676: prepare_playback_urb: prepare: pkt 1 [30]: avail=34, counts=6
          <idle>-0       [010] d.s2.   154.410676: prepare_playback_urb: prepare: pkt 1 [31]: avail=28, counts=5
          <idle>-0       [010] d.s2.   154.410677: prepare_playback_urb: prepare: pkt 1 [32]: avail=23, counts=6
          <idle>-0       [010] d.s2.   154.410677: prepare_playback_urb: prepare: pkt 1 [33]: avail=17, counts=5
          <idle>-0       [010] d.s2.   154.410678: prepare_playback_urb: prepare: pkt 1 [34]: avail=12, counts=6
          <idle>-0       [010] d.s2.   154.410678: prepare_playback_urb: prepare: pkt 1 [35]: avail=6, counts=5
          <idle>-0       [010] d.s2.   154.410679: prepare_playback_urb: prepare: pkt 1 [36]: avail=1, counts=-11
          <idle>-0       [010] d.s2.   154.410680: urb_ctx_queue_advance: PCM bytes=792, queued=792, inflight=2448, hwptr=16380
          <idle>-0       [010] ..s1.   154.410682: snd_usb_queue_pending_output_urbs: pkt 1 submitted
          <idle>-0       [010] ..s1.   154.415281: snd_complete_urb: pkt complete 2
          <idle>-0       [010] ..s1.   154.415284: push_back_to_ready_list: pkt 2 push back
          <idle>-0       [010] ..s1.   154.415285: snd_usb_queue_pending_output_urbs: checking queue pkt 2 (active_mask=3)
          <idle>-0       [010] d.s2.   154.415287: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=4095, avail=1
          <idle>-0       [010] d.s2.   154.415288: prepare_playback_urb: prepare: pkt 2 [0]: avail=1, counts=-11
          <idle>-0       [010] ..s1.   154.415289: push_back_to_ready_list: pkt 2 push back
          <idle>-0       [010] ..s1.   154.420028: snd_complete_urb: pkt complete 0
          <idle>-0       [010] ..s1.   154.420031: push_back_to_ready_list: pkt 0 push back
          <idle>-0       [010] ..s1.   154.420033: snd_usb_queue_pending_output_urbs: checking queue pkt 2 (active_mask=2)
          <idle>-0       [010] d.s2.   154.420035: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=4095, avail=1
          <idle>-0       [010] d.s2.   154.420036: prepare_playback_urb: prepare: pkt 2 [0]: avail=1, counts=-11
          <idle>-0       [010] ..s1.   154.420036: push_back_to_ready_list: pkt 2 push back
          <idle>-0       [010] ..s1.   154.424609: snd_complete_urb: pkt complete 1
          <idle>-0       [010] ..s1.   154.424612: push_back_to_ready_list: pkt 1 push back
          <idle>-0       [010] ..s1.   154.424614: snd_usb_queue_pending_output_urbs: checking queue pkt 0 (active_mask=0)
          <idle>-0       [010] d.s2.   154.424616: prepare_playback_urb: prepare: applptr=0, hwptr_base=0, buffer=4096, hwptr=4095, avail=1
          <idle>-0       [010] d.s2.   154.424616: prepare_playback_urb: prepare: pkt 0 [0]: avail=1, counts=-11
          <idle>-0       [010] ..s1.   154.424617: push_back_to_ready_list: pkt 0 push back

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-18 23:26             ` Kirill A. Shutemov
@ 2021-11-19  9:13               ` Takashi Iwai
  2021-11-19 10:09                 ` Kirill A. Shutemov
  0 siblings, 1 reply; 14+ messages in thread
From: Takashi Iwai @ 2021-11-19  9:13 UTC (permalink / raw)
  To: Kirill A. Shutemov
  Cc: Takashi Iwai, Linus Torvalds, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 661 bytes --]

On Fri, 19 Nov 2021 00:26:28 +0100,
Kirill A. Shutemov wrote:
> 
> On Thu, Nov 18, 2021 at 05:57:35PM +0100, Takashi Iwai wrote:
> > And it'd be helpful if you can gather the log (from tracing) with the
> > patch below (from the start of speaker-test until the stall).
> 
> The trace is attached.

Thanks!  From the previous log, I noticed that you're using dmix
plugin, and that was the problem.  The dmix plugin changes the PCM
sw_params parameters at a late stage, and this confused the driver as
if it were OK with the low-latency mode.  And, while reviewing the
code, I also found another bug.

Below are two fix patches.  Please give it a try.


Takashi


[-- Attachment #2: 0001-ALSA-usb-audio-Switch-back-to-non-latency-mode-at-a-.patch --]
[-- Type: application/octet-stream, Size: 2451 bytes --]

From 4b9f4f8e236ef3b40ca4f3e0e59f6e094d090d59 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 19 Nov 2021 10:04:49 +0100
Subject: [PATCH 1/2] ALSA: usb-audio: Switch back to non-latency mode at a
 later point

The recent regression report revealed that the judgment of the
low-latency playback mode based on the runtime->stop_threshold cannot
work reliably at the prepare stage, as sw_params call may happen at
any time, and PCM dmix actually sets it up after the prepare call.
This ended up with the stall of the stream as PCM ack won't be issued
at all.

For addressing this, check the free-wheeling mode again at the PCM
trigger right before starting the stream again, and allow switching to
the non-LL mode at a late stage.

Fixes: d5f871f89e21 ("ALSA: usb-audio: Improved lowlatency playback support")
Reported-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/usb/pcm.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index 95ec8eec1bb0..57b046e73bfe 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -581,6 +581,12 @@ static int snd_usb_hw_free(struct snd_pcm_substream *substream)
 	return 0;
 }
 
+/* free-wheeling mode? (e.g. dmix) */
+static int in_free_wheeling_mode(struct snd_pcm_runtime *runtime)
+{
+	return runtime->stop_threshold > runtime->buffer_size;
+}
+
 /* check whether early start is needed for playback stream */
 static int lowlatency_playback_available(struct snd_pcm_runtime *runtime,
 					 struct snd_usb_substream *subs)
@@ -592,8 +598,7 @@ static int lowlatency_playback_available(struct snd_pcm_runtime *runtime,
 	/* disabled via module option? */
 	if (!chip->lowlatency)
 		return false;
-	/* free-wheeling mode? (e.g. dmix) */
-	if (runtime->stop_threshold > runtime->buffer_size)
+	if (in_free_wheeling_mode(runtime))
 		return false;
 	/* implicit feedback mode has own operation mode */
 	if (snd_usb_endpoint_implicit_feedback_sink(subs->data_endpoint))
@@ -1552,6 +1557,8 @@ static int snd_usb_substream_playback_trigger(struct snd_pcm_substream *substrea
 					      subs);
 		if (subs->lowlatency_playback &&
 		    cmd == SNDRV_PCM_TRIGGER_START) {
+			if (in_free_wheeling_mode(substream->runtime))
+				subs->lowlatency_playback = false;
 			err = start_endpoints(subs);
 			if (err < 0) {
 				snd_usb_endpoint_set_callback(subs->data_endpoint,
-- 
2.31.1


[-- Attachment #3: 0002-ALSA-usb-audio-Don-t-start-stream-for-capture-at-pre.patch --]
[-- Type: application/octet-stream, Size: 1075 bytes --]

From 2eeb527a4f3481452fd00263d8cee99d5297178a Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 19 Nov 2021 10:02:42 +0100
Subject: [PATCH 2/2] ALSA: usb-audio: Don't start stream for capture at
 prepare

The recent change made mistakenly the stream for capture started at
prepare stage.  Add the stream direction check to avoid it.

Fixes: 9c9a3b9da891 ("ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback")
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/usb/pcm.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
index 57b046e73bfe..cec6e91afea2 100644
--- a/sound/usb/pcm.c
+++ b/sound/usb/pcm.c
@@ -640,7 +640,8 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream)
 	runtime->delay = 0;
 
 	subs->lowlatency_playback = lowlatency_playback_available(runtime, subs);
-	if (!subs->lowlatency_playback)
+	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK &&
+	    !subs->lowlatency_playback)
 		ret = start_endpoints(subs);
 
  unlock:
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-19  9:13               ` Takashi Iwai
@ 2021-11-19 10:09                 ` Kirill A. Shutemov
  2021-11-19 10:24                   ` Takashi Iwai
  0 siblings, 1 reply; 14+ messages in thread
From: Kirill A. Shutemov @ 2021-11-19 10:09 UTC (permalink / raw)
  To: Takashi Iwai
  Cc: Linus Torvalds, Mark Brown, Liam Girdwood, Linux Kernel Mailing List

On Fri, Nov 19, 2021 at 10:13:54AM +0100, Takashi Iwai wrote:
> Below are two fix patches.  Please give it a try.

They fix the issue:

Reported-and-tested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

-- 
 Kirill A. Shutemov

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [GIT PULL] sound updates for 5.16-rc1
  2021-11-19 10:09                 ` Kirill A. Shutemov
@ 2021-11-19 10:24                   ` Takashi Iwai
  0 siblings, 0 replies; 14+ messages in thread
From: Takashi Iwai @ 2021-11-19 10:24 UTC (permalink / raw)
  To: Kirill A. Shutemov
  Cc: Takashi Iwai, Linus Torvalds, Mark Brown, Liam Girdwood,
	Linux Kernel Mailing List

On Fri, 19 Nov 2021 11:09:18 +0100,
Kirill A. Shutemov wrote:
> 
> On Fri, Nov 19, 2021 at 10:13:54AM +0100, Takashi Iwai wrote:
> > Below are two fix patches.  Please give it a try.
> 
> They fix the issue:
> 
> Reported-and-tested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

Great, I'll queue the fixes.


Thanks!

Takashi

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2021-11-19 10:24 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-03 10:24 [GIT PULL] sound updates for 5.16-rc1 Takashi Iwai
2021-11-03 15:04 ` pr-tracker-bot
2021-11-17 16:18 ` Kirill A. Shutemov
2021-11-17 16:24   ` Takashi Iwai
2021-11-17 17:48     ` Kirill A. Shutemov
2021-11-17 18:02       ` Takashi Iwai
2021-11-17 18:20         ` Kirill A. Shutemov
2021-11-18  8:01         ` Takashi Iwai
2021-11-18 16:57           ` Takashi Iwai
2021-11-18 23:26             ` Kirill A. Shutemov
2021-11-19  9:13               ` Takashi Iwai
2021-11-19 10:09                 ` Kirill A. Shutemov
2021-11-19 10:24                   ` Takashi Iwai
2021-11-18 23:17           ` Kirill A. Shutemov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).