25 Feb, 2013

5 commits


22 Feb, 2013

2 commits

  • This patch fix regression in emu1010 firmware loading after
    http://git.alsa-project.org/?p=alsa-kprivate.git;a=commitdiff;h=b209c4dfcd960ab176d4746ab7dc442a3edb4575

    I just revert small part of this commit. Tested on emu1212m pci.

    Signed-off-by: Mihail Zenkov
    Cc:
    Signed-off-by: Takashi Iwai

    Mihail Zenkov
     
  • Just as for analog codecs, a jack that isn't suitable for detection
    (in this case, NO_PRESENCE was set) should be a phantom Jack
    instead of a normal one.

    Thanks to Raymond Yau for spotting.

    Cc: stable@vger.kernel.org
    BugLink: https://bugs.launchpad.net/bugs/961286
    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=903869
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     

20 Feb, 2013

5 commits


19 Feb, 2013

1 commit

  • In the recent update, Fujitsu S7020 laptop with ALC260 codec lost the
    speaker output, no matter how the amps and the pins are set. After a
    long debugging session, we found out that the default codec init code
    is harmful for this machine, and we have to reset it to
    ALC_INIT_NONE.

    Reported-and-tested-by: Jonathan Woithe
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

18 Feb, 2013

1 commit


14 Feb, 2013

3 commits


13 Feb, 2013

2 commits

  • 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: Raymond Yau
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The commit [dcda58061: ALSA: hda - Add workaround for conflicting
    IEC958 controls] introduced a workaround for cards that have both
    SPDIF and HDMI devices for giving device=1 to SPDIF control elements.
    It turned out, however, that this workaround doesn't work well -

    - The workaround checks only conflicts in a single codec, but SPDIF
    and HDMI are provided by multiple codecs in many cases, and

    - ALSA mixer abstraction doesn't care about the device number in ctl
    elements, thus you'll get errors from amixer such as
    % amixer scontrols -c 0
    ALSA lib simple_none.c:1551:(simple_add1) helem (MIXER,'IEC958
    Playback Switch',0,1,0) appears twice or more
    amixer: Mixer hw:0 load error: Invalid argument

    This patch fixes the previous broken workaround. Instead of changing
    the device number of SPDIF ctl elements, shift the element indices of
    such controls up to 16. Also, the conflict check is performed over
    all codecs found on the bus.

    HDMI devices will be put to dev=0,index=0 as before. Only the
    conflicting SPDIF device is moved to a different place. The new place
    of SPDIF device is supposed by the updated alsa-lib HDA-Intel.conf,
    respectively.

    Reported-by: Stephan Raue
    Reported-by: Anssi Hannula
    Cc: [v3.8]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

12 Feb, 2013

4 commits


11 Feb, 2013

3 commits


10 Feb, 2013

3 commits


08 Feb, 2013

5 commits

  • 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: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • 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: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Mengdong Lin
     
  • A codec may allow software to hide some unused pin/cvt widgets.

    Sometimes BIOS does not enable the hidden widgets properly although they are
    needed for the board. Thus the driver need to enable them as a board-specific
    fixup and the whole tree will change.

    This patch implements a common code for rereading codec widgets. So the fixup
    code can call it after enabling the hidden widgets.

    Signed-off-by: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Mengdong Lin
     
  • 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: Raymond Yau
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • ... looks like we need this for stable operations.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

07 Feb, 2013

6 commits