ALSA: oxfw: code refactoring for stop condition of packet streaming
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Wed, 12 Jun 2019 08:44:14 +0000 (17:44 +0900)
committerTakashi Iwai <tiwai@suse.de>
Wed, 12 Jun 2019 13:26:54 +0000 (15:26 +0200)
This commit unifies stop condition due to queueing error and unmatched
state of the target device.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/firewire/oxfw/oxfw-stream.c

index f230a9e..34ff673 100644 (file)
@@ -288,10 +288,6 @@ int snd_oxfw_stream_start_simplex(struct snd_oxfw *oxfw,
        if (err < 0)
                goto end;
 
-       /* packet queueing error */
-       if (amdtp_streaming_error(stream))
-               stop_stream(oxfw, stream);
-
        err = snd_oxfw_stream_get_current_formation(oxfw, dir, &formation);
        if (err < 0)
                goto end;
@@ -300,7 +296,8 @@ int snd_oxfw_stream_start_simplex(struct snd_oxfw *oxfw,
        if (pcm_channels == 0)
                pcm_channels = formation.pcm;
 
-       if ((formation.rate != rate) || (formation.pcm != pcm_channels)) {
+       if (formation.rate != rate || formation.pcm != pcm_channels ||
+           amdtp_streaming_error(stream)) {
                if (opposite != NULL) {
                        err = check_connection_used_by_others(oxfw, opposite);
                        if (err < 0)