All the alsa_stream->open flag checks in the current code are
redundant, and they cannot be racy.  For the code simplification,
let's remove the flag and its check.

Signed-off-by: Takashi Iwai <[email protected]>
---
 .../staging/vc04_services/bcm2835-audio/bcm2835-pcm.c    | 9 ++-------
 drivers/staging/vc04_services/bcm2835-audio/bcm2835.h    | 1 -
 2 files changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c 
b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
index a3ab5bfea08a..2c2b6b70df63 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c
@@ -57,8 +57,7 @@ void bcm2835_playback_fifo(struct bcm2835_alsa_stream 
*alsa_stream)
        audio_info("alsa_stream=%p substream=%p\n", alsa_stream,
                alsa_stream ? alsa_stream->substream : 0);
 
-       if (alsa_stream->open)
-               consumed = bcm2835_audio_retrieve_buffers(alsa_stream);
+       consumed = bcm2835_audio_retrieve_buffers(alsa_stream);
 
        /* We get called only if playback was triggered, So, the number of 
buffers we retrieve in
         * each iteration are the buffers that have been played out already
@@ -154,7 +153,6 @@ static int snd_bcm2835_playback_open_generic(
        chip->alsa_stream[idx] = alsa_stream;
 
        chip->opened |= (1 << idx);
-       alsa_stream->open = 1;
        alsa_stream->draining = 1;
 
 out:
@@ -205,10 +203,7 @@ static int snd_bcm2835_playback_close(struct 
snd_pcm_substream *substream)
        alsa_stream->period_size = 0;
        alsa_stream->buffer_size = 0;
 
-       if (alsa_stream->open) {
-               alsa_stream->open = 0;
-               bcm2835_audio_close(alsa_stream);
-       }
+       bcm2835_audio_close(alsa_stream);
        if (alsa_stream->chip)
                alsa_stream->chip->alsa_stream[alsa_stream->idx] = NULL;
        /*
diff --git a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h 
b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h
index d2441916960d..79363260ae34 100644
--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.h
@@ -121,7 +121,6 @@ struct bcm2835_alsa_stream {
 
        spinlock_t lock;
 
-       int open;
        int running;
        int draining;
 
-- 
2.18.0

Reply via email to