[ALSA] pcxhr - Minor optimization in trigger callback

Minor optimization in trigger start callback.  This fixes a nasty
compile warning, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
This commit is contained in:
Takashi Iwai 2007-03-28 17:19:29 +02:00 committed by Jaroslav Kysela
parent b942cf815b
commit b07a14a549
1 changed files with 11 additions and 12 deletions

View File

@ -639,19 +639,21 @@ static int pcxhr_trigger(struct snd_pcm_substream *subs, int cmd)
{ {
struct pcxhr_stream *stream; struct pcxhr_stream *stream;
struct snd_pcm_substream *s; struct snd_pcm_substream *s;
int i;
switch (cmd) { switch (cmd) {
case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_START:
snd_printdd("SNDRV_PCM_TRIGGER_START\n"); snd_printdd("SNDRV_PCM_TRIGGER_START\n");
i = 0; if (snd_pcm_stream_linked(subs)) {
snd_pcm_group_for_each_entry(s, subs) { struct snd_pcxhr *chip = snd_pcm_substream_chip(subs);
stream = s->runtime->private_data; snd_pcm_group_for_each_entry(s, subs) {
stream->status = PCXHR_STREAM_STATUS_SCHEDULE_RUN; stream = s->runtime->private_data;
snd_pcm_trigger_done(s, subs); stream->status =
i++; PCXHR_STREAM_STATUS_SCHEDULE_RUN;
} snd_pcm_trigger_done(s, subs);
if (i==1) { }
tasklet_hi_schedule(&chip->mgr->trigger_taskq);
} else {
stream = subs->runtime->private_data;
snd_printdd("Only one Substream %c %d\n", snd_printdd("Only one Substream %c %d\n",
stream->pipe->is_capture ? 'C' : 'P', stream->pipe->is_capture ? 'C' : 'P',
stream->pipe->first_audio); stream->pipe->first_audio);
@ -663,9 +665,6 @@ static int pcxhr_trigger(struct snd_pcm_substream *subs, int cmd)
if (pcxhr_set_stream_state(stream)) if (pcxhr_set_stream_state(stream))
return -EINVAL; return -EINVAL;
stream->status = PCXHR_STREAM_STATUS_RUNNING; stream->status = PCXHR_STREAM_STATUS_RUNNING;
} else {
struct snd_pcxhr *chip = snd_pcm_substream_chip(subs);
tasklet_hi_schedule(&chip->mgr->trigger_taskq);
} }
break; break;
case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_STOP: