1. 18 4月, 2013 1 次提交
    • T
      ALSA: hda - Don't call vmaster hook when bus->shutdown is set · 594813ff
      Takashi Iwai 提交于
      The flag bus->shutdown implies that the control elements might have
      been already destroyed.  When a codec is resumed at this state and
      tries to call vmaster hook (e.g. in snd_hda_gen_init()), it would
      refer to a non-existing object, resulting in Oops in the end.
      
      This patch just adds a check of the flag in the caller side for
      avoiding such a crash.
      
      Though, the best would be to clear hook->sw_kctl by the destructor of
      the corresponding ctl element, but vmaster uses its own private_free,
      it can't be done easily.  So let it be for a while.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      594813ff
  2. 17 4月, 2013 1 次提交
  3. 16 4月, 2013 4 次提交
    • T
      ALSA: hda - Use the primary DAC for all aamix outputs · 5ead56f2
      Takashi Iwai 提交于
      When setting up the aamix output paths, use the primary DAC instead of
      the individual DAC for each output as default.  Otherwise multiple
      DACs will be turned on for a single aamix widget, which results in
      doubly or more volumes, because the duplicated signals will be sent
      through all these DACs for a single stream.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      5ead56f2
    • T
      ALSA: hda - Fix aamix activation with loopback control on VIA codecs · 65033cc8
      Takashi Iwai 提交于
      When we have a loopback mixer control, this should manage the state
      whether the output paths include the aamix or not.  But the current
      code blindly initializes the output paths with aamix = true, thus the
      aamix is enabled unless the loopback mixer control is changed.
      
      Also, update_aamix_paths() called by the loopback mixer control put
      callback invokes snd_hda_activate_path() with aamix = true even for
      disabling the mixing.  This leaves the aamix path even though the
      loopback control is turned off.
      
      This patch fixes these issues:
      - Introduced aamix_default() helper to indicate whether with_aamix is
        true or false as default
      - Fix the argument in update_aamix_paths() for disabling loopback
      Reported-by: NLydia Wang <LydiaWang@viatech.com.cn>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      65033cc8
    • D
      ALSA: hda - Add codec delay to the capture time stamp. · ae03bbb8
      Dylan Reid 提交于
      For capture, the delay through the codec contributes to the time stamp
      of the sample recorded at the A to D.  Rename the codec time stamp
      function appropriately.
      Signed-off-by: NDylan Reid <dgreid@chromium.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ae03bbb8
    • T
      Merge tag 'asoc-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-next · ad2109d7
      Takashi Iwai 提交于
      ASoC: Updates for v3.10
      
      A bunch of changes here, the most interesting one subsystem wise being
      Morimoto-san's work to create snd_soc_component which doesn't do much
      for now but will be pretty important going forwards:
      
       - Add a new component object type which will form the basis of moving
         to a more generic handling of SoC and off-SoC components, contributed
         by Kuninori Morimoto.
       - A fairly large set of cleanups for the dmaengine integration from
         Lars-Peter Clausen, starting to move towards being able to have a
         generic driver based on the library.
       - Performance optimisations to DAPM from Ryo Tsutsui.
       - Support for mixer control sharing in DAPM from Stephen Warren.
       - Multiplatform ARM cleanups from Arnd Bergmann.
       - New CODEC drivers for AK5385 and TAS5086 from Daniel Mack.
      ad2109d7
  4. 15 4月, 2013 3 次提交
  5. 13 4月, 2013 1 次提交
    • C
      ALSA: usb: Add quirk for 192KHz recording on E-Mu devices · 1539d4f8
      Calvin Owens 提交于
      When recording at 176.2KHz or 192Khz, the device adds a 32-bit length
      header to the capture packets, which obviously needs to be ignored for
      recording to work properly.
      
      Userspace expected:  L0 L1 L2 R0 R1 R2
      ...but actually got: R2 L0 L1 L2 R0 R1
      
      Also, the last byte of the length header being interpreted as L0 of
      the first sample caused spikes every 0.5ms, resulting in a loud 16KHz
      tone (about the highest 'B' on a piano) being present throughout
      captures.
      
      Tested at all sample rates on an E-Mu 0404USB, and tested for
      regressions on a generic USB headset.
      Signed-off-by: NCalvin Owens <jcalvinowens@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1539d4f8
  6. 12 4月, 2013 30 次提交