24 Nov, 2012

1 commit


23 Nov, 2012

1 commit


21 Nov, 2012

9 commits


20 Nov, 2012

1 commit

  • We've got a report that the runtime PM may make the codec the
    unresponsive on AMD platforms. Since the feature has been tested only
    on the recent Intel platforms, it's safer to limit the support to such
    devices for now.

    This patch adds a new DCAPS bit flag indicating the runtime PM
    support, and mark it for Intel controllers.

    Reported-and-tested-by: Julian Wollrath
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

19 Nov, 2012

3 commits

  • When the bus reset is performed during the suspend/resume (including
    the power-saving too), it calls snd_hda_suspend() and
    snd_hda_resume() again, and deadlocks eventually.

    For avoiding the recursive call, add a new flag indicating that the PM
    is being performed, and don't go to the bus reset mode when it's on.

    Reported-and-tested-by: Julian Wollrath
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Merge a regression fix for USB MIDI on non-standard usb-audio drivers
    by Clemens.

    Takashi Iwai
     
  • Commit 88a8516a2128 (ALSA: usbaudio: implement USB autosuspend) added
    autosuspend code to all files making up the snd-usb-audio driver.
    However, midi.c is part of snd-usb-lib and is also used by other
    drivers, not all of which support autosuspend. Thus, calls to
    usb_autopm_get_interface() could fail, and this unexpected error would
    result in the MIDI output being completely unusable.

    Make it work by ignoring the error that is expected with drivers that do
    not support autosuspend.

    Reported-by: Colin Fletcher
    Reported-by: Devin Venable
    Reported-by: Dr Nick Bailey
    Reported-by: Jannis Achstetter
    Reported-by: Rui Nuno Capela
    Cc: Oliver Neukum
    Cc: 2.6.39+
    Signed-off-by: Clemens Ladisch

    Clemens Ladisch
     

16 Nov, 2012

2 commits


14 Nov, 2012

2 commits

  • The recent change for USB-audio disconnection race fixes introduced a
    mutex deadlock again. There is a circular dependency between
    chip->shutdown_rwsem and pcm->open_mutex, depicted like below, when a
    device is opened during the disconnection operation:

    A. snd_usb_audio_disconnect() ->
    card.c::register_mutex ->
    chip->shutdown_rwsem (write) ->
    snd_card_disconnect() ->
    pcm.c::register_mutex ->
    pcm->open_mutex

    B. snd_pcm_open() ->
    pcm->open_mutex ->
    snd_usb_pcm_open() ->
    chip->shutdown_rwsem (read)

    Since the chip->shutdown_rwsem protection in the case A is required
    only for turning on the chip->shutdown flag and it doesn't have to be
    taken for the whole operation, we can reduce its window in
    snd_usb_audio_disconnect().

    Reported-by: Jiri Slaby
    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • There is a precedence bug because | has higher precedence than ?:. This
    code was cut and pasted and I fixed a similar bug a few days ago.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Takashi Iwai

    Dan Carpenter
     

13 Nov, 2012

4 commits


12 Nov, 2012

1 commit


10 Nov, 2012

2 commits


08 Nov, 2012

5 commits

  • There are uncovered cases whether the card refcount introduced by the
    commit a0830dbd isn't properly increased or decreased:
    - OSS PCM and mixer success paths
    - When lookup function gets NULL

    This patch fixes these places.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=50251

    Cc:
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • Signed-off-by: Kailang Yang
    Cc:
    Signed-off-by: Takashi Iwai

    Kailang Yang
     
  • alc269_toggle_power_output() was only use in ALC269VB. I rename it to
    alc269vb_toggle_power_output().

    Signed-off-by: Kailang Yang
    Cc:
    Signed-off-by: Takashi Iwai

    Kailang Yang
     
  • There are bug reports of a crash with USB-audio devices when PCM
    prepare is performed immediately after the stream is stopped via
    trigger callback. It turned out that the problem is that we don't
    wait until all URBs are killed.

    This patch adds a new function to synchronize the pending stop
    operation on an endpoint, and calls in the prepare callback for
    avoiding the crash above.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=49181

    Reported-and-tested-by: Artem S. Tashkinov
    Cc: [v3.6]
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     
  • The RayDAT reports the sync status of its inputs in consecutive bit
    positions, so all we do in hdspm_s1_sync_check is to iterate over idx:

    status = hdspm_read(hdspm, HDSPM_RD_STATUS_1);

    lock = (status & (0x1<<private_value:

    HDSPM_SYNC_CHECK("WC SyncCheck", 0),
    HDSPM_SYNC_CHECK("AES SyncCheck", 1),
    HDSPM_SYNC_CHECK("SPDIF SyncCheck", 2),
    HDSPM_SYNC_CHECK("ADAT1 SyncCheck", 3),
    HDSPM_SYNC_CHECK("ADAT2 SyncCheck", 4),
    HDSPM_SYNC_CHECK("ADAT3 SyncCheck", 5),
    HDSPM_SYNC_CHECK("ADAT4 SyncCheck", 6),
    HDSPM_SYNC_CHECK("TCO SyncCheck", 7),
    HDSPM_SYNC_CHECK("SYNC IN SyncCheck", 8),

    The patch corrects the indicated sync flags by passing the proper index
    value to hdspm_s1_sync_check().

    Signed-off-by: Adrian Knoth
    Signed-off-by: Takashi Iwai

    Adrian Knoth
     

07 Nov, 2012

5 commits


06 Nov, 2012

1 commit

  • When MCLK is supplied externally and BCLK and LRC are configured as outputs
    (codec is master), the PLL values are only calculated correctly on the first
    transmission. On subsequent transmissions, at differenct sample rates, the
    wrong PLL values are used. Test for f_opclk instead of f_pllout to determine
    if the PLL values are needed.

    Signed-off-by: Eric Millbrandt
    Signed-off-by: Mark Brown
    Cc: stable@vger.kernel.org

    Eric Millbrandt
     

05 Nov, 2012

3 commits