1. 12 1月, 2013 24 次提交
  2. 10 1月, 2013 12 次提交
    • T
      ALSA: hda/realtek - Fix initialization of input amps in output paths · 9366ede7
      Takashi Iwai 提交于
      When initializing the output paths, we assumed the input amps have
      almost two inputs blindly.  It's not only generic but even incorrect
      for some codecs like ALC268 & co.  Also, the same assumption (two
      sources) exists for the bind input-amp controls.
      
      This patch changes the codes in these places to handle the input
      connections in a more generic way.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      9366ede7
    • T
      ALSA: hda/realtek - Check amp capabilities of aa-mixer widget · bd32f782
      Takashi Iwai 提交于
      For handling the analog-loopback paths more generically, check the amp
      capabilities of the aa-mixer widget, and create only the appropriate
      mixer elements.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      bd32f782
    • T
      ALSA: hda/realtek - Parse analog loopback paths more generically · c2fd19c2
      Takashi Iwai 提交于
      Improve the parser of analog loopback paths and handle in a more
      generic way.  The following changes are included in this patch:
      
      - Instead of assuming direct connections between pins and
        the mixer widget, track the whole path between them.  This fixes
        some missing connections like ALC660.
      
      - Introduce the path list for loopback paths like input and output
        path lists.  Currently it's not used for any real purposes, yet.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c2fd19c2
    • T
      ALSA: hda/realtek - Parse input paths · 36f0fd54
      Takashi Iwai 提交于
      Just like the output paths, parse the whole paths for inputs as well
      and store in a path list.  For that purpose, rewrite the output parser
      code to be generically usable.
      
      The input path list is not referred at all in this patch.  It'll be
      used to replace the fixed adc/capsrc array in later patches for more
      flexible input path selections.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      36f0fd54
    • T
      ALSA: hda/realtek - Make path->idx[] and path->multi[] consistent · 95e960ce
      Takashi Iwai 提交于
      So far, idx[i] and multi[i] indicate the attribute of the widget
      path[i - 1].  This was just for simplifying the code in
      __parse_output_path(), but this is rather confusing for later use.
      It's more natural if both idx[i] and multi[i] point to the same widget
      of path[i].  This patch changes to that way.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      95e960ce
    • T
      ALSA: hda/realtek - Simplify the output volume initialization · 78e635c9
      Takashi Iwai 提交于
      Simplify the output path initialization using the existing path
      information instead of assuming the topology specific to Realtek
      codecs.  This is also implicitly a fix for some amp values on output
      pins where the old parser missed (e.g. ALC260 output pins).
      
      The same function alc_auto_set_output_and_unmute() can be used now for
      the multi-io activation, since the output selection means nothing but
      activating the given output path.
      
      And, finally at this stage, we can get rid of alc_go_down_to_selector()
      and other functions that are codec really specifically to Realtek
      codecs.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      78e635c9
    • T
      ALSA: hda/realtek - Reduce vol/mute ctl lookups at parsing codec · 792cf2fa
      Takashi Iwai 提交于
      So far, Realtek codec driver evaluates the NIDs for volume and mute
      controls twice, once while parsing the DACs and evaluating the
      assignment, and another while creating the mixer elements.  This is
      utterly redundant and even fragile, as it's assuming that the ctl
      element evaluation is identical between both parsing DACs and creating
      mixer elements.
      
      This patch simplifies the code flow by doing the volume / mute
      controls evaluation only once while parsing the DACs.  The patch ended
      up in larger changes than expected because of some cleanups became
      mandatory.
      
      As a gratis bonus, this patch also fixes some cases where the stereo
      channels are used wrongly for mono amps.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      792cf2fa
    • T
      ALSA: hda/realtek - Manage mixer controls in out_path list · ba811127
      Takashi Iwai 提交于
      As we parse the output paths more precisely now, we can use this path
      list for parsing the widgets for volume and mute mixer controls.
      The spec->vol_ctls[] and sw_ctls[] bitmasks are replaced with the
      ctls[] in each output path instance.
      
      Interestingly, this move alone automagically fixes some bugs that the
      conflicting volume or mute NIDs weren't properly detected.
      Also, by parsing the whole path, there are more chances to get a free
      widget for volume/mute controls.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ba811127
    • T
      ALSA: hda/realtek - Add output path parser · 30dcd3b4
      Takashi Iwai 提交于
      Add the output path parser to Realtek codec driver as we already have
      in patch_via.c.  The nid_path struct represents the complete output
      path from a DAC to a pin.  The alc_spec contains an array of these
      paths, and a new path is added at each time when a new DAC is
      assigned.
      
      So far, this path list is used only in limited codes: namely in this
      patch, only alc_is_dac_already_used() checks the list instead of dac
      arrays in all possible outputs.  In the later development, the path
      list will be referred from more places, such as the mixer control
      assignment / check, the mute/unmute of active routes, etc.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      30dcd3b4
    • T
      ALSA: hda/realtek - List up all available DACs · 463419de
      Takashi Iwai 提交于
      In the probing phase, create a list of all available DACs in the codec
      and use it for checking the single DAC connections.
      This list will be used in more other places in the later commits, too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      463419de
    • T
      ALSA: hda/realtek - Simplify alc_auto_is_dac_reachable() · 6a84c305
      Takashi Iwai 提交于
      Use the helper function snd_hda_get_conn_index() instead of open
      codes.  This also improves the detection of some routes to DAC on
      ALC260 (although the difference doesn't influence on the end
      results of the mapping).
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6a84c305
    • K
      ALSA: hda - Add support of new codec ALC284 · 065380f0
      Kailang Yang 提交于
      Added the support for a new codec ALC284, which is compatible with
      ALC269.  Also add more codec variants to handle the SSID check
      properly.
      Signed-off-by: NKailang Yang <kailang@realtek.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      065380f0
  3. 08 1月, 2013 1 次提交
  4. 18 12月, 2012 2 次提交
  5. 03 12月, 2012 1 次提交
    • T
      ALSA: hda/realtek - Keep the channel count for multiple speakers · b6adb57d
      Takashi Iwai 提交于
      The current Realtek driver reconfigures the max PCM channels
      dynamically according to the value of Channel Mode enum if the
      multi-io retasking is available.  It works fine for multi-io pins.
      But when multiple speaker pins are available, the channels of speakers
      also have to obey to the channel mode, which isn't nice.
      (That is, when you select "2ch" in Channel Mode so that the line-in
       and mic jack behave as input, you can't play surrounds properly from
       the built-in speaker.)
      
      This patch fixes the problem by taking the channel number for multiple
      speakers into account in the channel-mode setup code.
      Also it fixes the wrongly set up max_channels value in the case of
      multi-io extension.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b6adb57d