1. 10 Feb, 2014 1 commit
    • Takashi Iwai's avatar
      ALSA: Replace with IS_ENABLED() · 8eeaa2f9
      Takashi Iwai authored
      Replace the lengthy #if defined(XXX) || defined(XXX_MODULE) with the
      new IS_ENABLED() macro.
      
      The patch still doesn't cover all ifdefs.  For example, the dependency
      on CONFIG_GAMEPORT is still open-coded because this also has an extra
      dependency on MODULE.  Similarly, an open-coded ifdef in pcm_oss.c and
      some sequencer-related stuff are left untouched.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      8eeaa2f9
  2. 30 Jan, 2014 1 commit
  3. 09 Jan, 2014 1 commit
  4. 08 Jan, 2014 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Increment default stream numbers for AMD HDMI controllers · 7546abfb
      Takashi Iwai authored
      It turned out that some AMD HDMI controllers still don't provide
      proper values in GCAP register (all zero), and the driver assigns only
      one stream in that case, although the connected codec chip supports
      more than one stream.
      
      In this patch, the default max number of streams for AMD HDMI
      controllers is increased to 8, which  should suffice for most use
      cases.  The overhead by this increase is more azx_dev struct and BDL
      allocations, so it's negligible.  Of course, if the controller
      provides a proper GCAP register, the register value would be used.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7546abfb
  5. 12 Dec, 2013 1 commit
  6. 06 Dec, 2013 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Ignore small negative LPIB delay correction · e8648e5e
      Takashi Iwai authored
      Sometimes the hardware reports LPIB being advanced than POSBUF.
      When this happens, the driver adjusts to a positive value by adding
      the buffer size.  Then the driver detects it as an error (greater than
      the period size), and stops the LPIB delay account from this point
      on.
      
      When I took a close look at these conditions, the values shown are all
      very small numbers, and it'd be better to just ignore these values
      instead of discontinuing the LPIB delay correction.
      
      In this patch, the driver checks a negative delay value and ignores if
      it's a significantly small error.  Currently the threshold is set to
      64 frames, but could be smaller.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      e8648e5e
  7. 02 Dec, 2013 2 commits
    • Takashi Iwai's avatar
      ALSA: hda - Always do delayed probes for HD-audio devices · aad730d0
      Takashi Iwai authored
      HD-audio devices tend to take long time for finishing the whole
      probing procedure.  In this patch, the time-consuming part of the
      probing procedure, the codec probe and the rest initializations, are
      moved in the work, so that they can be done asynchronously in parallel
      with probes of other devices.
      
      Since we already have this mechanism in the driver code for the
      firmware and i915 request_symbol() stuff, we just need to enable it
      always; the resultant patch even reduces more lines, which is an
      additional bonus.
      
      Credit goes to David Henningsson, who suggested this workaround.
      Reported-by: default avatarMengdong Lin <mengdong.lin@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      aad730d0
    • Takashi Iwai's avatar
      ALSA: hda - Fix complete_all() timing in deferred probes · 88d071fc
      Takashi Iwai authored
      When the probe of snd-hda-intel driver is deferred due to f/w loading
      or the nested module loading, complete_all() should be also delayed
      until the initialization really finished.  Otherwise, vga-switcheroo
      client would start switching before the actual init is done.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      88d071fc
  8. 26 Nov, 2013 2 commits
  9. 07 Nov, 2013 1 commit
    • Joe Perches's avatar
      ALSA: hda_intel: ratelimit "spurious response" message · 3b70a67d
      Joe Perches authored
      dmesg here has a 100+ consecutive lines of:
      
      [ 1464.219446] hda-intel 0000:00:14.2: spurious response 0x0:0x0, last cmd=0x170500
      [ 1464.219451] hda-intel 0000:00:14.2: spurious response 0x0:0x0, last cmd=0x170500
      [ 1464.219454] hda-intel 0000:00:14.2: spurious response 0x0:0x0, last cmd=0x170500
      ...
      
      Ratelimit the message to reduce the dmesg log noise.
      
      Coalesce the format while at it.
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      3b70a67d
  10. 05 Nov, 2013 3 commits
  11. 04 Nov, 2013 1 commit
  12. 24 Oct, 2013 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Fix mute LED on HP laptops in runtime suspend · 95f74c41
      Takashi Iwai authored
      When HP laptops with mute and mic-record LEDs go to runtime suspend,
      these LEDs are turned on forcibly no matter whether GPIO pis are on or
      off.  This strange behavior seems triggered by resetting the HD-audio
      bus link at azx_rutime_suspend().  So, just add a new hda_bus flag to
      avoid the link reset at runtime suspend and set it for these HP
      machines.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      95f74c41
  13. 09 Sep, 2013 1 commit
  14. 29 Aug, 2013 1 commit
    • Dave Airlie's avatar
      snd/hda: add runtime suspend/resume on optimus support (v4) · 246efa4a
      Dave Airlie authored
      Add support for HDMI audio device on VGA cards that powerdown
      to D3cold using non-standard ACPI/PCI infrastructure (optimus).
      
      This does a couple of things to make it work:
      
      a) add a set of power ops for the hdmi domain, and enables them
      via vga_switcheroo when we are a switcheroo controlled card. This
      just replaces the runtime resume operation so that when the card
      is in D3cold the userspace pci config space access via sysfs,
      the vga switcheroon runtime resume gets called first and it calls
      the GPU resume callback before calling the sound card runtime
      resume.
      
      b) standard ACPI/PCI stacks won't put a device into D3cold without
      an ACPI handle, but since the hdmi audio devices on gpus don't have
      an ACPI handle, we need to manually force the device into D3cold
      after suspend from the switcheroo path only.
      
      c) don't try and do runtime s/r when the GPU is off.
      
      d) call runtime suspend/resume during switcheroo suspend/resume
      this is to make sure the runtime stack knows to try and resume
      the hdmi audio device for pci config space access.
      
      v2: fix incorrect runtime call suspend->resume.
      
      v3: rework irq handler to avoid false irq when we are resuming
      but haven't runtime resumed yet, don't bother trying D3cold,
      it won't work, just set it manually ourselves, move runtime s/r
      calls outside the main s/r hook. enable dnyamic pm properly by
      dropping reference.
      
      v4: put back irq handler check just wrap it with cap check
      Acked-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      246efa4a
  15. 19 Aug, 2013 1 commit
  16. 29 Jul, 2013 1 commit
    • Wang Xingchao's avatar
      ALSA: hda - WAKEEN feature enabling for runtime pm · 7d4f606c
      Wang Xingchao authored
      With runtime power save feature enabled, Headphone hotplug
      event will not be detected while controller/codec in D3. HDA has
      feature WAKEEN to let codec wake up system if controller is in D3 or
      system in S3.(HDA Spec 4.5.9.2/3). Codec can send out INT or wake up
      controller depending on whether CIE or GIE enabled.(Figure 4, Interupt
      structure).
      
      The controller must be in RESET mode after enter runtime-suspend, otherwise
      it will not be waken up even if codec send out wake-up event. And STATESTS
      will be cleared after controller brought out of RESET mode.
      
      This patch only enable WAKEEN for runtime-suspend(Controller D3) mode,
      not for system S3 mode. with tool "evtest", Headphone hotplug events
      could be cought and reported successfully.
      
      [fixed an unused variable warning by tiwai]
      Signed-off-by: default avatarWang Xingchao <xingchao.wang@linux.intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7d4f606c
  17. 24 Jul, 2013 1 commit
  18. 25 Jun, 2013 1 commit
    • Mengdong Lin's avatar
      ALSA: hda - clean up code to reset hda link · 7295b264
      Mengdong Lin authored
      This patch is a cleanup to the previous patch "reset hda link during system/
      runtime suspend".
      
      In this patch
      - azx_enter_link_reset() and azx_exit_link_reset() are defined for entering and
        exiting the link reset respectively. azx_link_reset() is no longer used and
        replaced by azx_enter_link_reset().
      - azx_reset() reuses the above two new functions for a link reset cycle
      Signed-off-by: default avatarMengdong Lin <mengdong.lin@intel.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7295b264
  19. 24 Jun, 2013 1 commit
  20. 06 Jun, 2013 4 commits
  21. 29 May, 2013 1 commit
    • Takashi Iwai's avatar
      ALSA: PCI: Remove superfluous pci_set_drvdata(pci, NULL) at remove · 20a24225
      Takashi Iwai authored
      As drvdata is cleared to NULL at probe failure or at removal by the
      driver core, we don't have to call pci_set_drvdata(pci, NULL) any
      longer in each driver.
      
      The only remaining pci_set_drvdata(NULL) is in azx_firmware_cb() in
      hda_intel.c.  Since this function itself releases the card instance,
      we need to clear drvdata here as well, so that it won't be released
      doubly in the remove callback.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      20a24225
  22. 17 May, 2013 1 commit
  23. 03 May, 2013 1 commit
  24. 16 Apr, 2013 1 commit
  25. 09 Apr, 2013 1 commit
  26. 05 Apr, 2013 1 commit
  27. 04 Apr, 2013 1 commit
    • Takashi Iwai's avatar
      Revert "ALSA: hda - Allow power_save_controller option override DCAPS" · 8fc24426
      Takashi Iwai authored
      This reverts commit 6ab31741.
      
      The commit [6ab31741: ALSA: hda - Allow power_save_controller option
      override DCAPS] changed the behavior of power_save_controller so that
      it can override the driver capability.  This assumed that this option
      is rarely changed dynamically unlike power_save option.  Too naive.
      
      It turned out that the user-space power-management tool tries to set
      power_save_controller option to 1 together with power_save option
      without knowing what's actually doing.  This enabled forcibly the
      runtime PM of the controller,  which is known to be broken om many
      chips thus disabled as default.
      
      So, the only sane fix is to revert this commit again.  It was intended
      to ease debugging/testing for runtime PM enablement, but obviously we
      need another way for it.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=56171Reported-and-tested-by: default avatarNikita Tsukanov <keks9n@gmail.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      8fc24426
  28. 20 Mar, 2013 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Fix abuse of snd_hda_lock_devices() for DSP loader · eb49faa6
      Takashi Iwai authored
      The current DSP loader code abuses snd_hda_lock_devices() for ensuring
      the DSP loader not conflicting with the other normal operations.  But
      this trick obviously doesn't work for the PM resume since the streams
      are kept opened there where snd_hda_lock_devices() returns -EBUSY.
      That means we need another lock mechanism instead of abuse.
      
      This patch provides the new lock state to azx_dev.  Theoretically it's
      possible that the DSP loader conflicts with the stream that has been
      already assigned for another PCM.  If it's running, the DSP loader
      should simply fail.  If not -- it's the case for PM resume --, we
      should assign this stream temporarily to the DSP loader, and take it
      back to the PCM after finishing DSP loading.  If the PCM is operated
      during the DSP loading, it should get an error, too.
      Reported-and-tested-by: default avatarDylan Reid <dgreid@chromium.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      eb49faa6
  29. 14 Feb, 2013 1 commit
  30. 10 Feb, 2013 2 commits
  31. 07 Feb, 2013 1 commit
  32. 01 Feb, 2013 1 commit