1. 12 1月, 2013 2 次提交
    • T
      ALSA: hda - Introduce snd_hda_codec_amp_init*() · 280e57d5
      Takashi Iwai 提交于
      The new function snd_hda_codec_amp_init() (and the stereo variant)
      initializes the amp value only once at the first access.  If the amp
      was already initialized or updated, this won't do anything more.
      
      It's useful for initializing the input amps that are in the part of
      the path but never used.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      280e57d5
    • T
      ALSA: hda - Introduce cache & flush cmd / amp writes · c370dd6e
      Takashi Iwai 提交于
      For optimizing the verb executions, a new mechanism to cache the verbs
      and amp update commands is introduced.  With the new "write to cache
      and flush" way, you can reduce the same verbs that have been written
      multiple times.
      
      When codec->cached_write flag is set, the further
      snd_hda_codec_write_cache() and snd_hda_codec_amp_stereo() calls will
      be performed only on the command or amp cache table, but not sent to
      the hardware yet.  Once after you call all commands and update amps,
      call snd_hda_codec_resume_amp() and snd_hda_codec_resume_cache().
      Then all cached writes and amp updates will be written to the
      hardware, and the dirty flags are cleared.
      
      In this implementation, the existing cache table is reused, so
      actually no big code change is seen here.  Each cache entry has a new
      dirty flag now (so the cache key is now reduced to 31bit).
      
      As a good side-effect by this change, snd_hda_codec_resume_*() will no
      longer execute verbs that have been already issued during the resume
      phase by checking the dirty flags.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c370dd6e
  2. 01 12月, 2012 1 次提交
  3. 17 10月, 2012 1 次提交
    • T
      ALSA: hda - Add workaround for conflicting IEC958 controls · dcda5806
      Takashi Iwai 提交于
      When both an SPDIF and an HDMI device are created on the same card
      instance, multiple IEC958 controls are created with indices=0, 1, ...
      But the alsa-lib configuration can't know which index corresponds
      actually to which PCM device, and both the SPDIF and the HDMI
      configurations point to the first IEC958 control wrongly.
      
      This patch introduces a (hackish and ugly) workaround: the IEC958
      controls for the SPDIF device are re-labeled with device=1 when HDMI
      coexists.  The device=1 corresponds to the actual PCM device for
      SPDIF, so it's anyway a better representation.  In future, HDMI
      controls should be moved with the corresponding PCM device number,
      too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      dcda5806
  4. 30 8月, 2012 1 次提交
  5. 04 7月, 2012 1 次提交
  6. 09 5月, 2012 1 次提交
  7. 20 4月, 2012 2 次提交
    • T
      ALSA: hda - Add snd_hda_get_default_vref() helper function · 4740860b
      Takashi Iwai 提交于
      Add a new helper function to guess the default VREF pin control bits
      for mic in.  This can be used to set the pin control value safely
      matching with the actual pin capabilities.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4740860b
    • T
      ALSA: hda - Introduce snd_hda_set_pin_ctl*() helper functions · cdd03ced
      Takashi Iwai 提交于
      For setting the pin-control values more safely to match with the
      actual pin capability bits, a copule of new helper functions,
      snd_hda_set_pin_ctl() and snd_hda_set_pin_ctl_cache(), are
      introduced.  These are simple replacement of the codec verb write with
      AC_VERB_SET_PIN_WIDGET but do more sanity checks and filter out
      superfluous pin-control bits if they don't fit with the corresponding
      pin capabilities.
      
      Some codecs are screwed up or ignore the command when such a wrong bit
      is set.  These helpers will avoid such secret errors.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      cdd03ced
  8. 13 3月, 2012 2 次提交
  9. 12 3月, 2012 1 次提交
  10. 10 3月, 2012 1 次提交
    • T
      ALSA: hda - Initialize vmaster slave volumes · 18478e8b
      Takashi Iwai 提交于
      When the driver is changed to use vmaster or a new slave element is
      added by the improvement of the parser code, user may face often the
      silent output because of the muted slave mixer although Master volume
      is properly set.  And they complain.  And I get upset.
      
      Although such a mixer element should be initialized via "alsactl init",
      it'd be more user-friendly if the known output slaves are unmuted and
      set to 0dB so that user can control the volume only with Master as
      default.  Since Master is still set muted as default even with this
      change, no risk of the speaker blow up, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      18478e8b
  11. 03 2月, 2012 1 次提交
    • T
      ALSA: hda - Add suffix argument to snd_hda_add_vmaster() · 9322ca54
      Takashi Iwai 提交于
      In most cases, the slave strings for vmaster are identical between
      volumes and switches except for "xxx Volume" and "xxx Switch" suffix.
      Now snd_hda_add_vmaster() takes the optional suffix argument so that
      each string can be composed with the given suffix, and we can share the
      slave name strings in both volume and switch calls nicely.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      9322ca54
  12. 10 1月, 2012 1 次提交
  13. 02 12月, 2011 1 次提交
    • T
      ALSA: hda - Integrate input-jack stuff into kctl-jack · 31ef2257
      Takashi Iwai 提交于
      Instead of managing input-jack stuff separately, call all stuff inside
      the kctl-jack creation, deletion and report.  The caller no longer needs
      to care about input-jack.
      
      The better integration between input-jack and kctl-jack should be done
      in the upper layer in near future, but for now, it's implemented locally
      for more tests.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      31ef2257
  14. 16 11月, 2011 5 次提交
  15. 10 11月, 2011 1 次提交
    • T
      ALSA: hda - Re-enable the check NO_PRESENCE misc bit · 2f451d2a
      Takashi Iwai 提交于
      We disabled the check of NO_PRESENCE bit of the default pin-config
      in commit f4419172 temporarily.  One problem was that the first
      implementation was wrong -- the bit after the shift must be checked.
      However, this would still give many regressions on machines with broken
      BIOS.  They set this bit wrongly even on active pins.
      
      A workaround is to check whether all pins contain this bit.  As far as
      I've checked, broken BIOSen set this bit on all pins, no matter whether
      active or not.  In such a case, the driver should ignore this bit check.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2f451d2a
  16. 06 11月, 2011 1 次提交
    • T
      ALSA: hda - Revert the check of NO_PRESENCE pincfg default bit · f4419172
      Takashi Iwai 提交于
      The implementation on commit [08a1f5eb: ALSA: hda - Check NO_PRESENCE
      pincfg default bit] seems like a mis-interpretation of specification.
      The spec gives the reversed bit definition.  But, following the spec
      also causes to change so many existing device configurations, thus we
      can't change it so easily for now.  For 3.2-rc1, it's safer to revert
      this check (actually this patch comments out the code).
      
      We may re-introduced the fixed version once after the wider test-case
      coverages are done.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f4419172
  17. 02 11月, 2011 1 次提交
  18. 27 10月, 2011 1 次提交
  19. 06 10月, 2011 1 次提交
  20. 03 10月, 2011 1 次提交
    • P
      ALSA: hda/hdmi: expose ELD control · 14bc52b8
      Pierre-Louis Bossart 提交于
      Applications may want to read ELD information to
      understand what codecs are supported on the HDMI
      receiver and handle the a-v delay for better lip-sync.
      
      ELD information is exposed in a device-specific
      IFACE_PCM kcontrol. Tested both with amixer and
      PulseAudio; with a corresponding patch passthrough modes
      are enabled automagically.
      
      ELD control size is set to zero in case of errors or
      wrong configurations. No notifications are implemented
      for now, it is expected that jack detection is used to
      reconfigure the audio outputs.
      Signed-off-by: NPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      14bc52b8
  21. 24 8月, 2011 1 次提交
  22. 23 8月, 2011 1 次提交
  23. 15 8月, 2011 1 次提交
  24. 26 7月, 2011 1 次提交
  25. 28 6月, 2011 1 次提交
  26. 06 6月, 2011 2 次提交
    • S
      ALSA: hda: hdmi_eld_update_pcm_info: update a stream in place · 2def8172
      Stephen Warren 提交于
      A future change won't store an entire hda_pcm_stream just to represent
      the capabilities of a codec; a custom data-structure will be used. To
      ease that transition, modify hdmi_eld_update_pcm_info to expect the
      hda_pcm_stream to be pre-initialized with the codec's capabilities, and
      to update those capabilities in-place based on the ELD.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2def8172
    • S
      ALSA: hda: Virtualize SPDIF out controls · 74b654c9
      Stephen Warren 提交于
      The SPDIF output controls apply to converter widgets. A future change
      will create a PCM device per pin widget, and hence a set of SPDIF output
      controls per pin widget, for certain HDMI codecs. To support this, we
      need the ability to virtualize the SPDIF output controls. Specifically:
      
      * Controls can be "unassigned" from real hardware when a converter is
        not used for the PCM the control was created for.
      * Control puts only write to hardware when they are assigned.
      * Controls can be "assigned" to real hardware when a converter is picked
        to support output for a particular PCM.
      * When a converter is assigned, the hardware is updated to the cached
        configuration.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      74b654c9
  27. 17 5月, 2011 2 次提交
  28. 02 5月, 2011 2 次提交
  29. 03 3月, 2011 1 次提交
  30. 18 1月, 2011 1 次提交