1. 30 Aug, 2019 1 commit
    • Takashi Sakamoto's avatar
      ALSA: firewire-motu: add support for MOTU 4pre · 6af86bdb
      Takashi Sakamoto authored
      MOTU 4pre was launched in 2012 by MOTU, Inc. This commit allows userspace
      applications can transmit and receive PCM frames and MIDI messages for
      this model via ALSA PCM interface and RawMidi/Sequencer interfaces.
      
      The device supports MOTU protocol version 3. Unlike the other devices, the
      device is simply designed. The size of data block is fixed to 10 quadlets
      during available sampling rates (44.1 - 96.0 kHz). Each data block
      includes 1 source packet header, 2 data chunks for messages, 8 data chunks
      for PCM samples and 2 data chunks for padding to quadlet alignment. The
      device has no MIDI, optical, BNC and AES/EBU interfaces.
      
      Like support for the other MOTU devices, the quality of playback sound
      is not enough good with periodical noise yet.
      
      $ python2 crpp < ~/git/am-config-rom/motu/motu-4pre.img
                     ROM header and bus information block
                     -----------------------------------------------------------------
      400  041078cc  bus_info_length 4, crc_length 16, crc 30924
      404  31333934  bus_name "1394"
      408  20ff7000  irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 255, max_rec 7 (256)
      40c  0001f200  company_id 0001f2     |
      410  000a41c5  device_id 00000a41c5  | EUI-64 0001f200000a41c5
      
                     root directory
                     -----------------------------------------------------------------
      414  0004ef04  directory_length 4, crc 61188
      418  030001f2  vendor
      41c  0c0083c0  node capabilities per IEEE 1394
      420  d1000002  --> unit directory at 428
      424  8d000005  --> eui-64 leaf at 438
      
                     unit directory at 428
                     -----------------------------------------------------------------
      428  0003ceda  directory_length 3, crc 52954
      42c  120001f2  specifier id
      430  13000045  version
      434  17103800  model
      
                     eui-64 leaf at 438
                     -----------------------------------------------------------------
      438  0002d248  leaf_length 2, crc 53832
      43c  0001f200  company_id 0001f2     |
      440  000a41c5  device_id 00000a41c5  | EUI-64 0001f200000a41c5
      Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      6af86bdb
  2. 29 Aug, 2019 2 commits
  3. 28 Aug, 2019 3 commits
  4. 27 Aug, 2019 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Allow runtime PM for controller if component notifier is used · dd23e1d5
      Takashi Iwai authored
      Currently we disallow the runtime PM of the HD-audio controller if
      it's bound with HDMI/DP on Nvidia / AMD unless it's for dGPU.  This is
      for keeping the link up to get the proper notification for ELD
      hotplug.
      
      As explained in the commit 37a3a98e ("ALSA: hda - Enable runtime
      PM only for discrete GPU"), this keep-power-up behavior is rather a
      stop-gap solution until the ELD notification via audio component.
      And now we finally got the audio component for these graphics drivers
      via commit ade49db3 ("ALSA: hda/hdmi - Allow audio component for
      AMD/ATI and Nvidia HDMI"), so it's time to change.
      
      This patch makes HD-audio controller again runtime-suspendable when
      the device gets bound with audio component in HDMI codec driver.  For
      making it easier to access from the codec driver, move the flag into
      the common hda_bus object instead of hda_intel flag.  Also rename it
      to keep_power, to indicate the actual meaning.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      dd23e1d5
  5. 26 Aug, 2019 3 commits
  6. 25 Aug, 2019 1 commit
    • Takashi Iwai's avatar
      ALSA: usb-audio: Clean up check_input_term() · e0ccdef9
      Takashi Iwai authored
      The primary changes in this patch are cleanups of __check_input_term()
      and move to a non-nested switch-case block by evaluating the pair of
      UAC version and the unit type, as we've done for parse_audio_unit().
      Also each parser is split into the function for readability.
      
      Now, a slight behavior change by this cleanup is the handling of
      processing and extension units.  Formerly we've dealt with them
      differently between UAC1/2 and UAC3; the latter returns an error if no
      input sources are available, while the former continues to parse.
      
      In this patch, unify the behavior in all cases: when input sources are
      available, it parses recursively, then override the type and the id,
      as well as channel information if not provided yet.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e0ccdef9
  7. 22 Aug, 2019 8 commits
  8. 21 Aug, 2019 2 commits
    • Takashi Iwai's avatar
      ALSA: line6: Fix memory leak at line6_init_pcm() error path · 1bc8d18c
      Takashi Iwai authored
      I forgot to release the allocated object at the early error path in
      line6_init_pcm().  For addressing it, slightly shuffle the code so
      that the PCM destructor (pcm->private_free) is assigned properly
      before all error paths.
      
      Fixes: 34501219 ("ALSA: line6: Fix write on zero-sized buffer")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1bc8d18c
    • Takashi Iwai's avatar
      ALSA: usb-audio: Fix invalid NULL check in snd_emuusb_set_samplerate() · 6de3c9e3
      Takashi Iwai authored
      The quirk function snd_emuusb_set_samplerate() has a NULL check for
      the mixer element, but this is useless in the current code.  It used
      to be a check against mixer->id_elems[unitid] but it was changed later
      to the value after mixer_eleme_list_to_info() which is always non-NULL
      due to the container_of() usage.
      
      This patch fixes the check before the conversion.
      
      While we're at it, correct a typo in the comment in the function,
      too.
      
      Fixes: 8c558076 ("ALSA: usb-audio: Clean up mixer element list traverse")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      6de3c9e3
  9. 20 Aug, 2019 2 commits
  10. 19 Aug, 2019 1 commit
  11. 16 Aug, 2019 2 commits
  12. 15 Aug, 2019 2 commits
  13. 14 Aug, 2019 8 commits
  14. 13 Aug, 2019 2 commits
  15. 12 Aug, 2019 1 commit
    • Takashi Iwai's avatar
      ALSA: hda: Set fifo_size for both playback and capture streams · 7da20788
      Takashi Iwai authored
      Currently we set hdac_stream.fifo_size field only for the playback
      stream by some odd reason I forgot, while this field isn't referred in
      any places.  Actually this fifo_size field would have been required in
      the position report correction for VIA chipset, but due to the lack of
      the fifo_size set for capture streams, snd-hda-intel driver fetches
      the register by itself.
      
      This patch straightens and simplifies the code by setting the
      fifo_size field for both playback and capture streams, and use it in
      the HD-audio controller driver.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7da20788
  16. 10 Aug, 2019 1 commit
    • Wenwen Wang's avatar
      ALSA: hda - Fix a memory leak bug · cfef67f0
      Wenwen Wang authored
      In snd_hda_parse_generic_codec(), 'spec' is allocated through kzalloc().
      Then, the pin widgets in 'codec' are parsed. However, if the parsing
      process fails, 'spec' is not deallocated, leading to a memory leak.
      
      To fix the above issue, free 'spec' before returning the error.
      
      Fixes: 352f7f91 ("ALSA: hda - Merge Realtek parser code to generic parser")
      Signed-off-by: default avatarWenwen Wang <wenwen@cs.uga.edu>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      cfef67f0