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 2 次提交
  3. 16 7月, 2013 1 次提交
  4. 25 6月, 2013 1 次提交
  5. 24 6月, 2013 1 次提交
  6. 18 6月, 2013 4 次提交
  7. 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
  8. 17 4月, 2013 1 次提交
  9. 02 4月, 2013 1 次提交
  10. 14 3月, 2013 1 次提交
  11. 22 2月, 2013 1 次提交
  12. 20 2月, 2013 5 次提交
  13. 08 2月, 2013 3 次提交
    • T
      ALSA: hda - Yet another fix for broken HSW HDMI pin connections · c88d4e84
      Takashi Iwai 提交于
      A Haswell test machine showed that the invalid connection list, but
      this time it has only a single pin on the codec, thus the former fixup
      code doesn't work as it assumes the three pins blindly.
      
      This patch splits the former fixup code to two parts:
      - Enable eDP 1.2 for Haswell codec
      - Fix the connection list of pins on Haswell codec;
        the converter list is recorded dynamically in hdmi_add_cvt(), and
        applied in hdmi_add_pin()
      Signed-off-by: NMengdong Lin <mengdong.lin@intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      c88d4e84
    • M
      ALSA: hda - Add fixup for Haswell to enable all pin and convertor widgets · 1611a9c9
      Mengdong Lin 提交于
      Some Haswell machines support more than one display outputs (HDMI or DP),
      but its BIOS may not enable the codec's 2nd and 3rd pin and output cvt widgets.
      
      This patch implements a board-specific fixup for Intel Haswell Machines:
      If the hidden pins are not enabled by BIOS, the driver will enable them
      and call common code to update the codec tree.
      Signed-off-by: NMengdong Lin <mengdong.lin@intel.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      1611a9c9
    • T
      ALSA: hda - Remove limit of widget connections · 4eea3091
      Takashi Iwai 提交于
      Currently we set the max number of connections to be 32, but there
      seems codec that gives longer connection lists like AD1988, and we see
      errors in proc output and else.  (Though, in the case of AD1988, it's
      a list of all codecs connected to a single vendor widget, so this must
      be something fishy, but it's still valid from the h/w design POV.)
      
      This patch tries to remove this restriction.  For efficiency, we still
      use the fixed size array in the parser, but takes a dynamic array when
      the size is reported to be greater than that.
      
      Now the fixed array size is found only in patch_hdmi.c, but it should
      be fine, as the codec itself can't support so many pins.
      Reported-by: NRaymond Yau <superquad.vortex2@gmail.com>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      4eea3091
  14. 04 2月, 2013 1 次提交
  15. 01 2月, 2013 1 次提交
  16. 15 1月, 2013 1 次提交
    • T
      ALSA: hda/hdmi - Work around "alsactl restore" errors · 6f54c361
      Takashi Iwai 提交于
      When "alsactl restore" is performed on HDMI codecs, it tries to
      restore the channel map value since the channel map controls are
      writable.  But hdmi_chmap_ctl_put() returns -EBADFD when no PCM stream
      is assigned yet, and this results in an error message from alsactl.
      Although the error is harmless, it's certainly ugly and can be
      regarded as a regression.
      
      As a workaround, this patch changes the return code in such a case to
      be zero for making others happy.  (A slight excuse is: when the chmap
      is changed through the proper alsa-lib API, the PCM status is checked
      there anyway, so we don't have to be too strict in the kernel side.)
      
      Cc: <stable@vger.kernel.org> [v3.7+]
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      6f54c361
  17. 18 12月, 2012 1 次提交
  18. 14 12月, 2012 1 次提交
  19. 21 11月, 2012 1 次提交
  20. 07 11月, 2012 1 次提交
  21. 17 10月, 2012 1 次提交
    • T
      ALSA: hda - Add workaround for conflicting IEC958 controls · dcda5806
      Takashi Iwai 提交于
      When both an SPDIF and an HDMI device are created on the same card
      instance, multiple IEC958 controls are created with indices=0, 1, ...
      But the alsa-lib configuration can't know which index corresponds
      actually to which PCM device, and both the SPDIF and the HDMI
      configurations point to the first IEC958 control wrongly.
      
      This patch introduces a (hackish and ugly) workaround: the IEC958
      controls for the SPDIF device are re-labeled with device=1 when HDMI
      coexists.  The device=1 corresponds to the actual PCM device for
      SPDIF, so it's anyway a better representation.  In future, HDMI
      controls should be moved with the corresponding PCM device number,
      too.
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      dcda5806
  22. 10 9月, 2012 1 次提交
  23. 07 9月, 2012 2 次提交
  24. 06 9月, 2012 4 次提交
  25. 30 8月, 2012 1 次提交
  26. 22 8月, 2012 1 次提交