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, ...@@ -64,8 +64,6 @@ static int snd_bcm2835_ctl_get(struct snd_kcontrol *kcontrol,
mutex_lock(&chip->audio_mutex); mutex_lock(&chip->audio_mutex);
BUG_ON(!chip && !(chip->avail_substreams & AVAIL_SUBSTREAMS_MASK));
if (kcontrol->private_value == PCM_PLAYBACK_VOLUME) if (kcontrol->private_value == PCM_PLAYBACK_VOLUME)
ucontrol->value.integer.value[0] = chip2alsa(chip->volume); ucontrol->value.integer.value[0] = chip2alsa(chip->volume);
else if (kcontrol->private_value == PCM_PLAYBACK_MUTE) else if (kcontrol->private_value == PCM_PLAYBACK_MUTE)
......
...@@ -118,14 +118,6 @@ static int snd_bcm2835_playback_open_generic( ...@@ -118,14 +118,6 @@ static int snd_bcm2835_playback_open_generic(
goto out; 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); alsa_stream = kzalloc(sizeof(*alsa_stream), GFP_KERNEL);
if (!alsa_stream) { if (!alsa_stream) {
err = -ENOMEM; err = -ENOMEM;
......
...@@ -523,18 +523,15 @@ int bcm2835_audio_set_ctls(struct bcm2835_chip *chip) ...@@ -523,18 +523,15 @@ int bcm2835_audio_set_ctls(struct bcm2835_chip *chip)
/* change ctls for all substreams */ /* change ctls for all substreams */
for (i = 0; i < MAX_SUBSTREAMS; i++) { for (i = 0; i < MAX_SUBSTREAMS; i++) {
if (chip->avail_substreams & (1 << i)) { if (!chip->alsa_stream[i])
if (!chip->alsa_stream[i]) { continue;
LOG_DBG(" No ALSA stream available?! %i:%p (%x)\n", i, chip->alsa_stream[i], chip->avail_substreams); if (bcm2835_audio_set_ctls_chan(chip->alsa_stream[i], chip) != 0) {
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); LOG_ERR("Couldn't set the controls for stream %d\n", i);
ret = -1; ret = -1;
} else { } else {
LOG_DBG(" Controls set for stream %d\n", i); LOG_DBG(" Controls set for stream %d\n", i);
} }
} }
}
return ret; return ret;
} }
......
...@@ -280,7 +280,7 @@ static int snd_add_child_device(struct device *device, ...@@ -280,7 +280,7 @@ static int snd_add_child_device(struct device *device,
struct snd_card *card; struct snd_card *card;
struct device *child; struct device *child;
struct bcm2835_chip *chip; struct bcm2835_chip *chip;
int err, i; int err;
child = snd_create_device(device, &audio_driver->driver, child = snd_create_device(device, &audio_driver->driver,
audio_driver->driver.name); audio_driver->driver.name);
...@@ -325,9 +325,6 @@ static int snd_add_child_device(struct device *device, ...@@ -325,9 +325,6 @@ static int snd_add_child_device(struct device *device,
return err; return err;
} }
for (i = 0; i < numchans; i++)
chip->avail_substreams |= (1 << i);
err = snd_card_register(card); err = snd_card_register(card);
if (err) { if (err) {
dev_err(child, "Failed to register card, error %d\n", err); dev_err(child, "Failed to register card, error %d\n", err);
......
...@@ -98,8 +98,6 @@ struct bcm2835_chip { ...@@ -98,8 +98,6 @@ struct bcm2835_chip {
struct snd_card *card; struct snd_card *card;
struct snd_pcm *pcm; struct snd_pcm *pcm;
struct snd_pcm *pcm_spdif; struct snd_pcm *pcm_spdif;
/* Bitmat for valid reg_base and irq numbers */
unsigned int avail_substreams;
struct device *dev; struct device *dev;
struct bcm2835_alsa_stream *alsa_stream[MAX_SUBSTREAMS]; 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