ALSA: firewire-tascam: code refactoring for release of isochronous resources
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 2 Jun 2019 07:12:47 +0000 (16:12 +0900)
committerTakashi Iwai <tiwai@suse.de>
Tue, 11 Jun 2019 09:36:19 +0000 (11:36 +0200)
This commit is a part of preparation to perform allocation/release
of isochronous channels in pcm.hw_params/hw_free callbacks.

This commit obsoletes a helper function to release isochronous resources
for both direction.

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

index fc963469f6b033af50e931ae9148e000d8e33c50..6ad14927405009d4cd8da98230a9aa113b66dfa2 100644 (file)
@@ -269,13 +269,6 @@ static int begin_session(struct snd_tscm *tscm)
                                  &reg, sizeof(reg), 0);
 }
 
-static void release_resources(struct snd_tscm *tscm)
-{
-       // Release isochronous resources.
-       fw_iso_resources_free(&tscm->tx_resources);
-       fw_iso_resources_free(&tscm->rx_resources);
-}
-
 static int keep_resources(struct snd_tscm *tscm, unsigned int rate,
                          struct amdtp_stream *stream)
 {
@@ -374,7 +367,8 @@ int snd_tscm_stream_start_duplex(struct snd_tscm *tscm, unsigned int rate)
                amdtp_stream_stop(&tscm->rx_stream);
                amdtp_stream_stop(&tscm->tx_stream);
 
-               release_resources(tscm);
+               fw_iso_resources_free(&tscm->tx_resources);
+               fw_iso_resources_free(&tscm->rx_resources);
        }
 
        if (!amdtp_stream_running(&tscm->rx_stream)) {
@@ -427,7 +421,9 @@ error:
        amdtp_stream_stop(&tscm->tx_stream);
 
        finish_session(tscm);
-       release_resources(tscm);
+
+       fw_iso_resources_free(&tscm->tx_resources);
+       fw_iso_resources_free(&tscm->rx_resources);
 
        return err;
 }
@@ -441,7 +437,9 @@ void snd_tscm_stream_stop_duplex(struct snd_tscm *tscm)
        amdtp_stream_stop(&tscm->rx_stream);
 
        finish_session(tscm);
-       release_resources(tscm);
+
+       fw_iso_resources_free(&tscm->tx_resources);
+       fw_iso_resources_free(&tscm->rx_resources);
 }
 
 void snd_tscm_stream_lock_changed(struct snd_tscm *tscm)