Skip to content
Snippets Groups Projects
  1. Sep 11, 2012
  2. Aug 30, 2012
    • Takashi Iwai's avatar
      ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE · 83012a7c
      Takashi Iwai authored
      
      CONFIG_SND_HDA_POWER_SAVE is no longer an experimental feature and its
      behavior can be well controlled via the default value and module
      parameter.  Let's just replace it with the standard CONFIG_PM.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      83012a7c
    • Takashi Iwai's avatar
      ALSA: hda - Fix runtime PM leftover refcounts · 68467f51
      Takashi Iwai authored
      
      When the HD-audio is removed, it leaves the refcounts when codecs are
      powered up (usually yes) in the destructor.  For fixing the unbalance,
      and cleaning up the code mess, this patch changes the following:
      - change pm_notify callback to take the explicit power on/off state,
      - check of D3 stop-clock and keep_link_on flags is moved to the caller
        side,
      - call pm_notify callback in snd_hda_codec_new() and snd_hda_codec_free()
        so that the refcounts are proprely updated.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      68467f51
  3. Aug 24, 2012
  4. Aug 23, 2012
    • Mengdong Lin's avatar
      ALSA: hda - add runtime PM support · b8dfc462
      Mengdong Lin authored
      
      Runtime PM can bring more power saving:
      - When the controller is suspended, its parent device will also have a chance
        to suspend.
      - PCI subsystem can choose the lowest power state the controller can signal
        wake up from. This state can be D3cold on platforms with ACPI PM support.
      And runtime PM can provide a gerneral sysfs interface for a system policy
      manager.
      
      Runtime PM support is based on current HDA power saving implementation. The user
      can enable runtime PM on platfroms that provide acceptable latency on transition
      from D3 to D0.
      
      Details:
      - When both power saving and runtime PM are enabled:
        -- If a codec supports 'stop-clock' in D3, it will request suspending the
           controller after it enters D3 and request resuming the controller before
           back to D0. Thus the controller will be suspended only when all codecs are
           suspended and support stop-clock in D3.
        -- User IO operations and HW wakeup signal can resume the controller back to
           D0.
      - If runtime PM is disabled, power saving just works as before.
      - If power saving is disabled, the controller won't be suspended because the
        power usage counter can never be 0.
      
      More about 'stop-clock' feature:
      If a codec can support targeted pass-through operations in D3 state when there
      is no BCLK present on the link, it will set CLKSTOP flag in the supported power
      states and report PS-ClkStopOk when entering D3 state. Please refer to HDA spec
      section 7.3.3.10 Power state and 7.3.4.12 Supported Power State.
      
      [Fixed CONFIG_PM_RUNTIME dependency in hda_intel.c by tiwai]
      
      Signed-off-by: default avatarMengdong Lin <mengdong.lin@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      b8dfc462
  5. Aug 20, 2012
  6. Aug 14, 2012
  7. Aug 09, 2012
  8. Jul 16, 2012
  9. Jul 03, 2012
    • Takashi Iwai's avatar
      ALSA: hda - Remove beep_mode=2 · 0920c9b4
      Takashi Iwai authored
      
      The beep_mode=2 option was introduced to make the beep mixer
      controlling the beep input allocation/deallocation dynamically, so
      that a user can switch between HD-audio codec digital beep and the
      system beep only via mixer API.  This was necessary because the
      keyboard driver took only the first input beep instance at that time.
      
      However, the recent keyboard driver already processes the multiple
      input instances, thus there is no point to keep this mode.
      
      Let's remove it.
      
      Acked-by: default avatarJaroslav Kysela <perex@perex.cz>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      0920c9b4
    • Takashi Iwai's avatar
      ALSA: Convert to new pm_ops for PCI drivers · 68cb2b55
      Takashi Iwai authored
      
      Straightforward conversion to the new pm_ops from the legacy
      suspend/resume ops.
      
      Since we change vx222, vx_core and vxpocket have to be converted,
      too.
      
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      68cb2b55
  10. 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
  11. Jun 15, 2012
  12. Jun 11, 2012
  13. 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
  14. May 18, 2012
  15. May 15, 2012
  16. May 14, 2012
  17. May 10, 2012
  18. May 09, 2012
  19. 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
  20. Apr 24, 2012
  21. 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
  22. Feb 28, 2012
  23. Feb 08, 2012
  24. Jan 23, 2012
  25. Jan 20, 2012
  26. Jan 13, 2012
  27. Jan 08, 2012
Loading