15 Feb, 2017

1 commit

  • commit f3d83317a69e7d658e7c83e24f8b31ac533c39e3 upstream.

    This reverts commit f6a0dd107ad0c8b59d1c9735eea4b8cb9f460949.

    The commit caused a regression on LINE6 Transport that has no control
    caps. Although reverting the commit may result back in a spurious
    error message for some device again, it's the simplest regression fix,
    hence it's taken as is at first. The further code fix will follow
    later.

    Fixes: f6a0dd107ad0 ("ALSA: line6: Only determine control port properties if needed")
    Reported-by: Igor Zinovev
    Signed-off-by: Takashi Iwai
    Signed-off-by: Greg Kroah-Hartman

    Takashi Iwai
     

13 Oct, 2016

1 commit


10 Oct, 2016

1 commit

  • The commit c039aaa77a7d1d9375665a8b59ec16dc7d23e259 was incomplete,
    missing part of the setup for Live. This makes also audio input work,
    in addition to audio output.

    Fixes: c039aaa77a7d1d9375665a8b59ec16dc7d23e259
    Reported-by: Eddi De Pieri
    Signed-off-by: Andrej Krutak
    Signed-off-by: Takashi Iwai

    Andrej Krutak
     

26 Sep, 2016

1 commit

  • Currently, usb-line6 module exports an array of MIDI manufacturer ID and
    usb-pod module uses it. However, the declaration is not the definition in
    common header. The difference is explicit length of array. Although
    compiler calculates it and everything goes well, it's better to use the
    same representation between definition and declaration.

    This commit fills the length of array for usb-line6 module. As a small
    good sub-effect, this commit suppress below warnings from static analysis
    by sparse v0.5.0.

    sound/usb/line6/driver.c:274:43: error: cannot size expression
    sound/usb/line6/driver.c:275:16: error: cannot size expression
    sound/usb/line6/driver.c:276:16: error: cannot size expression
    sound/usb/line6/driver.c:277:16: error: cannot size expression

    Fixes: 705ececd1c60 ("Staging: add line6 usb driver")
    Signed-off-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Takashi Sakamoto
     

21 Sep, 2016

1 commit

  • ERROR: "snd_hwdep_new" [sound/usb/line6/snd-usb-line6.ko] undefined!
    scripts/Makefile.modpost:91: recipe for target '__modpost' failed
    make[1]: *** [__modpost] Error 1

    Fixes: a16039cbf1a1 ('ALSA: line6: Add hwdep interface to access the POD control messages')
    Signed-off-by: Valdis Kletnieks
    Reviewed-by: Takashi Sakamoto
    Signed-off-by: Takashi Iwai

    Valdis Kletnieks
     

20 Sep, 2016

13 commits


22 Aug, 2016

3 commits

  • The commit 02fc76f6a changed base of the sysfs attributes from device to card.
    The "show" callbacks dereferenced wrong objects because of this.

    Fixes: 02fc76f6a7db ('ALSA: line6: Create sysfs via snd_card_add_dev_attr()')
    Cc: # v4.0+
    Reviewed-by: Stefan Hajnoczi
    Signed-off-by: Andrej Krutak
    Signed-off-by: Takashi Iwai

    Andrej Krutak
     
  • Done, because line6_stream_stop() locks and calls line6_unlink_audio_urbs(),
    which in turn invokes audio_out_callback(), which tries to lock 2nd time.

    Fixes:

    =============================================
    [ INFO: possible recursive locking detected ]
    4.4.15+ #15 Not tainted
    ---------------------------------------------
    mplayer/3591 is trying to acquire lock:
    (&(&line6pcm->out.lock)->rlock){-.-...}, at: [] audio_out_callback+0x70/0x110 [snd_usb_line6]

    but task is already holding lock:
    (&(&line6pcm->out.lock)->rlock){-.-...}, at: [] line6_stream_stop+0x24/0x5c [snd_usb_line6]

    other info that might help us debug this:
    Possible unsafe locking scenario:

    CPU0
    ----
    lock(&(&line6pcm->out.lock)->rlock);
    lock(&(&line6pcm->out.lock)->rlock);

    *** DEADLOCK ***

    May be due to missing lock nesting notation

    3 locks held by mplayer/3591:
    #0: (snd_pcm_link_rwlock){.-.-..}, at: [] snd_pcm_stream_lock+0x1e/0x40 [snd_pcm]
    #1: (&(&substream->self_group.lock)->rlock){-.-...}, at: [] snd_pcm_stream_lock+0x26/0x40 [snd_pcm]
    #2: (&(&line6pcm->out.lock)->rlock){-.-...}, at: [] line6_stream_stop+0x24/0x5c [snd_usb_line6]

    stack backtrace:
    CPU: 0 PID: 3591 Comm: mplayer Not tainted 4.4.15+ #15
    Hardware name: Generic AM33XX (Flattened Device Tree)
    [] (unwind_backtrace) from [] (show_stack+0x11/0x14)
    [] (show_stack) from [] (dump_stack+0x8b/0xac)
    [] (dump_stack) from [] (__lock_acquire+0xc8b/0x1780)
    [] (__lock_acquire) from [] (lock_acquire+0x99/0x1c0)
    [] (lock_acquire) from [] (_raw_spin_lock_irqsave+0x3f/0x4c)
    [] (_raw_spin_lock_irqsave) from [] (audio_out_callback+0x70/0x110 [snd_usb_line6])
    [] (audio_out_callback [snd_usb_line6]) from [] (__usb_hcd_giveback_urb+0x53/0xd0)
    [] (__usb_hcd_giveback_urb) from [] (musb_giveback+0x3d/0x98)
    [] (musb_giveback) from [] (musb_urb_dequeue+0x6d/0x114)
    [] (musb_urb_dequeue) from [] (usb_hcd_unlink_urb+0x39/0x98)
    [] (usb_hcd_unlink_urb) from [] (line6_unlink_audio_urbs+0x6a/0x6c [snd_usb_line6])
    [] (line6_unlink_audio_urbs [snd_usb_line6]) from [] (line6_stream_stop+0x42/0x5c [snd_usb_line6])
    [] (line6_stream_stop [snd_usb_line6]) from [] (snd_line6_trigger+0xb6/0xf4 [snd_usb_line6])
    [] (snd_line6_trigger [snd_usb_line6]) from [] (snd_pcm_do_stop+0x36/0x38 [snd_pcm])
    [] (snd_pcm_do_stop [snd_pcm]) from [] (snd_pcm_action_single+0x22/0x40 [snd_pcm])
    [] (snd_pcm_action_single [snd_pcm]) from [] (snd_pcm_action+0xac/0xb0 [snd_pcm])
    [] (snd_pcm_action [snd_pcm]) from [] (snd_pcm_drop+0x38/0x64 [snd_pcm])
    [] (snd_pcm_drop [snd_pcm]) from [] (snd_pcm_common_ioctl1+0x7fe/0xbe8 [snd_pcm])
    [] (snd_pcm_common_ioctl1 [snd_pcm]) from [] (snd_pcm_playback_ioctl1+0x15c/0x51c [snd_pcm])
    [] (snd_pcm_playback_ioctl1 [snd_pcm]) from [] (snd_pcm_playback_ioctl+0x20/0x28 [snd_pcm])
    [] (snd_pcm_playback_ioctl [snd_pcm]) from [] (do_vfs_ioctl+0x3af/0x5c8)

    Fixes: 63e20df1e5b2 ('ALSA: line6: Reorganize PCM stream handling')
    Cc: # v4.0+
    Reviewed-by: Stefan Hajnoczi
    Signed-off-by: Andrej Krutak
    Signed-off-by: Takashi Iwai

    Andrej Krutak
     
  • If there's an error, pcm is released in line6_pcm_acquire already.

    Fixes: 247d95ee6dd2 ('ALSA: line6: Handle error from line6_pcm_acquire()')
    Cc: # v4.0+
    Reviewed-by: Stefan Hajnoczi
    Signed-off-by: Andrej Krutak
    Signed-off-by: Takashi Iwai

    Andrej Krutak
     

14 Jul, 2015

1 commit

  • When a monitor stream is active, the next PCM stream access results in
    EBUSY error because of the check in line6_stream_start(). Fix this by
    just skipping the submission of pending URBs when the stream is
    already running instead.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101431
    Cc: # v4.0+
    Signed-off-by: Takashi Iwai

    Takashi Iwai
     

05 Mar, 2015

1 commit


12 Feb, 2015

1 commit


11 Feb, 2015

5 commits


08 Feb, 2015

3 commits


06 Feb, 2015

2 commits


03 Feb, 2015

2 commits


01 Feb, 2015

2 commits


29 Jan, 2015

2 commits