struct snd_soc_tplg_private *priv = mixer->priv;
struct snd_soc_tplg_mixer_control *mc;
struct tplg_elem *elem;
- int ret, i;
+ int ret, i, num_channels;
tplg_dbg(" Control Mixer: %s\n", mixer->hdr.name);
for (i = 0; i < SND_SOC_TPLG_MAX_CHAN; i++)
mc->channel[i].reg = -1;
- if (mixer->map)
- mc->num_channels = mixer->map->num_channels;
- for (i = 0; i < mc->num_channels; i++) {
+ num_channels = mixer->map ? mixer->map->num_channels : 0;
+ mc->num_channels = num_channels;
+
+ for (i = 0; i < num_channels; i++) {
struct snd_tplg_channel_elem *channel = &mixer->map->channel[i];
mc->channel[i].size = channel->size;
{
struct snd_soc_tplg_enum_control *ec;
struct tplg_elem *elem;
- int ret, i;
+ int ret, i, num_items;
tplg_dbg(" Control Enum: %s\n", enum_ctl->hdr.name);
return ret;
}
- ec->items = enum_ctl->items;
- if (ec->items > SND_SOC_TPLG_NUM_TEXTS)
- ec->items = SND_SOC_TPLG_NUM_TEXTS;
-
+ num_items = enum_ctl->items < SND_SOC_TPLG_NUM_TEXTS ?
+ enum_ctl->items : SND_SOC_TPLG_NUM_TEXTS;
+ ec->items = num_items;
ec->mask = enum_ctl->mask;
ec->count = enum_ctl->items;
if (enum_ctl->texts != NULL) {
- for (i = 0; i < ec->items; i++) {
+ for (i = 0; i < num_items; i++) {
if (enum_ctl->texts[i] != NULL)
strncpy(ec->texts[i], enum_ctl->texts[i],
SNDRV_CTL_ELEM_ID_NAME_MAXLEN);
}
if (enum_ctl->values != NULL) {
- for (i = 0; i < ec->items; i++) {
+ for (i = 0; i < num_items; i++) {
if (enum_ctl->values[i])
continue;
}
pcm->num_streams = pcm_tpl->num_streams;
- for (i = 0; i < pcm->num_streams; i++)
+ for (i = 0; i < pcm_tpl->num_streams; i++)
tplg_add_stream_object(&pcm->stream[i], &pcm_tpl->stream[i]);
return 0;
lk->id = link->id;
lk->num_streams = link->num_streams;
- for (i = 0; i < lk->num_streams; i++)
+ for (i = 0; i < link->num_streams; i++)
tplg_add_stream_object(&lk->stream[i], &link->stream[i]);
return 0;