1. 28 Jun, 2013 1 commit
  2. 25 Jun, 2013 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Add auto_mute_via_amp flag to generic parser · 7eebffd3
      Takashi Iwai authored
      
      
      Add a new flag, auto_mute_via_amp, to determine the behavior of the
      headphone / line-out auto-mute.  When this flag is set, the generic
      driver mutes the speaker and line outputs via the amp mute of each
      pin, instead of changing the pin control values.
      
      This is introduced for devices that don't work expectedly with the pin
      control values; for example, some devices are known to keep enabling
      the speaker outputs no matter which pin control values are set on the
      speaker pins.
      
      The driver doesn't check actually whether the pins have the output amp
      caps, but assumes that the proper mixer (mute) controls are created on
      all these pins.  If not the case, you can't use this flag for your
      device.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7eebffd3
  3. 03 Jun, 2013 3 commits
    • Takashi Iwai's avatar
      ALSA: hda/via - Clean up duplicated codes · 963afde9
      Takashi Iwai authored
      
      
      The previous commit was written in the way to make the backport to
      3.9.y easier, and left the duplicated open codes intentionally.
      Now let's clean up the duplicated codes.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      963afde9
    • Takashi Iwai's avatar
      ALSA: hda - Add keep_eapd_on flag to generic parser · 05909d5c
      Takashi Iwai authored
      
      
      VT1802 codec seems to reset EAPD of other pins in the hardware level,
      and this was another reason of the silent headphone output on some
      machines.  As a workaround, introduce a new flag indicating to keep
      the EPAD on to the generic parser, and set it in patch_via.c.
      Reported-by: default avatarAlex Riesen <raa.lkml@gmail.com>
      Cc: <stable@vger.kernel.org> [v3.9]
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      05909d5c
    • Takashi Iwai's avatar
      ALSA: hda - Allow setting automute/automic hooks after parsing · 77afe0e9
      Takashi Iwai authored
      
      
      Some codec drivers (VIA codecs and some Realtek fixups) set the
      automute and automic hooks after calling
      snd_hda_gen_parse_auto_config().  In the current code, the hook
      pointers are referred only in snd_hda_gen_parse_auto_config() and
      passed to snd_hda_jack_detect_enable_callback(), thus changing the
      hook values won't change the actually called callbacks properly.
      
      This patch fixes this bug by setting the static functions as the
      primary callback functions for the jack detection, and let them
      calling the appropriate hooks dynamically.
      
      Cc: <stable@vger.kernel.org> [v3.9]
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      77afe0e9
  4. 16 May, 2013 1 commit
  5. 16 Apr, 2013 2 commits
    • Takashi Iwai's avatar
      ALSA: hda - Use the primary DAC for all aamix outputs · 5ead56f2
      Takashi Iwai authored
      
      
      When setting up the aamix output paths, use the primary DAC instead of
      the individual DAC for each output as default.  Otherwise multiple
      DACs will be turned on for a single aamix widget, which results in
      doubly or more volumes, because the duplicated signals will be sent
      through all these DACs for a single stream.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      5ead56f2
    • Takashi Iwai's avatar
      ALSA: hda - Fix aamix activation with loopback control on VIA codecs · 65033cc8
      Takashi Iwai authored
      
      
      When we have a loopback mixer control, this should manage the state
      whether the output paths include the aamix or not.  But the current
      code blindly initializes the output paths with aamix = true, thus the
      aamix is enabled unless the loopback mixer control is changed.
      
      Also, update_aamix_paths() called by the loopback mixer control put
      callback invokes snd_hda_activate_path() with aamix = true even for
      disabling the mixing.  This leaves the aamix path even though the
      loopback control is turned off.
      
      This patch fixes these issues:
      - Introduced aamix_default() helper to indicate whether with_aamix is
        true or false as default
      - Fix the argument in update_aamix_paths() for disabling loopback
      Reported-by: default avatarLydia Wang <LydiaWang@viatech.com.cn>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      65033cc8
  6. 11 Apr, 2013 2 commits
  7. 05 Apr, 2013 1 commit
  8. 22 Mar, 2013 2 commits
  9. 21 Mar, 2013 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Fix DAC assignment for independent HP · 55a63d4d
      Takashi Iwai authored
      
      
      The generic parser should evaluate the availability of the independent
      HP when specified.  Otherwise a DAC without the direct connection to
      the corresponding pin may be assigned for the HP, but the driver
      doesn't check it at all.  The problem was actually seen on some
      machines with VT1708s or equivalent codec, where DAC0 is assigned to
      HP although it can be connected only via aamix.
      
      This patch adds the badness evaluation for the independent HP to make
      it working properly.
      Reported-by: default avatarLydia Wang <LydiaWang@viatech.com.cn>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      55a63d4d
  10. 18 Mar, 2013 1 commit
  11. 11 Mar, 2013 1 commit
  12. 07 Mar, 2013 5 commits
  13. 13 Feb, 2013 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Increase badness for missing multi-io · 1d739066
      Takashi Iwai authored
      
      
      The current badness value used for the missing multi-io seems too
      weak, and the multi-io tends to be skipped for desktop configurations
      when no enough DACs are available.  It's because the total badness of
      the multi-io becomes often larger than the badness with assigning an
      individual DAC to a headphone jack.  This is good for one side, but it
      seems that the surround outputs are more demanded by that.
      
      This patch increases the badness value for the missing multi-io
      slightly so that the multi-io would be preferred than the individual
      headphone DAC if they conflict.  Through the tests with hda-emu,
      mostly only desktop configurations with ALC662/663 and CMI codecs are
      affected by this change, and all look reasonable.
      Reported-by: default avatarRaymond Yau <superquad.vortex2@gmail.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      1d739066
  14. 07 Feb, 2013 2 commits
  15. 25 Jan, 2013 1 commit
    • Takashi Iwai's avatar
      ALSA: Make snd_printd() and snd_printdd() inline · 86b27237
      Takashi Iwai authored
      
      
      Because currently snd_printd() and snd_printdd() macros are expanded
      to empty when CONFIG_SND_DEBUG=n, a compile warning like below
      appears sometimes, and we had to covert it by ugly ifdefs:
        sound/pci/hda/patch_sigmatel.c: In function ‘stac92hd71bxx_fixup_hp’:
        sound/pci/hda/patch_sigmatel.c:2434:24: warning: unused variable ‘spec’ [-Wunused-variable]
      
      For "fixing" these issues better, this patch replaces snd_printd() and
      snd_printdd() definitions with empty inline functions instead of
      macros.  This should have the same effect but shut up warnings like
      above.
      
      But since we had already put ifdefs, changing to inline functions
      would trigger compile errors.  So, such ifdefs is removed in this
      patch.
      
      In addition, snd_pci_quirk name field is defined only when
      CONFIG_SND_DEBUG_VERBOSE is set, and the reference to it in
      snd_printdd() argument triggers the build errors, too.  For avoiding
      these errors, introduce a new macro snd_pci_quirk_name() that is
      defined no matter how the debug option is set.
      Reported-by: default avatarStratos Karafotis <stratosk@semaphore.gr>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      86b27237
  16. 24 Jan, 2013 2 commits
  17. 23 Jan, 2013 2 commits
  18. 22 Jan, 2013 5 commits
  19. 21 Jan, 2013 5 commits
  20. 18 Jan, 2013 1 commit
    • Takashi Iwai's avatar
      ALSA: hda - Fix the wrong adc_idx for capture source · 2a8d5391
      Takashi Iwai authored
      
      
      The patch "ALSA: hda - fix wrong adc_idx in generic parser" fixed the
      adc_idx for the capture volume and capture switch controls.  But also
      modified the adc_idx retrieval for the capture source controls
      wrongly.  As multiple capture source controls are created in a single
      shot with counts > 1, the id.index doesn't contain the real value.
      The real index has to be taken via snd_ctl_get_ioffidx() as in the
      original code.
      
      This patch reverts the fixes partially to recover from the
      regression.
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      2a8d5391