1. 02 9月, 2013 1 次提交
    • A
      ALSA: hda - hdmi: Fallback to ALSA allocation when selecting CA · 18e39186
      Anssi Hannula 提交于
      hdmi_channel_allocation() tries to find a HDMI channel allocation that
      matches the number channels in the playback stream and contains only
      speakers that the HDMI sink has reported as available via EDID. If no
      such allocation is found, 0 (stereo audio) is used.
      
      Using CA 0 causes the audio causes the sink to discard everything except
      the first two channels (front left and front right).
      
      However, the sink may be capable of receiving more channels than it has
      speakers (and then perform downmix or discard the extra channels), in
      which case it is preferable to use a CA that contains extra channels
      than to use CA 0 which discards all the non-stereo channels.
      
      Additionally, it seems that HBR (HD) passthrough output does not work on
      Intel HDMI codecs when CA is set to 0 (possibly the codec zeroes
      channels not present in CA). This happens with all receivers that report
      a 5.1 speaker mask since a HBR stream is carried on 8 channels to the
      codec.
      
      Add a fallback in the CA selection so that the CA channel count at least
      matches the stream channel count, even if the stream contains channels
      not present in the sink speaker descriptor.
      
      Thanks to GrimGriefer at OpenELEC forums for discovering that changing
      the sink speaker mask allowed HBR output.
      
      Reported-by: GrimGriefer
      Reported-by: Ashecrow
      Reported-by: NFrank Zafka <kafkaesque1978@gmail.com>
      Reported-by: NPeter Frühberger <fritsch@xbmc.org>
      Signed-off-by: NAnssi Hannula <anssi.hannula@iki.fi>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      18e39186
  2. 27 8月, 2013 5 次提交
  3. 22 8月, 2013 2 次提交
  4. 19 8月, 2013 2 次提交
  5. 16 8月, 2013 3 次提交
  6. 13 8月, 2013 2 次提交
  7. 12 8月, 2013 2 次提交
  8. 05 8月, 2013 1 次提交
  9. 02 8月, 2013 1 次提交
    • T
      ALSA: hda - Fix missing fixup for Mac Mini with STAC9221 · 697aebab
      Takashi Iwai 提交于
      A fixup for Apple Mac Mini was lost during the adaption to the generic
      parser because the fallback for the generic ID 8384:7680 was dropped,
      and it resulted in the silence output (and maybe other problems).
      
      Unfortunately, just adding the missing subsystem ID wasn't enough, in
      this case.  The subsystem ID of this machine is 0000:0100 (what Apple
      thought...?), and since snd_hda_pick_fixup() doesn't take the vendor
      id zero into account, the driver ignored this entry.  Now it's fixed
      to regard the vendor id zero as a valid value.
      Reported-and-tested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      697aebab
  10. 29 7月, 2013 5 次提交
    • T
      ALSA: hda - Fix invalid multi-io creation on VAIO-Z laptops · da96fb5b
      Takashi Iwai 提交于
      VAIO-Z laptops need to use the specific DAC for the speaker output
      by some unknown reason although the codec itself supports the flexible
      connection.  So we implemented a workaround by a new flag,
      no_primary_hp, for assigning the speaker pin first.
      
      This worked until 3.8 kernel, but it got broken because the driver
      learned for a better multi-io pin mapping, and not it can assign two
      mic pins for multi-io.  Since the multi-io requires to be the primary
      output, the hp and two mic pins are assigned in prior to the speaker
      in the end.
      
      Although the machine has two mic pins, one of them is used as a noise-
      canceling headphone, thus it's no real retaskable mic jack.  Thus, at
      best, we can disable the multi-io assignment and make the parser
      behavior back to the state before the multi-io.
      
      This patch adds again a new flag, no_multi_io, to indicate that the
      device has no multi-io capability, and set it in the fixup for
      VAIO-Z.  The no_multi_io flag itself can be used generically, added
      via a helper line, too.
      Reported-by: NTormen <my.nl.abos@gmail.com>
      Reported-by: NAdam Williamson <awilliam@redhat.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      da96fb5b
    • T
      ALSA: hda - Remove analog mic pin override from STAC9228 dell-bios quirk · eefb8be4
      Takashi Iwai 提交于
      The current fixup for dell-bios model with STAC9228 codec contains the
      override of pin 0x0c for analog mic.  But this is actually just adding
      a bogus pin and confuses the parser.  Better to remove it for the
      auto-mic switching.
      
      Meanwhile, for a possible regression, keep the old configuration as
      model=dell-bios-amic, so that people can test it again quickly.
      
      Tested on Dell 1420n laptop.
      Reported-and-tested-by: NEric Shattow <lucent@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      eefb8be4
    • W
      ALSA: hda - WAKEEN feature enabling for runtime pm · 7d4f606c
      Wang Xingchao 提交于
      With runtime power save feature enabled, Headphone hotplug
      event will not be detected while controller/codec in D3. HDA has
      feature WAKEEN to let codec wake up system if controller is in D3 or
      system in S3.(HDA Spec 4.5.9.2/3). Codec can send out INT or wake up
      controller depending on whether CIE or GIE enabled.(Figure 4, Interupt
      structure).
      
      The controller must be in RESET mode after enter runtime-suspend, otherwise
      it will not be waken up even if codec send out wake-up event. And STATESTS
      will be cleared after controller brought out of RESET mode.
      
      This patch only enable WAKEEN for runtime-suspend(Controller D3) mode,
      not for system S3 mode. with tool "evtest", Headphone hotplug events
      could be cought and reported successfully.
      
      [fixed an unused variable warning by tiwai]
      Signed-off-by: NWang Xingchao <xingchao.wang@linux.intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7d4f606c
    • W
      ALSA: hda - jack poll once if jackpoll_interval==0 · 18e60627
      Wang Xingchao 提交于
      With jackpoll_interval != 0, it's used to poll jack event periodically
      in a delayed work. if it's 0, give the caller chance to probe jack status
      but will not restart the delayed work.
      
      In the next patch which enable WAKEEN feature, HDA controller was able to wake
      up system when it's in D3, it's useful to detect Jack hotplug event and notify
      userspace. By default the jackpoll_interval=0, this patch let jack poll once
      without starting the delayed work.
      Signed-off-by: NWang Xingchao <xingchao.wang@linux.intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      18e60627
    • W
      ALSA: hda - Clearing jackpoll_interval avoid pending work · 7eaa9161
      Wang Xingchao 提交于
      Clearing jackpoll_interval before calling cancel_delayed_work_sync(),
      otherwise the work will be triggered again and cause impact in
      hda_jackpoll_work(). The next patch will poll jack once even with
      jackpoll_interval=0.
      Signed-off-by: NWang Xingchao <xingchao.wang@linux.intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      7eaa9161
  11. 24 7月, 2013 3 次提交
  12. 21 7月, 2013 2 次提交
    • J
      ALSA: replace strict_strto*() with kstrto*() · b785a492
      Jingoo Han 提交于
      The usage of strict_strto*() is not preferred, because
      strict_strto*() is obsolete. Thus, kstrto*() should be
      used.
      Signed-off-by: NJingoo Han <jg1.han@samsung.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      b785a492
    • T
      ALSA: hda - Add snd_hda_jack_detect_state() helper function · 60ea8ca2
      Takashi Iwai 提交于
      snd_hda_jack_detect() function returns a boolean value for a jack
      plugged in or not, but it also returns always true when the
      corresponding pin is phantom (i.e. fixed).  This is OK in most cases,
      but it makes the generic parser misbehaving about the auto-mute or
      auto-mic switching, e.g. when one of headphone pins is a fixed.
      Namely, the driver decides whether to mute the speaker or not, just
      depending on the headphone plug state: if one of the headphone jacks
      is seen as active, then the speaker is muted.  Thus this will result
      always in the muted speaker output.
      
      So, the problem is the function returns a boolean, after all, although
      we need to think of "phantom" jack.  Now a new function,
      snd_hda_jack_detect_state() is introduced to return these tristates.
      The generic parser uses this function for checking the headphone or
      mic jack states.
      
      Meanwhile, the behavior of snd_hda_jack_detect() is kept as is, for
      keeping compatibility in other driver codes.
      Acked-by: NDavid Henningsson <david.henningsson@canonical.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      60ea8ca2
  13. 19 7月, 2013 2 次提交
    • T
      ALSA: hda - Remove NO_PRESENCE bit override for Dell 1420n Laptop · f3e351ee
      Takashi Iwai 提交于
      The quirk for Dell laptops with STAC9228 overrides the pin default
      config of NID 0x0f to the value with AC_DEFCFG_MISC_NO_PRESENCE bit
      on.  I'm not quite sure why this was done so, but can guess that this
      was introduced for avoiding this to be muted by another headphone
      plug.  Now, after transition to the generic parser, this workaround
      rather causes a problem (notably as unexpected speaker mutes) because
      the pin is seen as if it's always plugged in.
      
      Since the generic parser can handle multiple headphone plugging
      gracefully, we can get rid of this override now.
      Reported-and-tested-by: NEric Shattow <lucent@gmail.com>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      f3e351ee
    • T
      ALSA: hda - Fix EAPD GPIO control for Sigmatel codecs · 1ea9a69d
      Takashi Iwai 提交于
      The EAPD GPIO is dynamically turned on/off for some machines with
      Sigmatel codecs, but this didn't work as expected, and it resulted in
      spontaneous lost of speaker outputs per HP plugging or power-saving.
      
      This patch fixes the bug by simply including spec->eapd_mask into
      spec->gpio_mask and spec->gpio_data bits.
      Reported-and-tested-by: NEric Shattow <lucent@gmail.com>
      Cc: <stable@vger.kernel.org> [v3.9+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1ea9a69d
  14. 16 7月, 2013 2 次提交
  15. 08 7月, 2013 1 次提交
  16. 05 7月, 2013 6 次提交