[alsa-devel] [PATCH] ALSA AICA sound on SEGA Dreamcast - fix behaviour in poor resource conditions

Adrian McMenamin adrianmcmenamin at gmail.com
Fri Jul 6 11:46:59 CEST 2007


On 06/07/07, Takashi Iwai <tiwai at suse.de> wrote:
> At Thu, 5 Jul 2007 23:07:44 +0100,
> Adrian McMenamin wrote:
> > @@ -402,17 +396,10 @@
> >  static int snd_aicapcm_pcm_trigger(struct snd_pcm_substream
> >                                  *substream, int cmd)
> >  {
> > -     struct snd_card_aica *dreamcastcard;
> >       switch (cmd) {
> >       case SNDRV_PCM_TRIGGER_START:
> >               spu_begin_dma(substream);
> >               break;
> > -     case SNDRV_PCM_TRIGGER_STOP:
> > -             dreamcastcard = substream->pcm->private_data;
> > -             if (dreamcastcard->timer.data)
> > -                     del_timer(&dreamcastcard->timer);
> > -             aica_chn_halt();
> > -             break;
> >       default:
> >               return -EINVAL;
> >       }
>
> Is this a correct change?  Then you'd have no control for stopping the
> stream.
>

The shutdown is all done in the close() now, partly because
snd_aicapcm_pcm_trigger cannot sleep and close() can. Is there a
pressing reason to put code in snd_aicapcm_pcm_trigger?


More information about the Alsa-devel mailing list