15 Dec, 2014

1 commit


16 Sep, 2014

2 commits

  • Like the previous fix for STAC/IDT codecs, the automute hooks in VIA
    driver can be also removed by enabling the power control callback for
    all pins.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • So far, hda_jack infrastructure allows only one callback per jack, and
    this makes things slightly complicated when a driver wants to assign
    multiple tasks to a jack, e.g. the standard auto-mute with a power
    up/down sequence. This can be simplified if the hda_jack accepts
    multiple callbacks.

    This patch is such an extension: the callback-specific part (the
    function and private_data) is split to another struct from
    hda_jack_tbl, and multiple such objects can be assigned to a single
    hda_jack_tbl entry.

    The new struct hda_jack_callback is passed to each callback function
    now, thus the patch became bigger than expected. But these changes
    are mostly trivial.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

11 Sep, 2014

1 commit

  • The action value assigned to each hda_jack_tbl entry is mostly
    superfluous. The actually used values are either the widget NID or a
    value specific to the callback.

    The former case can be simply replaced by a reference to widget NID
    itself. The only place doing the latter is STAC/IDT codec driver for
    the powermap handling. But, the code doesn't need to check the action
    field at all -- the function jack_update_power() is called either with
    a specific pin or with NULL. So the check of jack->action can be
    removed completely there, too.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

11 Feb, 2014

1 commit


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
     

29 Jul, 2013

1 commit


25 Jun, 2013

1 commit

  • We've got bug report wrt many machines with VT1708 (e.g. IBM POS
    machines) showing the broken auto-mute behavior. It turned out that
    the problem is that the pin control values of the speaker and line-out
    pins are completely ignored. As a workaround, let's use the newly
    introduced feature of the generic parser, to control the mute via amp
    on pins.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

19 Jun, 2013

1 commit

  • Some VIA codecs like VT1708S have Mic boost amps in the mic pins but
    they aren't exposed in the capability bits. In the past driver code,
    we override the pin caps and create mic boost controls forcibly.
    While transition to the generic parser, we lost the mic boost controls
    although the pin caps are still overridden, because the generic parser
    code checks the widget caps, too.

    So this patch adds a new helper function to allow the override of the
    given widget capability bits, and makes VIA codecs driver to add the
    missing input-amp capability bit.

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

    Takashi Iwai
     

05 Jun, 2013

1 commit


03 Jun, 2013

3 commits

  • 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: Alex Riesen
    Cc: [v3.9]
    Signed-off-by: Takashi Iwai

    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: Alex Riesen
    Cc: [v3.9]
    Signed-off-by: Takashi Iwai

    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: Alex Riesen
    Cc: [v3.9]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

22 Mar, 2013

1 commit

  • The recent fix for the independent HP reduced the availability of the
    side surround output, because there are only 4 DACs for 7.1 and a HP
    outputs. Adjust the badness tables for VIA so that 7.1 outputs are
    activated for the cost of missing independent HP.

    Once when we implement the dynamic DAC switching to multiple outputs,
    this conflicts will be eased in future...

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

07 Feb, 2013

1 commit


05 Feb, 2013

2 commits


25 Jan, 2013

2 commits


21 Jan, 2013

1 commit


12 Jan, 2013

3 commits


10 Dec, 2012

2 commits


01 Dec, 2012

1 commit


28 Nov, 2012

1 commit

  • This is a preliminary patch for introducing a protection to access
    races of snd_array instances. Call snd_array_init() appropriately
    at the initialization time and don't call it twice.

    Also the allocations of codec-spec structs are cleaned up by helper
    functions in patch_sigmatel.c and patch_analog.c.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

09 Nov, 2012

3 commits


07 Nov, 2012

3 commits

  • To parse properly the subwoofer outputs on ASUS G75 laptop with VT1802
    codec, correct the default configurations of speaker pins 0x24 and
    0x33.

    Reported-by: Massimo Del Fedele
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • VT1802 codec provides the invalid connection lists of NID 0x24 and
    0x33 containing the routes to a non-exist widget 0x3e. This confuses
    the auto-parser. Fix it up in the driver by overriding these
    connections.

    Reported-by: Massimo Del Fedele
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • In via_auto_fill_adc_nids(), the parser tries to fill dac_nids[] at
    the point of the current line-out (i). When no valid path is found
    for this output, this results in dac = 0, thus it creates a hole in
    dac_nids[]. This confuses is_empty_dac() and trims the detected DAC
    in later reference.

    This patch fixes the bug by appending DAC properly to dac_nids[] in
    via_auto_fill_adc_nids().

    Reported-by: Massimo Del Fedele
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

10 Oct, 2012

1 commit

  • The commit [4b527b65 ALSA: hda - limit internal mic boost for Asus
    X202E] introduced the use of auto-parser code, but it forgot to add
    struct hda_gen_spec at the head of codec->spec which the auto-parser
    assumes silently. Without this record, it may result in memory
    corruption.

    This patch adds the missing piece.

    Cc: [v3.5+]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

08 Oct, 2012

2 commits


22 Sep, 2012

1 commit

  • If headphone jack can't detect plug presence, and we have the jack in
    the jack table, snd_hda_jack_detect will return the plug as always
    present (as it'll be considered as a phantom jack). The problem is that
    when this happens, line out pins will always be disabled, resulting in
    no sound if there are no headphones connected.

    This was reported as a no sound problem after suspend on
    http://bugs.launchpad.net/bugs/1052499, since the bug doesn't manifests
    on first initialization before the phantom jack is added, but on resume
    we reexecute the initialization code, and via_hp_automute starts
    reporting HP always present with the jack now on the table.

    BugLink: https://bugs.launchpad.net/bugs/1052499
    Signed-off-by: Herton Ronaldo Krzesinski
    Cc: [v3.6+]
    Signed-off-by: Takashi Iwai

    Herton Ronaldo Krzesinski
     

18 Sep, 2012

1 commit

  • When the input gain for the internal mic is set to its maximum level,
    the background noise becomes so high - and any relevant signal clipped -
    that the setting becomes unusable. It is better to limit the amplification.

    BugLink: https://bugs.launchpad.net/bugs/1052460
    Signed-off-by: David Henningsson
    Cc: [v3.5+]
    Signed-off-by: Takashi Iwai

    David Henningsson
     

30 Aug, 2012

1 commit


22 Aug, 2012

1 commit