Skip to content
  1. Jun 18, 2012
    • Dylan Reid's avatar
      ALSA: hda - Handle open while transitioning to D3. · b4a91cf0
      Dylan Reid authored
      
      
      This addresses an issue encountered when a pcm is opened while
      transitioning to low power state (codec->power_on == 1 &&
      codec->power_transition == -1).  Add snd_pcm_power_up_d3wait to
      hda_codec.  This function is used to power up from azx_open as opposed
      to snd_hda_power_up used from codec_exec_verb. When powering up from
      azx_open, wait for pending power downs to complete, avoiding the power
      up continuing in parallel with the power down on the work queue.
      
      The specific issue seen was with the CS4210 codec, it powers off the ADC
      and DAC nid in its suspend handler.  If it is re-opened before the
      ~100ms power down process completes, the ADC and DAC nid are initialized
      while powered down and audio is lost until another suspend/resume cycle.
      
      Signed-off-by: default avatarDylan Reid <dgreid@chromium.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b4a91cf0
  2. Jun 11, 2012
  3. Jun 08, 2012
    • Steven Newbury's avatar
      ALSA: hda - HDMI Audio init all connectors when VGA-switcheroo is off · 8393ec4a
      Steven Newbury authored
      
      
      When VGA_SWITCHEROO support is enabled hda_intel initialises the HDMI
      audio device on the current VGA device.  When it's not enabled it only
      initialises the HDMI device on the default VGA adaptor, this means
      secondary cards get no audio support which is very unhelpful for
      multi-seat!
      
      With this patch, when SUPPORT_VGA_SWITCHEROO is disabled hda_intel
      initialises all HDMI audio devices, not just the default VGA.
      
      [minor optimizations by tiwai]
      
      Signed-off-by: default avatarSteven Newbury <steve@snewbury.org.uk>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      8393ec4a
    • Takashi Iwai's avatar
      ALSA: hda - Fix uninitialized HDMI controllers with VGA-switcheroo · 12b78a7f
      Takashi Iwai authored
      
      
      When VGA-switcheroo is built in but unused on systems with multiple
      graphics cards, the initializations of non-default graphics cards are
      skipped and never enabled (because the switcheroo is activated only
      when the controller supports).  The current behavior is for avoiding
      the system lockup by accessing the disabled GPU, but due to the recent
      change in VGA-switcheroo, it determines the state simply by checking
      with the default VGA device.  This is the culprit.
      
      Now with the new vga_switcheroo_get_client_state(), we can know the
      initial state of the bound GPU, thus can determine the initial audio
      client state more correctly.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      12b78a7f
  4. May 18, 2012
  5. May 15, 2012
  6. May 14, 2012
  7. May 10, 2012
  8. May 09, 2012
  9. May 08, 2012
    • Takashi Iwai's avatar
      ALSA: hda - Always resume the codec immediately · 7f30830b
      Takashi Iwai authored
      
      
      This is a fix for the problem in commit 785f857d, the pop noise
      issue on some machines with ALC269.  The problem was the uninitialized
      state after the resume due to the delayed resume of the codec chips.
      In that commit, we tried to fix by forcibly putting the codec to D3 at
      suspend.  But, this still also leaves the uninitialized state after
      resume, and it _might_ be still problematic with some BIOS.  Since the
      commit turned out to regress another issues, we reverted it in the
      end.
      
      Now, in this fix, try to fix by turning on the codec immediately at
      the resume path.  We need to take care of the power-saving in this
      case.  When the device is woken up at the power-saved state, it should
      go power-saving again after the resume.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7f30830b
    • Takashi Iwai's avatar
      Revert "ALSA: hda - Set codec to D3 forcibly even if not used" · 619a341b
      Takashi Iwai authored
      
      
      This reverts commit 785f857d.
      
      The commit causes a problem with the wrong D3 state after suspend
      because the call of hda_set_power_state() involves with the power-up
      sequence, which changes the power_count, and this confuses the resume
      sequence that checks the power_count as well.
      
      Originally, this go-to-D3 sequence should be a simple task without the
      power-up sequence.  But, it'd need some proper sanity checks in the
      case of power-saved state, so it's not too easy to write now in the
      3.4-rc cycle.
      
      In short, the safest option now is to revert this affecting commit.
      
      Of course, we need to clean up and robustify the power-saving code
      better for 3.5 kernel.
      
      Reported-by: default avatarKonstantin Khlebnikov <khlebnikov@openvz.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      619a341b
  10. Apr 24, 2012
  11. Mar 07, 2012
    • Takashi Iwai's avatar
      ALSA: hda - Set codec to D3 forcibly even if not used · 785f857d
      Takashi Iwai authored
      
      
      We've seen a problem with a pop-noise at suspend/resume on a HP
      machine with ALC269, and it turned out to be an issue that the
      controller going to D3 while the codec is unused.
      
      When the device is once suspended and resumed and kept unused, the
      driver doesn't initialize the codecs.  Instead, the codec chips are
      set up dynamically at the first usage.  Now, suppose the device going
      to suspend again before the codec is set up.  The controller is turned
      off to D3 while the codec chips are untouched.  This caused a pop
      noise because the codec chip might have been turned on implicitly by
      the hardware.
      
      As a workaround, the codec chip needs to be set to D3 when going to
      suspend no matter whether it was used or not.  Also, for making it
      happening, the controller has to be always set up in the resume path.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      785f857d
  12. Feb 28, 2012
  13. Feb 08, 2012
  14. Jan 23, 2012
  15. Jan 20, 2012
  16. Jan 13, 2012
  17. Jan 08, 2012
  18. Dec 31, 2011
  19. Dec 19, 2011
  20. Dec 15, 2011
  21. Dec 14, 2011
  22. Dec 12, 2011
  23. Nov 29, 2011
    • Marc Vertes's avatar
      ALSA: hda_intel - revert a quirk that affect VIA chipsets · 4f8b6c7d
      Marc Vertes authored
      This quirk sould be reverted. It has the following probems:
      
      1) The quirk was intended to "ASUS MV2-MX SE" motherboards only, but the
      ID used matches a much broader range, potentially all boards containing a
      VIA chipset model in the family of vendor VIA 0x1106 and audio device ID
      0x3288, which encompasses VIA-VT82xx, VIA-VT1xx and VIA-VT20xx chipsets.
      
      2) VIA chipsets rely on azx_via_get_position() to handle correctly dma
      transfers during capture. Using POS_FIX_LPIB instead of POS_FIX_VIACOMBO
      leads to partially corrupted input buffers during capture. The effects
      of this bug are not immediately visible, it took strong DSP expertise,
      some expensive signal generator and a spectrum analyzer to identify it
      and verify correct behaviour using original default.
      
      3) It's almost certain that the quirk did not fix the real problem,
      if there was one. Refer to original submission:
      http://mailman.alsa-project.org/pipermail/alsa-devel/2010-February/025109.html
      
      
      
      Signed-of-by: default avatarMarc Vertes <mvertes@sigfox.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      4f8b6c7d
  24. Nov 26, 2011
    • Takashi Iwai's avatar
      ALSA: hda - Supports more audio streams · 01b65bfb
      Takashi Iwai authored
      
      
      So far, the driver supports up to 10 streams.  This is a restriction in
      hda_intel.c and hda_codec.c: in the former, the fixed array size limits
      the amount, and in the latter, the fixed device-number assignment table
      (in get_empty_pcm_device()) limits the possibility.
      
      This patch reduces the restriction by
      - using linked list for managing PCM instances in hda_intel.c, and
      - assigning non-fixed device numbers for the extra devices
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      01b65bfb
  25. Nov 06, 2011
  26. Oct 18, 2011
  27. Oct 06, 2011
    • Takashi Iwai's avatar
      ALSA: hda - Distinguish each substream for better sticky assignment · d5cf9911
      Takashi Iwai authored
      
      
      The commit ef18bede introduced a
      mechanism to assign the previously used slot for the next reopen of a
      PCM stream.  But the PCM device number isn't always unique (it may
      have multiple substreams), and also the code doesn't check the stream
      direction, thus both playback and capture streams share the same
      device number.
      
      For avoiding this conflict, make a unique key for each substream and
      store/check this value at reopening.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      d5cf9911
  28. Sep 30, 2011
  29. Sep 28, 2011
    • Takashi Iwai's avatar
      ALSA: hda - Add snoop option · 27fe48d9
      Takashi Iwai authored
      
      
      Added a new option "snoop" for the traffic control of the HD-audio
      controller chip.  When set to 0, the non-snooping mode is used with
      the traffic control bit is set in each stream control register.
      This may allow better operations in the low power mode, but the actual
      implementation is depending pretty much on the chipset.
      
      As already implemented, more or less each chipset has own snoop-control
      register bit.  Now this setup refers to the snoop option, too.
      
      Also, a new VIA chipset may require the non-snooping mode when set so
      in BIOS.  In such a case, the option value is overridden.
      
      As default, it's still set to snoop=1 for keeping the same behavior as
      before.  In near future, it'll be set to 0 as default after checking
      it works in every system well.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      27fe48d9
  30. Aug 04, 2011
  31. Jul 12, 2011
  32. Jun 17, 2011
  33. Jun 10, 2011
    • Takashi Iwai's avatar
      ALSA: use KBUILD_MODNAME for request_irq argument in sound/pci/* · 934c2b6d
      Takashi Iwai authored
      
      
      The name argument of request_irq() appears in /proc/interrupts, and
      it's quite ugly when the name entry contains a space or special letters.
      In general, it's simpler and more readable when the module name appears
      there, so let's replace all entries with KBUILD_MODNAME.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      934c2b6d
    • Takashi Iwai's avatar
      ALSA: Use KBUILD_MODNAME for pci_driver.name entries · 3733e424
      Takashi Iwai authored
      
      
      The convention for pci_driver.name entry in kernel drivers seem to be
      the module name or equivalent ones.  But, so far, almost all PCI sound
      drivers use more verbose name like "ABC Xyz (12)", and these are fairly
      confusing when appearing as a file name.
      
      This patch converts the all pci_driver.name entries in sound/pci/* to
      use KBUILD_MODNAME for more unified appearance.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3733e424
Loading