ALSA: firewire: introduce amdtp_out_stream_running()

Introduce the helper function amdtp_out_stream_running().  This makes
many checks in amdtp.c clearer and frees the device drivers from having
to track this with a separate variable.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
This commit is contained in:
Clemens Ladisch
2011-09-04 22:15:44 +02:00
parent 9dd81e3143
commit 20b65dd040
4 changed files with 18 additions and 23 deletions

View File

@@ -246,7 +246,6 @@ struct dice {
int dev_lock_count; /* > 0 driver, < 0 userspace */
bool dev_lock_changed;
bool global_enabled;
bool stream_running;
wait_queue_head_t hwdep_wait;
u32 notification_bits;
struct snd_pcm_substream *pcm;
@@ -654,7 +653,7 @@ static int dice_stream_start_packets(struct dice *dice)
{
int err;
if (dice->stream_running)
if (amdtp_out_stream_running(&dice->stream))
return 0;
err = amdtp_out_stream_start(&dice->stream, dice->resources.channel,
@@ -668,8 +667,6 @@ static int dice_stream_start_packets(struct dice *dice)
return err;
}
dice->stream_running = true;
return 0;
}
@@ -712,14 +709,10 @@ error:
static void dice_stream_stop_packets(struct dice *dice)
{
if (!dice->stream_running)
return;
dice_enable_clear(dice);
amdtp_out_stream_stop(&dice->stream);
dice->stream_running = false;
if (amdtp_out_stream_running(&dice->stream)) {
dice_enable_clear(dice);
amdtp_out_stream_stop(&dice->stream);
}
}
static void dice_stream_stop(struct dice *dice)