Commit 51002248 authored by Takashi Iwai's avatar Takashi Iwai Committed by Greg Kroah-Hartman

staging: bcm2835-audio: Remove redundant substream mask checks

The avail_substreams bit mask is checked for the possible racy
accesses, but this cannot happen in practice; i.e. the assignment and
the check are superfluous.

Let's rip them off.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Tested-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 107f3512
......@@ -64,8 +64,6 @@ static int snd_bcm2835_ctl_get(struct snd_kcontrol *kcontrol,
mutex_lock(&chip->audio_mutex);
BUG_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));
if (kcontrol->private_value == PCM_PLAYBACK_VOLUME)
ucontrol->value.integer.value[0] = chip2alsa(chip->volume);
else if (kcontrol->private_value == PCM_PLAYBACK_MUTE)
......
......@@ -118,14 +118,6 @@ static int snd_bcm2835_playback_open_generic(
goto out;
}
/* Check if we are ready */
if (!(chip->avail_substreams & (1 << idx))) {
/* We are not ready yet */
audio_error("substream(%d) device is not ready yet\n", idx);
err = -EAGAIN;
goto out;
}
alsa_stream = kzalloc(sizeof(*alsa_stream), GFP_KERNEL);
if (!alsa_stream) {
err = -ENOMEM;
......
......@@ -523,16 +523,13 @@ int bcm2835_audio_set_ctls(struct bcm2835_chip *chip)
/* change ctls for all substreams */
for (i = 0; i < MAX_SUBSTREAMS; i++) {
if (chip->avail_substreams & (1 << i)) {
if (!chip->alsa_stream[i]) {
LOG_DBG(" No ALSA stream available?! %i:%p (%x)\n", i, chip->alsa_stream[i], chip->avail_substreams);
ret = 0;
} else if (bcm2835_audio_set_ctls_chan(chip->alsa_stream[i], chip) != 0) {
LOG_ERR("Couldn't set the controls for stream %d\n", i);
ret = -1;
} else {
LOG_DBG(" Controls set for stream %d\n", i);
}
if (!chip->alsa_stream[i])
continue;
if (bcm2835_audio_set_ctls_chan(chip->alsa_stream[i], chip) != 0) {
LOG_ERR("Couldn't set the controls for stream %d\n", i);
ret = -1;
} else {
LOG_DBG(" Controls set for stream %d\n", i);
}
}
return ret;
......
......@@ -280,7 +280,7 @@ static int snd_add_child_device(struct device *device,
struct snd_card *card;
struct device *child;
struct bcm2835_chip *chip;
int err, i;
int err;
child = snd_create_device(device, &audio_driver->driver,
audio_driver->driver.name);
......@@ -325,9 +325,6 @@ static int snd_add_child_device(struct device *device,
return err;
}
for (i = 0; i < numchans; i++)
chip->avail_substreams |= (1 << i);
err = snd_card_register(card);
if (err) {
dev_err(child, "Failed to register card, error %d\n", err);
......
......@@ -98,8 +98,6 @@ struct bcm2835_chip {
struct snd_card *card;
struct snd_pcm *pcm;
struct snd_pcm *pcm_spdif;
/* Bitmat for valid reg_base and irq numbers */
unsigned int avail_substreams;
struct device *dev;
struct bcm2835_alsa_stream *alsa_stream[MAX_SUBSTREAMS];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment