summaryrefslogtreecommitdiffstats
path: root/sound/firewire
diff options
context:
space:
mode:
authorTakashi Sakamoto2019-06-11 15:21:09 +0200
committerTakashi Iwai2019-06-11 16:02:04 +0200
commit638e19fc46afceb65f6bfff65b2164fbb3324cb3 (patch)
treedec31cd72227021abc33e4032642e1c6a366fca7 /sound/firewire
parentALSA: firewire-digi00x: code refactoring to finish streaming session (diff)
downloadkernel-qcow2-linux-638e19fc46afceb65f6bfff65b2164fbb3324cb3.tar.gz
kernel-qcow2-linux-638e19fc46afceb65f6bfff65b2164fbb3324cb3.tar.xz
kernel-qcow2-linux-638e19fc46afceb65f6bfff65b2164fbb3324cb3.zip
ALSA: firewire-digi00x: simplify error path to begin streaming session
This commit is a part of preparation to perform allocation/release of isochronous resources in pcm.hw_params/hw_free callbacks. The caller of begin_session() calls finish_session() in its error path, thus no need to call finish_session() in error path of begin_session(). This commit simplifies error path of begin_session(). Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/firewire')
-rw-r--r--sound/firewire/digi00x/digi00x-stream.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/sound/firewire/digi00x/digi00x-stream.c b/sound/firewire/digi00x/digi00x-stream.c
index 90e31b63ac2f..8104af94aed5 100644
--- a/sound/firewire/digi00x/digi00x-stream.c
+++ b/sound/firewire/digi00x/digi00x-stream.c
@@ -159,13 +159,13 @@ static int begin_session(struct snd_dg00x *dg00x)
DG00X_ADDR_BASE + DG00X_OFFSET_ISOC_CHANNELS,
&data, sizeof(data), 0);
if (err < 0)
- goto error;
+ return err;
err = snd_fw_transaction(dg00x->unit, TCODE_READ_QUADLET_REQUEST,
DG00X_ADDR_BASE + DG00X_OFFSET_STREAMING_STATE,
&data, sizeof(data), 0);
if (err < 0)
- goto error;
+ return err;
curr = be32_to_cpu(data);
if (curr == 0)
@@ -180,15 +180,12 @@ static int begin_session(struct snd_dg00x *dg00x)
DG00X_OFFSET_STREAMING_SET,
&data, sizeof(data), 0);
if (err < 0)
- goto error;
+ break;
msleep(20);
curr--;
}
- return 0;
-error:
- finish_session(dg00x);
return err;
}