1. 20 4月, 2015 1 次提交
  2. 13 4月, 2015 1 次提交
  3. 11 4月, 2015 1 次提交
  4. 10 4月, 2015 1 次提交
  5. 09 4月, 2015 2 次提交
    • T
      ALSA: hda/realtek - Fix the regression by widget power-saving · cffd3966
      Takashi Iwai 提交于
      While enabling the widget power-saving for ALC269 & co, the important
      setup was forgotten -- stream_pm ops.  Without this setup, the paths
      for PCM won't be powered up at all.
      
      Also, the power_filter callbacks used in ALC269 & co need to chain to
      the default snd_hda_gen_path_power_filter().
      Tested-by: NHui Wang <hui.wang@canonical.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      cffd3966
    • T
      ALSA: hda - Fix headphone pin config for Lifebook T731 · cc7016ab
      Takashi Iwai 提交于
      Some BIOS version of Fujitsu Lifebook T731 seems to set up the
      headphone pin (0x21) without the assoc number 0x0f while it's set only
      to the output on the docking port (0x1a).  With the recent commit
      [03ad6a8c: ALSA: hda - Fix "PCM" name being used on one DAC when
       there are two DACs], this resulted in the weird mixer element
      mapping where the headphone on the laptop is assigned as a shared
      volume with the speaker and the docking port is assigned as an
      individual headphone.
      
      This patch improves the situation by correcting the headphone pin
      config to the more appropriate value.
      Reported-and-tested-by: NTaylor Smock <smocktaylor@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      cc7016ab
  6. 08 4月, 2015 3 次提交
  7. 04 4月, 2015 2 次提交
  8. 26 3月, 2015 1 次提交
  9. 24 3月, 2015 1 次提交
  10. 23 3月, 2015 3 次提交
    • T
      ALSA: hda - Use regmap for command verb caches, too · a551d914
      Takashi Iwai 提交于
      Like the previous patches, this patch converts also to the regmap, at
      this time, the cached verb writes are the target.  But this conversion
      needs a bit more caution than before.
      
      - In the old code, we just record any verbs as is, and restore them at
        resume.  For the regmap scheme, this doesn't work, since a few verbs
        like AMP or DIGI_CONVERT are asymmetrical.  Such verbs are converted
        either to the dedicated function (snd_hda_regmap_xxx_amp()) or
        changed to the unified verb.
      
      - Some verbs have to be declared as vendor-specific ones before
        accessing via regmap.
      
      Also, the minor optimization with codec->cached_write flag is dropped
      in a few places, as this would confuse the operation.  Further
      optimizations will be brought in the later patches, if any.
      
      This conversion ends up with a drop of significant amount of codes,
      mostly the helper codes that are no longer used.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      a551d914
    • T
      ALSA: hda - Use regmap for amp accesses · eeecd9d1
      Takashi Iwai 提交于
      This patch converts the amp access functions to the regmap helpers.
      The amp values were formerly cached in the own hash table.  Now it's
      dropped by the regmap's cache.
      
      The only tricky conversion is snd_hda_codec_amp_init().  This function
      shouldn't do anything if the amp was already initialized.  For
      achieving this behavior, a value is read once at first temporarily in
      the cache-only mode.  Only if it returns an error,  i.e. the item
      still doesn't exist in the cache, it proceeds to the update.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      eeecd9d1
    • T
      ALSA: hda - Move a part of hda_codec stuff into hdac_device · 7639a06c
      Takashi Iwai 提交于
      Now some codes and functionalities of hda_codec struct are moved to
      hdac_device struct.  A few basic attributes like the codec address,
      vendor ID number, FG numbers, etc are moved to hdac_device, and they
      are accessed like codec->core.addr.  The basic verb exec functions are
      moved, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7639a06c
  11. 18 3月, 2015 1 次提交
    • T
      ALSA: hda - Simplify PCM setup overrides · fb83b635
      Takashi Iwai 提交于
      This patch does two things:
      - code refactoring with a local helper function,
      - allow codec drivers to provide the specific PCM stream info pointers
        only for overriding the non-NULL entries, instead of copying the
        whole.
      
      This simplifies the codec driver side (currently the only user is
      alc269's 44kHz fixed rate).
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      fb83b635
  12. 06 3月, 2015 1 次提交
  13. 03 3月, 2015 1 次提交
    • T
      ALSA: hda - Allocate hda_pcm objects dynamically · bbbc7e85
      Takashi Iwai 提交于
      So far, the hda_codec object kept the hda_pcm list in an array, and
      the codec driver was expected to assign the array.  However, this
      makes the object life cycle management harder, because the assigned
      array is freed at the codec driver detach while it might be still
      accessed by the opened streams.
      
      In this patch, we allocate each hda_pcm object dynamically and manage
      it as a linked list.  Each object has a kref refcount, and both the
      codec driver binder and the PCM open/close touches it, so that the
      object won't be freed while in use.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      bbbc7e85
  14. 23 2月, 2015 1 次提交
    • T
      ALSA: hda - Bind codecs via standard bus · d8a766a1
      Takashi Iwai 提交于
      Now we create the standard HD-audio bus (/sys/bus/hdaudio), and bind
      the codec driver with the codec device over there.  This is the first
      step of the whole transition so that the changes to each codec driver
      are kept as minimal as possible.
      
      Each codec driver needs to register hda_codec_driver struct containing
      the currently existing preset via the new helper macro
      module_hda_codec_driver().  The old hda_codec_preset_list is replaced
      with this infrastructure.  The generic parsers (for HDMI and other)
      are also included in the preset with the special IDs to bind
      uniquely.
      
      In HD-audio core side, the device binding code is split to
      hda_bind.c.  It provides the snd_hda_bus_type implementation to match
      the codec driver with the given codec vendor ID.  It also manages the
      module auto-loading by itself like before: when the matching isn't
      found, it tries to probe the corresponding codec modules, and finally
      falls back to the generic drivers.  (The special ID mentioned above is
      set at this stage.)
      
      The only visible change to outside is that the hdaudio sysfs entry now
      appears in /sys/bus/devices, not as a sound class device.
      
      More works to move the suspend/resume and remove ops will be
      (hopefully) done in later patches.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      d8a766a1
  15. 13 2月, 2015 1 次提交
  16. 10 2月, 2015 1 次提交
  17. 20 1月, 2015 1 次提交
  18. 15 1月, 2015 1 次提交
    • T
      ALSA: hda - Select INPUT for Realtek HD-audio codec · ffcd28d8
      Takashi Iwai 提交于
      The commit commit [33f4acd3: ALSA: hda - Enable mic mute hotkey
      and LEDs for an HP machine] introduced a quirk for a HP machine
      involving with the input event handling.  Although the relevant code
      is protected via IS_ENABLED(CONFIG_INPUT), this doesn't suffice when
      the audio driver is built in while the input is module.
      
      As an easy workaround, this patch forcibly selects CONFIG_INPUT in
      Kconfig.  This shouldn't be a practical problem since CONFIG_INPUT is
      almost mandatory for all systems.  Also, this allows to remove the
      ugly ifdefs in the code.
      
      Fixes: 33f4acd3 ('ALSA: hda - Enable mic mute hotkey and LEDs for an HP machine')
      Acked-by: NDavid Henningsson <david.henningsson@canonical.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ffcd28d8
  19. 11 1月, 2015 1 次提交
  20. 07 1月, 2015 1 次提交
  21. 19 12月, 2014 1 次提交
  22. 17 12月, 2014 2 次提交
  23. 06 12月, 2014 1 次提交
  24. 02 12月, 2014 1 次提交
  25. 21 11月, 2014 2 次提交
  26. 20 11月, 2014 1 次提交
  27. 18 11月, 2014 2 次提交
  28. 12 11月, 2014 1 次提交
    • K
      ALSA: hda/realtek - Change EAPD to verb control · 394c97f8
      Kailang Yang 提交于
      This will fix no sound in Linux system after reboot from windows.
      
      Change log:
      - alc662_fill_coef() is replaced with alc_fill_eapd_coef_idx()
        and move into alc_auto_init_amp().
      - For ALC262, ALC267, ALC268, ALC269, ALC233, ALC255, ALC280, ALC282,
        ALC283, ALC284, ALC285, ALC286, ALC288, ALC290, ALC292, ALC293, ALC294,
        ALC668, ALC888VC, ALC888VD, ALC891, ALC892, ALC898 and ALC1150, add update
        COEF control for EAPD setting.
      - Remove alc269_fill_coef() for update EAPD control line.
      
      ADDITIONAL NOTE:
      Many Realtek cdoecs have a COEF bit to switch the master amp control
      between COEF and EAPD.  Windows drivers seem using COEF while we use
      EAPD, which is more standard.  As a result, some system suffer from
      the silent output when booting after Windows.  This patch sets the
      COEF bits on the relevant codecs properly to switch to EAPD control.
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=87771Signed-off-by: NKailang Yang <kailang@realtek.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      394c97f8
  29. 06 11月, 2014 1 次提交
  30. 05 11月, 2014 1 次提交
  31. 30 10月, 2014 1 次提交
    • K
      ALSA: hda/realtek - Update Initial AMP for EAPD control · 1df8874b
      Kailang Yang 提交于
      The default EAPD control uses verb command to control EAPD. Some codec
      does not have verb command for EAPD. It needs to control by hidden
      register.
      
      This update will avoid wrong behavior for some codec.  This patch will
      fix double setup for EAPD.  It just needs to turn on by one site for
      verb command or hidden register controlled.
      
      Detailed changes:
      - alc889_coef_init() is replaced with alc_update_coef_idx() with a
        correct COEF value.
      - for ALC262, ALC887 and ALC900, the EAPD setup via the hidden
        register is removed because this rather conflicts with the EAPD verb
        setup.
      -  For ALC888-VC, also the hidden register access is removed in
        alc888_coef_init().
      - Remove the dead #if 0 code for ALC267/ALC268.
      Signed-off-by: NKailang Yang <kailang@realtek.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1df8874b