29 May, 2015

1 commit

  • The commit [49fb18972581: ALSA: hda - Set stream_pm ops automatically
    by generic parser] resulted in regressions on some Realtek and VIA
    codecs because these drivers set patch_ops after calling the generic
    parser, thus stream_pm got cleared to NULL again. I haven't noticed
    since I tested with IDT codec.

    Restore (partial revert) the stream_pm ops for them to fix the
    regression.

    Fixes: 49fb18972581 ('ALSA: hda - Set stream_pm ops automatically by generic parser')
    Reported-by: Jeremiah Mahler
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

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


11 May, 2015

1 commit


05 May, 2015

1 commit


04 May, 2015

2 commits


02 May, 2015

1 commit


01 May, 2015

3 commits


29 Apr, 2015

6 commits


28 Apr, 2015

2 commits

  • The OSS emulation in synth-emux helper has a potential AB/BA deadlock
    at the simultaneous closing and opening:

    close ->
    snd_seq_release() ->
    sne_seq_free_client() ->
    snd_seq_delete_all_ports(): takes client->ports_mutex ->
    port_delete() ->
    snd_emux_unuse(): takes emux->register_mutex

    open ->
    snd_seq_oss_open() ->
    snd_emux_open_seq_oss(): takes emux->register_mutex ->
    snd_seq_event_port_attach() ->
    snd_seq_create_port(): takes client->ports_mutex

    This patch addresses the deadlock by reducing the rance taking
    emux->register_mutex in snd_emux_open_seq_oss(). The lock is needed
    for the refcount handling, so move it locally. The calls in
    emux_seq.c are already with the mutex, thus they are replaced with the
    version without mutex lock/unlock.

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Current code uses wrong mask when setting RT5645_DMIC_2_DP_GPIO12 bit,
    fix it.

    Signed-off-by: Axel Lin
    Signed-off-by: Mark Brown

    Axel Lin
     

27 Apr, 2015

2 commits

  • Reported by coverity CID 1296024.

    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The emux-synth driver has a possible AB/BA mutex deadlock at unloading
    the emu10k1 driver:

    snd_emux_free() ->
    snd_emux_detach_seq(): mutex_lock(&emu->register_mutex) ->
    snd_seq_delete_kernel_client() ->
    snd_seq_free_client(): mutex_lock(®ister_mutex)

    snd_seq_release() ->
    snd_seq_free_client(): mutex_lock(®ister_mutex) ->
    snd_seq_delete_all_ports() ->
    snd_emux_unuse(): mutex_lock(&emu->register_mutex)

    Basically snd_emux_detach_seq() doesn't need a protection of
    emu->register_mutex as it's already being unregistered. So, we can
    get rid of this for avoiding the deadlock.

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai