30 May, 2014

1 commit

  • ASUS A8JN with AD1986A codec seems following the normal EAPD in the
    normal order (0 = off, 1 = on) unlike other machines with AD1986A.
    Apply the workaround used for Toshiba laptop that showed the same
    problem.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=75041
    Cc: [3.11+]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

13 Mar, 2014

1 commit

  • ASoC: Updates for v3.15

    Quite a busy release for ASoC this time, more on janitorial work than
    exciting new features but welcome nontheless:

    - Lots of cleanups from Takashi for enumerations; the original API for
    these was error prone so he's refactored lots of code to use more
    modern APIs which avoid issues.
    - Elimination of the ASoC level wrappers for I2C and SPI moving us
    closer to converting to regmap completely and avoiding some
    randconfig hassle.
    - Provide both manually and transparently locked DAPM APIs rather than
    a mix of the two fixing some concurrency issues.
    - Start converting CODEC drivers to use separate bus interface drivers
    rather than having them all in one file helping avoid dependency
    issues.
    - DPCM support for Intel Haswell and Bay Trail platforms.
    - Lots of work on improvements for simple-card, DaVinci and the Renesas
    rcar drivers.
    - New drivers for Analog Devices ADAU1977, TI PCM512x and parts of the
    CSR SiRF SoC.

    Takashi Iwai
     

05 Mar, 2014

2 commits


15 Feb, 2014

1 commit


05 Feb, 2014

2 commits

  • AD1983 has flexible loopback routes and the generic parser would take
    wrong path confusingly instead of taking individual paths via NID 0x0c
    and 0x0d. For avoiding it, limit the connections at these widgets so
    that the parser can think more straightforwardly. This fixes the
    regression of the missing line-in loopback on Dell machine.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70011
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The mixer widget on AD1983 at NID 0x0e was missing in the commit
    [f2f8be43c5c9: ALSA: hda - Add aamix NID to AD codecs].

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70011
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

04 Feb, 2014

1 commit

  • Toshiba Satellite L40 with AD1986A codec requires the EAPD of NID 0x1b
    to be constantly on, otherwise the output doesn't work.
    Unlike most of other AD1986A machines, EAPD is correctly implemented
    in HD-audio manner (that is, bit set = amp on), so we need to clear
    the inv_eapd flag in the fixup, too.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=67481
    Cc: [v3.11+]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

13 Jan, 2014

1 commit


08 Jan, 2014

1 commit


16 Dec, 2013

1 commit


11 Dec, 2013

1 commit

  • AD1986A codec is a pretty old codec and has really many hidden
    restrictions. One of such is that each DAC is dedicated to certain
    pin although there are possible connections. Currently, the generic
    parser tries to assign individual DACs as much as possible, and this
    lead to two bad situations: connections where the sound actually
    doesn't work, and connections conflicting other channels.

    We may fix this by trying to find the best connections more harder,
    but as of now, it's easier to give some hints for paired DAC/pin
    connections and honor them if available, since such a hint is needed
    only for specific codecs (right now only AD1986A, and there will be
    unlikely any others in future).

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64971
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66621
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

09 Dec, 2013

1 commit

  • AD and VIA codecs had stereo mixer input enabled as default before
    moving to the generic parser, and people think the lack of such a
    regression. In this patch, the stereo mixer input is added back to
    the input selection if no auto-mic is available, and if it's not
    disabled explicitly via hint. This should satisfy most of demands,
    i.e. stereo mix on desktop machines like what it worked before, and it
    still keeps the new auto-mic feature on laptops.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

02 Dec, 2013

3 commits


13 Nov, 2013

2 commits


26 Oct, 2013

2 commits

  • As EAPD on NID 0x12 (speaker pin) is used as the master amp on
    Thinkpads with AD1984A codec, we can hook this to vmaster for saving a
    bit more power at master mute state.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • AD1984A codec has a couple of pins with EAPD controls, and the generic
    codec driver tries to turn each of them on/off depending on the pin
    active state. However, Thinkpads seem to use EAPD of the speaker pin
    as a master EAPD for controlling the mute of all outputs, including
    the headphone. This results in the dead headphone output via the
    headphone plugging because it mutes the speaker and turns off EAPD.

    The fix is to simply add spec->gen.keep_on_eapd flag.

    [This is a regression fix on 3.12 where we moved the AD codec parser
    to the generic parser. 3.11 and earlier didn't show this problem
    because still static quirks have been used.]

    Reported-and-tested-by: Vito Caputo
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

05 Jul, 2013

7 commits


04 Jul, 2013

7 commits


18 Mar, 2013

1 commit


24 Jan, 2013

1 commit


23 Jan, 2013

3 commits


22 Jan, 2013

1 commit

  • AD codecs have strange implementations for choosing the SPDIF-output
    mux source: the digital audio out widget may take the sources from
    multiple connections, where 0x01 indicates it's a PCM while others
    point ADCs. It's obviously invalid in the HD-audio spec POV, but it's
    somehow convincing, too. And, to make things more complex, AD1988A
    and AD1882 have deeper connection routes that aren't expressed
    correctly.

    In this patch, the SPDIF mux control is implemented in two ways:
    - For easier one like AD1981, AD1983, AD1884 and AD1984, where the
    SPDIF audio out widget takes just two or three sources, we can
    simply implement via the normal input_mux and connection verb
    calls.

    - For the complex routes like AD1988A (but not AD1988B) or AD1882, we
    prepare "faked" paths represented statically, and switch the paths
    using these static ones, instead of parsing the routes from the
    widget tree.

    Signed-off-by: Takashi Iwai

    Takashi Iwai