1. 03 6月, 2013 5 次提交
    • T
      ALSA: hda/via - Clean up duplicated codes · 963afde9
      Takashi Iwai 提交于
      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: NTakashi Iwai <tiwai@suse.de>
      963afde9
    • T
      ALSA: hda/via - Fix wrongly cleared pins after suspend on VT1802 · 5a6f294e
      Takashi Iwai 提交于
      VIA driver has a special suspend handling only for VT1802 to reduce
      the pop noise.  During the transition to the generic parser, the
      behavior of snd_hda_set_pin_ctl() was also changed to modify the
      cached values, too.  And this caused a regression where the pin is
      still cleared even after the resume (including the resume from power
      save), resulting in the silent output.
      
      The fix is simply to replace snd_hda_set_pin_ctl() with the explicit
      call of snd_hda_codec_write() again.
      Reported-by: NAlex Riesen <raa.lkml@gmail.com>
      Cc: <stable@vger.kernel.org> [v3.9]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      5a6f294e
    • T
      ALSA: hda - Add keep_eapd_on flag to generic parser · 05909d5c
      Takashi Iwai 提交于
      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: NAlex Riesen <raa.lkml@gmail.com>
      Cc: <stable@vger.kernel.org> [v3.9]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      05909d5c
    • T
      ALSA: hda - Allow setting automute/automic hooks after parsing · 77afe0e9
      Takashi Iwai 提交于
      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: NTakashi Iwai <tiwai@suse.de>
      77afe0e9
    • T
      ALSA: hda/via - Disable broken dynamic power control · 087c2e3b
      Takashi Iwai 提交于
      Since the transition to the generic parser, the actual routes used
      there don't match always with the assumed static paths in some
      set_widgets_power_state callbacks.  This results in the wrong power
      setup in the end.  As a temporary workaround, we need to disable the
      calls together with the non-functional dynamic power control enum.
      Reported-by: NAlex Riesen <raa.lkml@gmail.com>
      Cc: <stable@vger.kernel.org> [v3.9]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      087c2e3b
  2. 31 5月, 2013 2 次提交
  3. 16 5月, 2013 2 次提交
  4. 10 5月, 2013 1 次提交
  5. 08 5月, 2013 1 次提交
    • T
      ALSA: hda - Apply pin-enablement workaround to all Haswell HDMI codecs · 17df3f55
      Takashi Iwai 提交于
      This is a revised patch based on Mengdong Lin's fix patch, which is a
      supplement to a previous patch [1611a9c9: ALSA: hda - Add fixup for
      Haswell to enable all pin and convertor widgets].
      
      Some Haswell BIOS will disable the 2nd and 3rd pin/covertor widgets
      when the HD-A controller changes state from D3 to D0.  So when the
      controller resumes after a system or runtime suspend, these widgets
      are disabled and programming these widgets to D0 will cause H/W error
      and codec will not respond.
      
      In addition, we found out that some BIOS disables the pins at S3
      although it shows up at boot.  This confuses the driver utterly, and
      the hardware falls into the fatal communication error like the above.
      
      So in this patch, we apply intel_haswell_enable_all_pins() not only as
      a fixup to a certain device (with 8086:2010) but to all Haswell
      machines.  The codec driver basically assumes that all pins are
      exposed, so it's anyway better to see them from the beginning.  Even
      if all pins and converters are shown by this call, there should be no
      regression in practice: the pin default configurations are still kept,
      thus the disabled pins are handled as disabled by the driver
      properly.
      Signed-off-by: NMengdong Lin <mengdong.lin@intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      17df3f55
  6. 07 5月, 2013 1 次提交
    • W
      ALSA: HDA: Fix Oops caused by dereference NULL pointer · 2195b063
      Wang YanQing 提交于
      The interrupt handler azx_interrupt will call azx_update_rirb,
      which may call snd_hda_queue_unsol_event, snd_hda_queue_unsol_event
      will dereference chip->bus pointer.
      
      The problem is we alloc chip->bus in azx_codec_create
      which will be called after we enable IRQ and enable unsolicited
      event in azx_probe.
      
      This will cause Oops due dereference NULL pointer. I meet it, good luck:)
      
      [Rearranged the NULL check before the tracepoint and added another
       NULL check of bus->workq -- tiwai]
      Signed-off-by: NWang YanQing <udknight@gmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      2195b063
  7. 04 5月, 2013 1 次提交
  8. 03 5月, 2013 1 次提交
  9. 29 4月, 2013 1 次提交
  10. 25 4月, 2013 1 次提交
  11. 22 4月, 2013 1 次提交
  12. 18 4月, 2013 3 次提交
  13. 17 4月, 2013 1 次提交
  14. 16 4月, 2013 3 次提交
    • T
      ALSA: hda - Use the primary DAC for all aamix outputs · 5ead56f2
      Takashi Iwai 提交于
      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: NTakashi Iwai <tiwai@suse.de>
      5ead56f2
    • T
      ALSA: hda - Fix aamix activation with loopback control on VIA codecs · 65033cc8
      Takashi Iwai 提交于
      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: NLydia Wang <LydiaWang@viatech.com.cn>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      65033cc8
    • D
      ALSA: hda - Add codec delay to the capture time stamp. · ae03bbb8
      Dylan Reid 提交于
      For capture, the delay through the codec contributes to the time stamp
      of the sample recorded at the A to D.  Rename the codec time stamp
      function appropriately.
      Signed-off-by: NDylan Reid <dgreid@chromium.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      ae03bbb8
  15. 15 4月, 2013 2 次提交
  16. 11 4月, 2013 3 次提交
  17. 09 4月, 2013 1 次提交
  18. 07 4月, 2013 1 次提交
  19. 05 4月, 2013 4 次提交
  20. 04 4月, 2013 3 次提交
  21. 02 4月, 2013 2 次提交