16 Jun, 2015

2 commits

  • When CONFIG_SND_HDA_I915=n, we get a compile warning:
    sound/pci/hda/hda_intel.c: In function ‘azx_probe_continue’:
    sound/pci/hda/hda_intel.c:1882:2: warning: label ‘skip_i915’ defined but not used [-Wunused-label]

    Fix it by putting again ifdef to it. Sigh.

    Fixes: bf06848bdbe5 ('ALSA: hda - Continue probing even if i915 binding fails')
    Reported-by: Borislav Petkov
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The new Dell XPS13 also requires the similar quirk for fixing the
    noisy outputs. (But, as the codec was changed, now the fixup for
    Latitude is used instead.)

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

    Takashi Iwai
     

15 Jun, 2015

3 commits

  • Fix the missing dependency on PCM stuff.

    [Add the same fix for HAL2, too -- tiwai]

    Signed-off-by: Nicholas Mc Guire
    Signed-off-by: Takashi Iwai

    Nicholas Mc Guire
     
  • We still got a report that the audio crackles and noises occur with
    the recent 4.1 kernels on Dell machines. These machines seem to need
    similar workarounds that have been applied to the recent Dell XPS 13
    models. Since the codec of these machines (Dell Latitute E7240 and
    E7440) is different from XPS 13's one, we need a new fixup entry.

    Also, it was confirmed that the previous workaround to disable the
    widget power-save (commit [219f47e4f964: ALSA: hda - Disable widget
    power-saving for ALC292 & co]) is no longer needed after this fix.
    So, this patch includes the partial revert of the commit, too.

    Reported-and-tested-by: Mihai Donțu
    Tested-by: Jonathan McDowell
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • On a HP Envy TouchSmart laptop, there are 2 speakers (main speaker
    and subwoofer speaker), 1 headphone and 2 DACs, without this fixup,
    the headphone will be assigned to a DAC and the 2 speakers will be
    assigned to another DAC, this assignment makes the surround-2.1
    channels invalid.

    To fix it, here using a DAC/pin preference map to bind the main
    speaker to 1 DAC and the subwoofer speaker will be assigned to another
    DAC.

    Cc:
    Signed-off-by: Hui Wang
    Signed-off-by: Takashi Iwai

    Hui Wang
     

12 Jun, 2015

1 commit

  • The previous patch tried to continue the probe if i915 binding fails.
    For for simplicity reason, we haven't implemented abort even for
    controller chips that are dedicated for HDMI/DP on HSW and BDW.
    However, Mengdong suggested that this can be dangerous; BIOS may
    disable gfx power well although the PCI entry for HD-audio is left,
    and this may result in the unexpected behavior, kernel errors, etc.

    For avoiding this situation, abort the probe at i915 binding failure
    only for HSW/BDW chips selectively. For other chips, it still
    continues.

    Fixes: bf06848bdbe5 ('ALSA: hda - Continue probing even if i915 binding fails')
    Reported-by: Mengdong Lin
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

11 Jun, 2015

2 commits

  • Yet another regression by the transition to regmap cache; for better
    usability, we had the fake mute control using the zero amp value for
    Conexant codecs, and this was forgotten in the new hda core code.

    Since the bits 4-7 are unused for the amp registers (as we follow the
    syntax of AMP_GET verb), the bit 4 is now used to indicate the fake
    mute. For setting this flag, snd_hda_codec_amp_update() becomes a
    function from a simple macro. The bonus is that it gained a proper
    function description.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Currently snd-hda-intel driver aborts the probing of Intel HD-audio
    controller with i915 power well management when binding with i915
    driver via hda_i915_init() fails. This is no big problem for Haswell
    and Broadwell where the HD-audio controllers are dedicated to
    HDMI/DP, thus i915 link is mandatory. However, Skylake, Baytrail and
    Braswell have only one controller and both HDMI/DP and analog codecs
    share the same bus. Thus, even if HDMI/DP isn't usable, we should
    keep the controller working for other codecs.

    For fixing this, this patch simply allows continuing the probing even
    if hda_i915_init() call fails. This may leave stale sound components
    for HDMI/DP devices that are unbound with graphics. We could abort
    the probing selectively, but from the code simplicity POV, it's better
    to continue in all cases.

    Reported-by: Libin Yang
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

10 Jun, 2015

1 commit

  • Along with the transition to regmap for managing the cached parameter
    reads, the caps overwrite was also moved to regmap cache. The cache
    change itself works, but it still tries to write the non-existing verb
    (the HDA parameter is read-only) wrongly. It's harmless in most
    cases, but some chips are picky and may result in the codec
    communication stall.

    This patch avoids it just by adding the missing flag check in
    reg_write ops.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

09 Jun, 2015

1 commit


08 Jun, 2015

1 commit


03 Jun, 2015

3 commits


31 May, 2015

1 commit


30 May, 2015

1 commit

  • This quirk allows us to avoid the noisy:

    current rate 0 is different from the runtime rate

    message every time playback starts. While USB DAC in the RR2150
    supports reading the sample rate, it never returns a sample rate
    other than zero in my observation with common sample rates.

    Signed-off-by: Eric Wong
    Cc: Joe Turner
    Cc:
    Signed-off-by: Takashi Iwai

    Eric Wong
     

29 May, 2015

3 commits


28 May, 2015

2 commits

  • When headphone mic boost is above zero, some 10 - 20 second delay
    might occur before the headphone mic is operational.
    Therefore disable the headphone mic boost control (recording gain is
    sufficient even without it).

    (Note: this patch is not about the headset mic, it's about the less
    common mic-in only mode.)

    BugLink: https://bugs.launchpad.net/bugs/1454235
    Suggested-by: Kailang Yang
    Signed-off-by: David Henningsson
    Signed-off-by: Takashi Iwai

    David Henningsson
     
  • We've got a regression report that 4.1-rc causes noises on a Dell
    laptop. Similar like Realtek codec, this seems also triggered by the
    recent power_save_node feature. As this kind of issue is quite hard
    to debug without actual hardware, disable the power_save_node flag for
    this codec as a workaround.

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

    Takashi Iwai
     

27 May, 2015

2 commits


26 May, 2015

1 commit


24 May, 2015

2 commits

  • This reverts commit 7290006d8c0900c56d8c58428134f02c35109d17.

    Through the regression report, it was revealed that the
    tpacpi_led_set() call to thinkpad_acpi helper doesn't only toggle the
    mute LED but actually mutes the sound. This is contradiction to the
    expectation, and rather confuses user.

    According to Henrique, it's not trivial to judge which TP model
    behaves "LED-only" and which model does whatever more intrusive, as
    Lenovo's implementations vary model by model. So, from the safety
    reason, we should revert the patch for now.

    Reported-by: Martin Steigerwald
    Cc: Pali Rohár
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Microsoft LifeCam HD-3000 (045e:0779) needs a similar quirk for
    suppressing the unsupported sample rate inquiry.

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

    Vittorio G (VittGam)
     

20 May, 2015

3 commits

  • We've got reports that ALC3226 (a Dell variant of ALC292) gives click
    noises at transition from D3 to D0 when the widget power-saving is
    enabled. Further debugging session showed that avoiding it isn't
    trivial, unfortunately, since paths are basically activated
    dynamically while the pins have been already enabled.

    This patch disables the widget power-saving for such codecs.

    Reported-by: Jonathan McDowell
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The widget (node) power-saves restore the widget states at each
    transition from D3 to D0 on each node. This was added in the commit
    [d545a57c5f84:ALSA: hda - Sync node attributes at resume from widget
    power saving]. However, the test was rater false-positive; this
    wasn't needed for any codecs.

    Since the resync may take significant number of additional verbs to be
    executed, it's better to reduce it. Let's disable it for now again.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The recently added DT support for the ac97 driver is causing
    a gcc warning:

    sound/atmel/ac97c.c: In function 'atmel_ac97c_probe_dt':
    sound/atmel/ac97c.c:919:29: warning: unused variable 'match' [-Wunused-variable]
    const struct of_device_id *match;

    The variable is clearly unused, so we can remove it.

    Signed-off-by: Arnd Bergmann
    Acked-by: Alexander Stein
    Signed-off-by: Takashi Iwai

    Arnd Bergmann
     

19 May, 2015

2 commits

  • Microsoft LifeCam Studio (045e:0772) needs a similar quirk for
    suppressing the wrong sample rate inquiry.

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

    Takashi Iwai
     
  • Currently in snd_pcm_update_hw_ptr0 during interrupt,
    we consider there were double acknowledged interrupts when:
    1. HW reported pointer is smaller than expected, and
    2. Time from last update time (hdelta) is over half a buffer time.

    However, when HW reported pointer is only a few bytes smaller than
    expected, and when hdelta is just a little larger than half a buffer time
    (e.g. ping-pong buffer), it wrongly treats this IRQ as double acknowledged.

    The condition #2 uses jiffies, but jiffies is not high resolution
    since it is integer. We should consider jiffies inaccuracy.

    Signed-off-by: Koro Chen
    Signed-off-by: Takashi Iwai

    Koro Chen
     

18 May, 2015

4 commits


13 May, 2015

5 commits