1. 25 Jun, 2023 1 commit
  2. 23 Jun, 2023 2 commits
  3. 21 Jun, 2023 7 commits
  4. 15 Jun, 2023 1 commit
  5. 13 Jun, 2023 10 commits
  6. 12 Jun, 2023 12 commits
  7. 11 Jun, 2023 1 commit
  8. 07 Jun, 2023 6 commits
    • Ivan Orlov's avatar
      selftests: ALSA: Add test for the 'pcmtest' driver · 10b98a4d
      Ivan Orlov authored
      This test covers the new Virtual PCM Test Driver, including the capturing,
      playback and ioctl redefinition functionalities for both interleaved and
      non-interleaved access modes. This test is also helpful as an usage example
      of the 'pcmtest' driver.
      
      We have a lot of different virtual media drivers, which can be used for
      testing of the userspace applications and media subsystem middle layer.
      However, all of them are aimed at testing the video functionality and
      simulating the video devices. For audio devices we have only snd-dummy
      module, which is good in simulating the correct behavior of an ALSA device.
      I decided to write a tool, which would help to test the userspace ALSA
      programs (and the PCM middle layer as well) under unusual circumstances
      to figure out how they would behave. So I came up with this Virtual PCM
      Test Driver.
      
      This new Virtual PCM Test Driver has several features which can be useful
      during the userspace ALSA applications testing/fuzzing, or testing/fuzzing
      of the PCM middle layer. Not all of them can be implemented using the
      existing virtual drivers (like dummy or loopback). Here is what can this
      driver do:
      
      - Simulate both capture and playback processes
      - Generate random or pattern-based capture data
      - Check the playback stream for containing the looped pattern
      - Inject delays into the playback and capturing processes
      - Inject errors during the PCM callbacks
      
      Also, this driver can check the playback stream for containing the
      predefined pattern, which is used in the corresponding selftest to check
      the PCM middle layer data transferring functionality. Additionally, this
      driver redefines the default RESET ioctl, and the selftest covers this PCM
      API functionality as well.
      
      The driver supports both interleaved and non-interleaved access modes, and
      have separate pattern buffers for each channel. The driver supports up to
      4 channels and up to 8 substreams.
      Signed-off-by: default avatarIvan Orlov <ivan.orlov0322@gmail.com>
      Acked-by: default avatarJaroslav Kysela <perex@perex.cz>
      Link: https://lore.kernel.org/r/20230606193254.20791-3-ivan.orlov0322@gmail.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      10b98a4d
    • Ivan Orlov's avatar
      ALSA: Implement the new Virtual PCM Test Driver · 315a3d57
      Ivan Orlov authored
      We have a lot of different virtual media drivers, which can be used for
      testing of the userspace applications and media subsystem middle layer.
      However, all of them are aimed at testing the video functionality and
      simulating the video devices. For audio devices we have only snd-dummy
      module, which is good in simulating the correct behavior of an ALSA device.
      I decided to write a tool, which would help to test the userspace ALSA
      programs (and the PCM middle layer as well) under unusual circumstances
      to figure out how they would behave. So I came up with this Virtual PCM
      Test Driver.
      
      This new Virtual PCM Test Driver has several features which can be useful
      during the userspace ALSA applications testing/fuzzing, or testing/fuzzing
      of the PCM middle layer. Not all of them can be implemented using the
      existing virtual drivers (like dummy or loopback). Here is what can this
      driver do:
      
      - Simulate both capture and playback processes
      - Generate random or pattern-based capture data
      - Inject delays into the playback and capturing processes
      - Inject errors during the PCM callbacks
      
      Also, this driver can check the playback stream for containing the
      predefined pattern, which is used in the corresponding selftest to check
      the PCM middle layer data transferring functionality. Additionally, this
      driver redefines the default RESET ioctl, and the selftest covers this PCM
      API functionality as well.
      
      The driver supports both interleaved and non-interleaved access modes, and
      have separate pattern buffers for each channel. The driver supports up to
      4 channels and up to 8 substreams.
      Signed-off-by: default avatarIvan Orlov <ivan.orlov0322@gmail.com>
      Acked-by: default avatarJaroslav Kysela <perex@perex.cz>
      Link: https://lore.kernel.org/r/20230606193254.20791-2-ivan.orlov0322@gmail.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      315a3d57
    • Ivan Orlov's avatar
      docs: sound: add 'pcmtest' driver documentation · f091ec76
      Ivan Orlov authored
      Add documentation for the new Virtual PCM Test Driver. It covers all
      possible usage cases: errors and delay injections, random and
      pattern-based data generation, playback and ioctl redefinition
      functionalities testing.
      
      We have a lot of different virtual media drivers, which can be used for
      testing of the userspace applications and media subsystem middle layer.
      However, all of them are aimed at testing the video functionality and
      simulating the video devices. For audio devices we have only snd-dummy
      module, which is good in simulating the correct behavior of an ALSA device.
      I decided to write a tool, which would help to test the userspace ALSA
      programs (and the PCM middle layer as well) under unusual circumstances
      to figure out how they would behave. So I came up with this Virtual PCM
      Test Driver.
      
      This new Virtual PCM Test Driver has several features which can be useful
      during the userspace ALSA applications testing/fuzzing, or testing/fuzzing
      of the PCM middle layer. Not all of them can be implemented using the
      existing virtual drivers (like dummy or loopback). Here is what can this
      driver do:
      
      - Simulate both capture and playback processes
      - Check the playback stream for containing the looped pattern
      - Generate random or pattern-based capture data
      - Inject delays into the playback and capturing processes
      - Inject errors during the PCM callbacks
      
      Also, this driver can check the playback stream for containing the
      predefined pattern, which is used in the corresponding selftest to check
      the PCM middle layer data transferring functionality. Additionally, this
      driver redefines the default RESET ioctl, and the selftest covers this PCM
      API functionality as well.
      
      The driver supports both interleaved and non-interleaved access modes, and
      have separate pattern buffers for each channel. The driver supports up to
      4 channels and up to 8 substreams.
      Signed-off-by: default avatarIvan Orlov <ivan.orlov0322@gmail.com>
      Acked-by: default avatarJaroslav Kysela <perex@perex.cz>
      Link: https://lore.kernel.org/r/20230606193254.20791-1-ivan.orlov0322@gmail.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f091ec76
    • Yanteng Si's avatar
      ALSA: hda/intel: Workaround for WALLCLK register for loongson controller · a4d2b853
      Yanteng Si authored
      On loongson controller, the value of WALLCLK register
      is always 0, which is meaningless, so we return directly.
      Signed-off-by: default avatarYanteng Si <siyanteng@loongson.cn>
      Signed-off-by: default avatarYingkun Meng <mengyingkun@loongson.cn>
      Acked-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      Link: https://lore.kernel.org/r/185df71ef413ab190460eb377703214ee7288aeb.1686128807.git.siyanteng@loongson.cnSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      a4d2b853
    • Yanteng Si's avatar
      ALSA: hda: Workaround for SDnCTL register on loongson · 942ccdd8
      Yanteng Si authored
      On loongson controller, after calling snd_hdac_stream_updateb()
      to enable DMA engine, the SDnCTL.STRM will become to zero.  We
      need to access SDnCTL in dword to keep SDnCTL.STRM is not changed.
      Signed-off-by: default avatarYanteng Si <siyanteng@loongson.cn>
      Signed-off-by: default avatarYingkun Meng <mengyingkun@loongson.cn>
      Acked-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      Link: https://lore.kernel.org/r/27aeddf5ebbe7c69631cec0e489c1b264be94990.1686128807.git.siyanteng@loongson.cnSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      942ccdd8
    • Yanteng Si's avatar
      ALSA: hda: Using polling mode for loongson controller by default · cbc3e98a
      Yanteng Si authored
      On loongson controller, RIRBSTS.RINTFL cannot be cleared,
      azx_interrupt() is called all the time. We disable RIRB
      interrupt, and use polling mode by default.
      Signed-off-by: default avatarYanteng Si <siyanteng@loongson.cn>
      Signed-off-by: default avatarYingkun Meng <mengyingkun@loongson.cn>
      Acked-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
      Link: https://lore.kernel.org/r/d309a75424d438b958d90d797b4f1ba45468e090.1686128807.git.siyanteng@loongson.cnSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      cbc3e98a