1. 12 Jan, 2013 32 commits
  2. 10 Jan, 2013 8 commits
    • Takashi Iwai's avatar
      ALSA: hda - Remove snd_hda_codec_amp_update() call from patch_*.c · 8092e606
      Takashi Iwai authored
      It's used only in one place in patch_analog.c, and it can be replaced
      with others better.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      8092e606
    • Takashi Iwai's avatar
      ALSA: hda/realtek - Fix initialization of input amps in output paths · 9366ede7
      Takashi Iwai authored
      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: default avatarTakashi Iwai <tiwai@suse.de>
      9366ede7
    • Takashi Iwai's avatar
      ALSA: hda/realtek - Check amp capabilities of aa-mixer widget · bd32f782
      Takashi Iwai authored
      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: default avatarTakashi Iwai <tiwai@suse.de>
      bd32f782
    • Takashi Iwai's avatar
      ALSA: hda/realtek - Parse analog loopback paths more generically · c2fd19c2
      Takashi Iwai authored
      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: default avatarTakashi Iwai <tiwai@suse.de>
      c2fd19c2
    • Takashi Iwai's avatar
      ALSA: hda/realtek - Parse input paths · 36f0fd54
      Takashi Iwai authored
      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: default avatarTakashi Iwai <tiwai@suse.de>
      36f0fd54
    • Takashi Iwai's avatar
      ALSA: hda/realtek - Make path->idx[] and path->multi[] consistent · 95e960ce
      Takashi Iwai authored
      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: default avatarTakashi Iwai <tiwai@suse.de>
      95e960ce
    • Takashi Iwai's avatar
      ALSA: hda/realtek - Simplify the output volume initialization · 78e635c9
      Takashi Iwai authored
      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: default avatarTakashi Iwai <tiwai@suse.de>
      78e635c9
    • Takashi Iwai's avatar
      ALSA: hda/realtek - Reduce vol/mute ctl lookups at parsing codec · 792cf2fa
      Takashi Iwai authored
      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: default avatarTakashi Iwai <tiwai@suse.de>
      792cf2fa